diff options
Diffstat (limited to 'sys-libs/zlib/files/zlib-1.2.3-visibility-support.patch')
-rw-r--r-- | sys-libs/zlib/files/zlib-1.2.3-visibility-support.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/sys-libs/zlib/files/zlib-1.2.3-visibility-support.patch b/sys-libs/zlib/files/zlib-1.2.3-visibility-support.patch new file mode 100644 index 000000000000..ceb065e9c7bb --- /dev/null +++ b/sys-libs/zlib/files/zlib-1.2.3-visibility-support.patch @@ -0,0 +1,45 @@ +Only export symbols that should be exported. + +Patch by Mike Frysinger + +http://bugs.gentoo.org/32764 +http://bugs.gentoo.org/149929 + +--- zlib-1.2.3/configure ++++ zlib-1.2.3/configure +@@ -209,6 +209,20 @@ + fi + + cat > $test.c <<EOF ++int foo __attribute__ ((visibility ("hidden"))); ++int main() ++{ ++ return 0; ++} ++EOF ++if ($CC -c -fvisibility=hidden $CFLAGS $test.c) 2>/dev/null; then ++ CFLAGS="$CFLAGS -DHAS_attribute_visibility -fvisibility=hidden" ++ echo "Checking for attribute(visibility) support... Yes." ++else ++ echo "Checking for attribute(visibility) support... No." ++fi ++ ++cat > $test.c <<EOF + #include <stdio.h> + #include <stdarg.h> + #include "zconf.h" +--- zlib-1.2.3/zconf.in.h ++++ zlib-1.2.3/zconf.in.h +@@ -244,7 +244,11 @@ + #endif + + #ifndef ZEXTERN +-# define ZEXTERN extern ++# if defined(ZLIB_INTERNAL) && defined(HAS_attribute_visibility) ++# define ZEXTERN extern __attribute__ ((visibility("default"))) ++# else ++# define ZEXTERN extern ++# endif + #endif + #ifndef ZEXPORT + # define ZEXPORT |