>From a1ecefa1ca416790ef5965cd40b5eafe306e8986 Mon Sep 17 00:00:00 2001
From: Yury Usishchev
Date: Thu, 11 Feb 2016 17:26:25 +0300
Subject: [PATCH] Rework visibility of symbols.
Add visibility("default") for api functions.
Rename hidden define to ACL_HIDDEN.
---
include/misc.h | 14 ++++++++------
libacl/acl_add_perm.c | 2 +-
libacl/acl_calc_mask.c | 2 +-
libacl/acl_check.c | 2 +-
libacl/acl_clear_perms.c | 2 +-
libacl/acl_cmp.c | 2 +-
libacl/acl_copy_entry.c | 2 +-
libacl/acl_copy_ext.c | 2 +-
libacl/acl_copy_int.c | 2 +-
libacl/acl_create_entry.c | 2 +-
libacl/acl_delete_def_file.c | 2 +-
libacl/acl_delete_entry.c | 2 +-
libacl/acl_delete_perm.c | 2 +-
libacl/acl_dup.c | 2 +-
libacl/acl_entries.c | 2 +-
libacl/acl_equiv_mode.c | 2 +-
libacl/acl_error.c | 2 +-
libacl/acl_extended_fd.c | 2 +-
libacl/acl_extended_file.c | 2 +-
libacl/acl_extended_file_nofollow.c | 2 +-
libacl/acl_free.c | 2 +-
libacl/acl_from_mode.c | 2 +-
libacl/acl_from_text.c | 2 +-
libacl/acl_get_entry.c | 2 +-
libacl/acl_get_fd.c | 2 +-
libacl/acl_get_file.c | 2 +-
libacl/acl_get_perm.c | 2 +-
libacl/acl_get_permset.c | 2 +-
libacl/acl_get_qualifier.c | 2 +-
libacl/acl_get_tag_type.c | 2 +-
libacl/acl_init.c | 2 +-
libacl/acl_set_fd.c | 2 +-
libacl/acl_set_file.c | 2 +-
libacl/acl_set_permset.c | 2 +-
libacl/acl_set_qualifier.c | 2 +-
libacl/acl_set_tag_type.c | 2 +-
libacl/acl_size.c | 2 +-
libacl/acl_to_any_text.c | 2 +-
libacl/acl_to_text.c | 2 +-
libacl/acl_valid.c | 2 +-
libacl/libacl.h | 16 ++++++++--------
libacl/libobj.h | 14 +++++++-------
libacl/perm_copy_fd.c | 2 +-
libacl/perm_copy_file.c | 2 +-
44 files changed, 64 insertions(+), 62 deletions(-)
diff --git a/include/misc.h b/include/misc.h
index 24b65d2..82899b5 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -24,17 +24,19 @@
/* Mark library internal functions as hidden */
#if defined(HAVE_VISIBILITY_ATTRIBUTE)
-# define hidden __attribute__((visibility("hidden")))
+# define ACL_HIDDEN __attribute__((visibility("hidden")))
+# define ACL_API_EXPORT __attribute__ ((visibility ("default")))
#else
-# define hidden /* hidden */
+# define ACL_HIDDEN /* hidden */
+# define ACL_API_EXPORT
#endif
-hidden int __acl_high_water_alloc(void **buf, size_t *bufsize, size_t newsize);
+ACL_HIDDEN int __acl_high_water_alloc(void **buf, size_t *bufsize, size_t newsize);
-hidden const char *__acl_quote(const char *str, const char *quote_chars);
-hidden char *__acl_unquote(char *str);
+ACL_HIDDEN const char *__acl_quote(const char *str, const char *quote_chars);
+ACL_HIDDEN char *__acl_unquote(char *str);
-hidden char *__acl_next_line(FILE *file);
+ACL_HIDDEN char *__acl_next_line(FILE *file);
#ifdef ENABLE_NLS
# include
diff --git a/libacl/acl_add_perm.c b/libacl/acl_add_perm.c
index 58ce7f5..d245794 100644
--- a/libacl/acl_add_perm.c
+++ b/libacl/acl_add_perm.c
@@ -23,7 +23,7 @@
/* 23.4.1 */
-int
+ACL_API_EXPORT int
acl_add_perm(acl_permset_t permset_d, acl_perm_t perm)
{
acl_permset_obj *acl_permset_obj_p = ext2int(acl_permset, permset_d);
diff --git a/libacl/acl_calc_mask.c b/libacl/acl_calc_mask.c
index b2ec91a..02ae95e 100644
--- a/libacl/acl_calc_mask.c
+++ b/libacl/acl_calc_mask.c
@@ -23,7 +23,7 @@
/* 23.4.2 */
-int
+ACL_API_EXPORT int
acl_calc_mask(acl_t *acl_p)
{
acl_obj *acl_obj_p;
diff --git a/libacl/acl_check.c b/libacl/acl_check.c
index ebbc050..7c80898 100644
--- a/libacl/acl_check.c
+++ b/libacl/acl_check.c
@@ -40,7 +40,7 @@
0 on success, -1 on error, or an ACL_*_ERROR value for invalid ACLs.
*/
-int
+ACL_API_EXPORT int
acl_check(acl_t acl, int *last)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_clear_perms.c b/libacl/acl_clear_perms.c
index 106e2d1..1fe4030 100644
--- a/libacl/acl_clear_perms.c
+++ b/libacl/acl_clear_perms.c
@@ -23,7 +23,7 @@
/* 23.4.3 */
-int
+ACL_API_EXPORT int
acl_clear_perms(acl_permset_t permset_d)
{
acl_permset_obj *acl_permset_obj_p = ext2int(acl_permset, permset_d);
diff --git a/libacl/acl_cmp.c b/libacl/acl_cmp.c
index ae42284..59fe6bd 100644
--- a/libacl/acl_cmp.c
+++ b/libacl/acl_cmp.c
@@ -22,7 +22,7 @@
#include "libacl.h"
-int
+ACL_API_EXPORT int
acl_cmp(acl_t acl1, acl_t acl2)
{
acl_obj *acl1_obj_p = ext2int(acl, acl1),
diff --git a/libacl/acl_copy_entry.c b/libacl/acl_copy_entry.c
index 85cebc8..5757ee7 100644
--- a/libacl/acl_copy_entry.c
+++ b/libacl/acl_copy_entry.c
@@ -23,7 +23,7 @@
/* 23.4.4 */
-int
+ACL_API_EXPORT int
acl_copy_entry(acl_entry_t dest_d, acl_entry_t src_d)
{
acl_entry_obj *dest_p = ext2int(acl_entry, dest_d),
diff --git a/libacl/acl_copy_ext.c b/libacl/acl_copy_ext.c
index 7f51185..4ae7c91 100644
--- a/libacl/acl_copy_ext.c
+++ b/libacl/acl_copy_ext.c
@@ -23,7 +23,7 @@
/* 23.4.5 */
-ssize_t
+ACL_API_EXPORT ssize_t
acl_copy_ext(void *buf_p, acl_t acl, ssize_t size)
{
struct __acl *acl_ext = (struct __acl *)buf_p;
diff --git a/libacl/acl_copy_int.c b/libacl/acl_copy_int.c
index 7bcb0c9..6891fd7 100644
--- a/libacl/acl_copy_int.c
+++ b/libacl/acl_copy_int.c
@@ -23,7 +23,7 @@
/* 23.4.6 */
-acl_t
+ACL_API_EXPORT acl_t
acl_copy_int(const void *buf_p)
{
const struct __acl *ext_acl = (struct __acl *)buf_p;
diff --git a/libacl/acl_create_entry.c b/libacl/acl_create_entry.c
index a1c4908..d965faa 100644
--- a/libacl/acl_create_entry.c
+++ b/libacl/acl_create_entry.c
@@ -50,7 +50,7 @@ __acl_create_entry_obj(acl_obj *acl_obj_p)
}
/* 23.4.7 */
-int
+ACL_API_EXPORT int
acl_create_entry(acl_t *acl_p, acl_entry_t *entry_p)
{
acl_obj *acl_obj_p;
diff --git a/libacl/acl_delete_def_file.c b/libacl/acl_delete_def_file.c
index 845940c..11a7ff3 100644
--- a/libacl/acl_delete_def_file.c
+++ b/libacl/acl_delete_def_file.c
@@ -27,7 +27,7 @@
#include "libacl.h"
/* 23.4.8 */
-int
+ACL_API_EXPORT int
acl_delete_def_file(const char *path_p)
{
int error;
diff --git a/libacl/acl_delete_entry.c b/libacl/acl_delete_entry.c
index a1ae6db..6bd5eee 100644
--- a/libacl/acl_delete_entry.c
+++ b/libacl/acl_delete_entry.c
@@ -23,7 +23,7 @@
/* 23.4.9 */
-int
+ACL_API_EXPORT int
acl_delete_entry(acl_t acl, acl_entry_t entry_d)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_delete_perm.c b/libacl/acl_delete_perm.c
index 0dcb36e..ebb0cad 100644
--- a/libacl/acl_delete_perm.c
+++ b/libacl/acl_delete_perm.c
@@ -23,7 +23,7 @@
/* 23.4.10 */
-int
+ACL_API_EXPORT int
acl_delete_perm(acl_permset_t permset_d, acl_perm_t perm)
{
acl_permset_obj *acl_permset_obj_p = ext2int(acl_permset, permset_d);
diff --git a/libacl/acl_dup.c b/libacl/acl_dup.c
index cb73cee..c93e3ac 100644
--- a/libacl/acl_dup.c
+++ b/libacl/acl_dup.c
@@ -23,7 +23,7 @@
/* 23.4.11 */
-acl_t
+ACL_API_EXPORT acl_t
acl_dup(acl_t acl)
{
acl_entry_obj *entry_obj_p, *dup_entry_obj_p;
diff --git a/libacl/acl_entries.c b/libacl/acl_entries.c
index fc4dcbf..6f62421 100644
--- a/libacl/acl_entries.c
+++ b/libacl/acl_entries.c
@@ -22,7 +22,7 @@
#include "libacl.h"
-int
+ACL_API_EXPORT int
acl_entries(acl_t acl)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_equiv_mode.c b/libacl/acl_equiv_mode.c
index b4c6de3..2ad03bf 100644
--- a/libacl/acl_equiv_mode.c
+++ b/libacl/acl_equiv_mode.c
@@ -26,7 +26,7 @@
#include "libacl.h"
-int
+ACL_API_EXPORT int
acl_equiv_mode(acl_t acl, mode_t *mode_p)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_error.c b/libacl/acl_error.c
index 8a361b0..0e1d928 100644
--- a/libacl/acl_error.c
+++ b/libacl/acl_error.c
@@ -26,7 +26,7 @@
#include "config.h"
-const char *
+ACL_API_EXPORT const char *
acl_error(int code)
{
switch(code) {
diff --git a/libacl/acl_extended_fd.c b/libacl/acl_extended_fd.c
index bbf9055..43bb0a6 100644
--- a/libacl/acl_extended_fd.c
+++ b/libacl/acl_extended_fd.c
@@ -26,7 +26,7 @@
#include "byteorder.h"
#include "acl_ea.h"
-int
+ACL_API_EXPORT int
acl_extended_fd(int fd)
{
int base_size = sizeof(acl_ea_header) + 3 * sizeof(acl_ea_entry);
diff --git a/libacl/acl_extended_file.c b/libacl/acl_extended_file.c
index 87f8e6e..30f921a 100644
--- a/libacl/acl_extended_file.c
+++ b/libacl/acl_extended_file.c
@@ -26,7 +26,7 @@
#include "__acl_extended_file.h"
-int
+ACL_API_EXPORT int
acl_extended_file(const char *path_p)
{
return __acl_extended_file(path_p, getxattr);
diff --git a/libacl/acl_extended_file_nofollow.c b/libacl/acl_extended_file_nofollow.c
index a15b076..c25f3b0 100644
--- a/libacl/acl_extended_file_nofollow.c
+++ b/libacl/acl_extended_file_nofollow.c
@@ -26,7 +26,7 @@
#include "__acl_extended_file.h"
-int
+ACL_API_EXPORT int
acl_extended_file_nofollow(const char *path_p)
{
return __acl_extended_file(path_p, lgetxattr);
diff --git a/libacl/acl_free.c b/libacl/acl_free.c
index 8510bbf..3e68fb0 100644
--- a/libacl/acl_free.c
+++ b/libacl/acl_free.c
@@ -37,7 +37,7 @@ __acl_free_acl_obj(acl_obj *acl_obj_p)
/* 23.4.12 */
-int
+ACL_API_EXPORT int
acl_free(void *obj_p)
{
obj_prefix *int_p = ((obj_prefix *)obj_p)-1;
diff --git a/libacl/acl_from_mode.c b/libacl/acl_from_mode.c
index 93dc689..680dc30 100644
--- a/libacl/acl_from_mode.c
+++ b/libacl/acl_from_mode.c
@@ -34,7 +34,7 @@
the new ACL.
*/
-acl_t
+ACL_API_EXPORT acl_t
acl_from_mode(mode_t mode)
{
acl_obj *acl_obj_p;
diff --git a/libacl/acl_from_text.c b/libacl/acl_from_text.c
index 83a4d21..f7f196d 100644
--- a/libacl/acl_from_text.c
+++ b/libacl/acl_from_text.c
@@ -40,7 +40,7 @@ static int parse_acl_entry(const char **text_p, acl_t *acl_p);
/* 23.4.13 */
-acl_t
+ACL_API_EXPORT acl_t
acl_from_text(const char *buf_p)
{
acl_t acl;
diff --git a/libacl/acl_get_entry.c b/libacl/acl_get_entry.c
index 2a0de66..805758a 100644
--- a/libacl/acl_get_entry.c
+++ b/libacl/acl_get_entry.c
@@ -23,7 +23,7 @@
/* 23.4.14 */
-int
+ACL_API_EXPORT int
acl_get_entry(acl_t acl, int entry_id, acl_entry_t *entry_p)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_get_fd.c b/libacl/acl_get_fd.c
index 15e3880..4de5d1b 100644
--- a/libacl/acl_get_fd.c
+++ b/libacl/acl_get_fd.c
@@ -32,7 +32,7 @@
#include "acl_ea.h"
/* 23.4.15 */
-acl_t
+ACL_API_EXPORT acl_t
acl_get_fd(int fd)
{
const size_t size_guess = acl_ea_size(16);
diff --git a/libacl/acl_get_file.c b/libacl/acl_get_file.c
index d3131bc..e5052f0 100644
--- a/libacl/acl_get_file.c
+++ b/libacl/acl_get_file.c
@@ -32,7 +32,7 @@
#include "acl_ea.h"
/* 23.4.16 */
-acl_t
+ACL_API_EXPORT acl_t
acl_get_file(const char *path_p, acl_type_t type)
{
const size_t size_guess = acl_ea_size(16);
diff --git a/libacl/acl_get_perm.c b/libacl/acl_get_perm.c
index 31357b2..a56f6ef 100644
--- a/libacl/acl_get_perm.c
+++ b/libacl/acl_get_perm.c
@@ -22,7 +22,7 @@
#include "libacl.h"
-int
+ACL_API_EXPORT int
acl_get_perm(acl_permset_t permset_d, acl_perm_t perm)
{
acl_permset_obj *acl_permset_obj_p = ext2int(acl_permset, permset_d);
diff --git a/libacl/acl_get_permset.c b/libacl/acl_get_permset.c
index 85749f2..81145b7 100644
--- a/libacl/acl_get_permset.c
+++ b/libacl/acl_get_permset.c
@@ -23,7 +23,7 @@
/* 23.4.17 */
-int
+ACL_API_EXPORT int
acl_get_permset(acl_entry_t entry_d, acl_permset_t *permset_p)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_get_qualifier.c b/libacl/acl_get_qualifier.c
index 0961acf..87ff473 100644
--- a/libacl/acl_get_qualifier.c
+++ b/libacl/acl_get_qualifier.c
@@ -23,7 +23,7 @@
/* 23.4.18 */
-void *
+ACL_API_EXPORT void *
acl_get_qualifier(acl_entry_t entry_d)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_get_tag_type.c b/libacl/acl_get_tag_type.c
index 3075178..8d144ec 100644
--- a/libacl/acl_get_tag_type.c
+++ b/libacl/acl_get_tag_type.c
@@ -23,7 +23,7 @@
/* 23.4.19 */
-int
+ACL_API_EXPORT int
acl_get_tag_type(acl_entry_t entry_d, acl_tag_t *tag_type_p)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_init.c b/libacl/acl_init.c
index 5880c10..4f408b9 100644
--- a/libacl/acl_init.c
+++ b/libacl/acl_init.c
@@ -55,7 +55,7 @@ __acl_init_obj(int count)
/* 23.4.20 */
-acl_t
+ACL_API_EXPORT acl_t
acl_init(int count)
{
acl_obj *obj;
diff --git a/libacl/acl_set_fd.c b/libacl/acl_set_fd.c
index 38dcd4a..cdebe11 100644
--- a/libacl/acl_set_fd.c
+++ b/libacl/acl_set_fd.c
@@ -29,7 +29,7 @@
/* 23.4.21 */
-int
+ACL_API_EXPORT int
acl_set_fd(int fd, acl_t acl)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_set_file.c b/libacl/acl_set_file.c
index c234b4a..74714eb 100644
--- a/libacl/acl_set_file.c
+++ b/libacl/acl_set_file.c
@@ -31,7 +31,7 @@
/* 23.4.22 */
-int
+ACL_API_EXPORT int
acl_set_file(const char *path_p, acl_type_t type, acl_t acl)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_set_permset.c b/libacl/acl_set_permset.c
index 67bb520..0593796 100644
--- a/libacl/acl_set_permset.c
+++ b/libacl/acl_set_permset.c
@@ -23,7 +23,7 @@
/* 23.4.23 */
-int
+ACL_API_EXPORT int
acl_set_permset(acl_entry_t entry_d, acl_permset_t permset_d)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_set_qualifier.c b/libacl/acl_set_qualifier.c
index 59e86ff..71497f0 100644
--- a/libacl/acl_set_qualifier.c
+++ b/libacl/acl_set_qualifier.c
@@ -23,7 +23,7 @@
/* 23.4.24 */
-int
+ACL_API_EXPORT int
acl_set_qualifier(acl_entry_t entry_d, const void *tag_qualifier_p)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_set_tag_type.c b/libacl/acl_set_tag_type.c
index d2f2d67..2595b88 100644
--- a/libacl/acl_set_tag_type.c
+++ b/libacl/acl_set_tag_type.c
@@ -23,7 +23,7 @@
/* 23.4.25 */
-int
+ACL_API_EXPORT int
acl_set_tag_type(acl_entry_t entry_d, acl_tag_t tag_type)
{
acl_entry_obj *entry_obj_p = ext2int(acl_entry, entry_d);
diff --git a/libacl/acl_size.c b/libacl/acl_size.c
index 20aa692..afd5742 100644
--- a/libacl/acl_size.c
+++ b/libacl/acl_size.c
@@ -23,7 +23,7 @@
/* 23.4.26 */
-ssize_t
+ACL_API_EXPORT ssize_t
acl_size(acl_t acl)
{
acl_obj *acl_obj_p = ext2int(acl, acl);
diff --git a/libacl/acl_to_any_text.c b/libacl/acl_to_any_text.c
index 0d12539..bb67eda 100644
--- a/libacl/acl_to_any_text.c
+++ b/libacl/acl_to_any_text.c
@@ -27,7 +27,7 @@
#include
#include "libacl.h"
-char *
+ACL_API_EXPORT char *
acl_to_any_text(acl_t acl, const char *prefix, char separator, int options)
{
return __acl_to_any_text(acl, NULL, prefix, separator, NULL, options);
diff --git a/libacl/acl_to_text.c b/libacl/acl_to_text.c
index 1285b55..cddb71c 100644
--- a/libacl/acl_to_text.c
+++ b/libacl/acl_to_text.c
@@ -24,7 +24,7 @@
#include
#include "libacl.h"
-char *
+ACL_API_EXPORT char *
acl_to_text(acl_t acl, ssize_t *len_p)
{
return __acl_to_any_text(acl, len_p, NULL, '\n', "\n",
diff --git a/libacl/acl_valid.c b/libacl/acl_valid.c
index 2dda372..efefaba 100644
--- a/libacl/acl_valid.c
+++ b/libacl/acl_valid.c
@@ -25,7 +25,7 @@
/* 23.4.28 */
-int
+ACL_API_EXPORT int
acl_valid(acl_t acl)
{
int result;
diff --git a/libacl/libacl.h b/libacl/libacl.h
index 08ba905..eee3024 100644
--- a/libacl/libacl.h
+++ b/libacl/libacl.h
@@ -127,17 +127,17 @@ struct __acl {
struct __acl_entry x_entries[0];
};
-extern int __acl_reorder_entry_obj_p(acl_entry_obj *acl_entry_obj_p) hidden;
-extern int __acl_reorder_obj_p(acl_obj *acl_obj_p) hidden;
+ACL_HIDDEN extern int __acl_reorder_entry_obj_p(acl_entry_obj *acl_entry_obj_p);
+ACL_HIDDEN extern int __acl_reorder_obj_p(acl_obj *acl_obj_p);
-extern acl_obj *__acl_init_obj(int count) hidden;
-extern acl_entry_obj *__acl_create_entry_obj(acl_obj *acl_obj_p) hidden;
-extern void __acl_free_acl_obj(acl_obj *acl_obj_p) hidden;
+ACL_HIDDEN extern acl_obj *__acl_init_obj(int count);
+ACL_HIDDEN extern acl_entry_obj *__acl_create_entry_obj(acl_obj *acl_obj_p);
+ACL_HIDDEN extern void __acl_free_acl_obj(acl_obj *acl_obj_p);
-extern char *__acl_to_any_text(acl_t acl, ssize_t *len_p,
+ACL_HIDDEN extern char *__acl_to_any_text(acl_t acl, ssize_t *len_p,
const char *prefix, char separator,
- const char *suffix, int options) hidden;
-extern int __apply_mask_to_mode(mode_t *mode, acl_t acl) hidden;
+ const char *suffix, int options);
+ACL_HIDDEN extern int __apply_mask_to_mode(mode_t *mode, acl_t acl);
#define FOREACH_ACL_ENTRY(entry_obj_p, acl_obj_p) \
for( (entry_obj_p) = (acl_obj_p)->anext; \
diff --git a/libacl/libobj.h b/libacl/libobj.h
index c41d5f9..e900ab6 100644
--- a/libacl/libobj.h
+++ b/libacl/libobj.h
@@ -87,15 +87,15 @@ struct string_obj_tag {
#define sstr i.s_str
/* object creation, destruction, conversion and validation */
-void *__new_var_obj_p(int magic, size_t size) hidden;
-void __new_obj_p_here(int magic, void *here) hidden;
-void __free_obj_p(obj_prefix *obj_p) hidden;
-obj_prefix *__check_obj_p(obj_prefix *obj_p, int magic) hidden;
+ACL_HIDDEN void *__new_var_obj_p(int magic, size_t size);
+ACL_HIDDEN void __new_obj_p_here(int magic, void *here);
+ACL_HIDDEN void __free_obj_p(obj_prefix *obj_p);
+ACL_HIDDEN obj_prefix *__check_obj_p(obj_prefix *obj_p, int magic);
#ifdef LIBACL_DEBUG
-obj_prefix *__ext2int_and_check(void *ext_p, int magic,
- const char *typename) hidden;
+ACL_HIDDEN obj_prefix *__ext2int_and_check(void *ext_p, int magic,
+ const char *typename);
#else
-obj_prefix *__ext2int_and_check(void *ext_p, int magic) hidden;
+ACL_HIDDEN obj_prefix *__ext2int_and_check(void *ext_p, int magic);
#endif
#endif /* __LIBOBJ_H */
diff --git a/libacl/perm_copy_fd.c b/libacl/perm_copy_fd.c
index f9ae690..5516dc4 100644
--- a/libacl/perm_copy_fd.c
+++ b/libacl/perm_copy_fd.c
@@ -142,7 +142,7 @@ chmod_only:
/* Copy the permissions of src_path to dst_path. This includes the
file mode permission bits and ACLs. File ownership is not copied.
*/
-int
+ACL_API_EXPORT int
perm_copy_fd (const char *src_path, int src_fd,
const char *dst_path, int dst_fd,
struct error_context *ctx)
diff --git a/libacl/perm_copy_file.c b/libacl/perm_copy_file.c
index 023294d..4103ab9 100644
--- a/libacl/perm_copy_file.c
+++ b/libacl/perm_copy_file.c
@@ -156,7 +156,7 @@ chmod_only:
/* Copy the permissions of src_path to dst_path. This includes the
file mode permission bits and ACLs. File ownership is not copied.
*/
-int
+ACL_API_EXPORT int
perm_copy_file (const char *src_path, const char *dst_path,
struct error_context *ctx)
{
--
2.7.1