File zlib-1.2.3-visibility-support.patch of Package zlib

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
openSUSE Build Service is sponsored by