]> granicus.if.org Git - libexpat/commitdiff
Hide private symbols.
authorYury Gribov <tetra2005@gmail.com>
Wed, 25 Apr 2018 05:03:36 +0000 (06:03 +0100)
committerYury Gribov <tetra2005@gmail.com>
Thu, 20 Sep 2018 16:45:01 +0000 (17:45 +0100)
expat/CMakeLists.txt
expat/ConfigureChecks.cmake
expat/configure.ac
expat/lib/expat_external.h
expat/lib/internal.h

index 673184fad6efca8f0ce139e2740864bca37ceabe..a052f1898ee62fa43a4ebf4eac37c968f47e934f 100644 (file)
@@ -101,6 +101,10 @@ set(EXTRA_COMPILE_FLAGS)
 if(FLAG_NO_STRICT_ALIASING)\r
     set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -fno-strict-aliasing")\r
 endif()\r
+if(FLAG_VISIBILITY)\r
+  add_definitions(-DXML_ENABLE_VISIBILITY=1)\r
+  set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -fvisibility=hidden")\r
+endif(FLAG_VISIBILITY)\r
 if (WARNINGS_AS_ERRORS)\r
     if(MSVC)\r
         add_definitions(/WX)\r
index dbb49210202fbc9b5b564ebf728a6e4038b1846d..818d2492d2cb18705fbf321cac49df806de4974a 100644 (file)
@@ -68,3 +68,4 @@ configure_file(expat_config.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/expat_config.h"
 add_definitions(-DHAVE_EXPAT_CONFIG_H)\r
 \r
 check_c_compiler_flag("-fno-strict-aliasing" FLAG_NO_STRICT_ALIASING)\r
+check_c_compiler_flag("-fvisibility=hidden" FLAG_VISIBILITY)\r
index a68d9a4e3da238dd097dc258f86fa0459bdf57af..12f66422c28f948c8c52ee2b8601eb097a03f616 100644 (file)
@@ -88,6 +88,13 @@ if test "$GCC" = yes ; then
     LDFLAGS="${LDFLAGS} -fno-strict-aliasing"
 fi
 
+AC_MSG_CHECKING(whether compiler supports visibility)
+OLDCFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -fvisibility=hidden -Wall -Werror"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[void __attribute__((visibility("default"))) foo(void); void foo(void) {}]])],
+                  AC_MSG_RESULT(yes); CFLAGS="$OLDCFLAGS -fvisibility=hidden -DXML_ENABLE_VISIBILITY=1",
+                  AC_MSG_RESULT(no); CFLAGS="$OLDCFLAGS")
+
 dnl Checks for header files.
 AC_HEADER_STDC
 
index 629483a91b27f41a031ee12276cae8d2eda0c70a..875225d77e50401cfe4fcec0ae3d0c59b9b090f0 100644 (file)
 # endif
 #endif  /* not defined XML_STATIC */
 
-#if !defined(XMLIMPORT) && defined(__GNUC__) && (__GNUC__ >= 4)
+#ifndef XML_ENABLE_VISIBILITY
+# define XML_ENABLE_VISIBILITY 0
+#endif
+
+#if !defined(XMLIMPORT) && XML_ENABLE_VISIBILITY
 # define XMLIMPORT __attribute__ ((visibility ("default")))
 #endif
 
index e33fdcb0238d727c0c5097481a0548d906dca072..dc4ef0c7e2588c2d79c68b6fd62e805f7fbff77a 100644 (file)
@@ -115,6 +115,11 @@ extern "C" {
 #endif
 
 
+#ifdef XML_ENABLE_VISIBILITY
+#if XML_ENABLE_VISIBILITY
+__attribute__ ((visibility ("default")))
+#endif
+#endif
 void
 _INTERNAL_trim_to_complete_utf8_characters(const char * from, const char ** fromLimRef);