SHA256
3
0
forked from pool/zlib
zlib/zlib-1.2.3-visibility-support.patch

46 lines
1016 B
Diff

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