r784 - branches/stable-1.0 trunk

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Mar 23 01:49:01 EST 2006


Author: icculus
Date: 2006-03-23 01:49:01 -0500 (Thu, 23 Mar 2006)
New Revision: 784

Modified:
   branches/stable-1.0/CHANGELOG
   branches/stable-1.0/configure.in
   branches/stable-1.0/physfs.h
   trunk/CHANGELOG
   trunk/configure.in
   trunk/physfs.h
Log:
Added -fvisibility=hidden support, for builds by gcc4 and later.
 All the sordid reasons for this are laid out here:

   http://gcc.gnu.org/wiki/Visibility



Modified: branches/stable-1.0/CHANGELOG
===================================================================
--- branches/stable-1.0/CHANGELOG	2006-01-01 13:03:22 UTC (rev 783)
+++ branches/stable-1.0/CHANGELOG	2006-03-23 06:49:01 UTC (rev 784)
@@ -4,6 +4,7 @@
 
 -- stuff in the stable-1.0 branch, backported from 2.0.0 dev branch, etc ---
 
+03232006 - Added -fvisibility for gcc4 (http://gcc.gnu.org/wiki/Visibility)
 01012006 - Added physfs.rc (thanks, Dennis!). Changed my email address.
 11282005 - Whitespace fix, and corrected docs on PHYSFS_setWriteDir().
 09062005 - Happy September. Minor MingW fixes (but it's still broken, I think).

Modified: branches/stable-1.0/configure.in
===================================================================
--- branches/stable-1.0/configure.in	2006-01-01 13:03:22 UTC (rev 783)
+++ branches/stable-1.0/configure.in	2006-03-23 06:49:01 UTC (rev 784)
@@ -68,19 +68,40 @@
                 , enable_debug=no)
 if test x$enable_debug = xyes; then
   if test x$ac_cv_prog_cc_g = xyes; then
-    PHYSFSCFLAGS="-g -O0"
+    PHYSFSCFLAGS="$PHYSFSCFLAGS -g -O0"
   else
-    PHYSFSCFLAGS="-O0"
+    PHYSFSCFLAGS="$PHYSFSCFLAGS -O0"
   fi
   PHYSFSCFLAGS="$PHYSFSCFLAGS -Werror -Wall"
   AC_DEFINE([DEBUG], 1, [define if debug build is enabled])
   AC_DEFINE([DEBUG_CHATTER], 1, [define if debug chatter is enabled])
 else
-  PHYSFSCFLAGS="-O2"
+  PHYSFSCFLAGS="$PHYSFSCFLAGS -O2"
   AC_DEFINE([NDEBUG], 1, [define if debug build is disabled])
 fi
 
+dnl ---------------------------------------------------------------------
+dnl Have GCC's -fvisibility option?
+dnl ---------------------------------------------------------------------
+AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
+have_gcc_fvisibility=no
+visibility_CFLAGS="-fvisibility=hidden"
+save_CFLAGS="$CFLAGS"
+CFLAGS="$save_CFLAGS $visibility_CFLAGS"
+AC_TRY_COMPILE([
+int placeholder = 1;
+],[
+],[
+have_gcc_fvisibility=yes
+])
+AC_MSG_RESULT($have_gcc_fvisibility)
+CFLAGS="$save_CFLAGS"
 
+if test x$have_gcc_fvisibility = xyes; then
+    PHYSFSCFLAGS="$PHYSFSCFLAGS $visibility_CFLAGS"
+fi
+
+
 dnl ---------------------------------------------------------------------
 dnl Profile sorts, etc?
 dnl ---------------------------------------------------------------------

Modified: branches/stable-1.0/physfs.h
===================================================================
--- branches/stable-1.0/physfs.h	2006-01-01 13:03:22 UTC (rev 783)
+++ branches/stable-1.0/physfs.h	2006-03-23 06:49:01 UTC (rev 784)
@@ -153,6 +153,8 @@
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 #if (defined _MSC_VER)
 #define __EXPORT__ __declspec(dllexport)
+#elif (defined __GNUC__)
+#define __EXPORT__ __attribute__((visibility("default")))
 #else
 #define __EXPORT__
 #endif

Modified: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	2006-01-01 13:03:22 UTC (rev 783)
+++ trunk/CHANGELOG	2006-03-23 06:49:01 UTC (rev 784)
@@ -2,6 +2,7 @@
  * CHANGELOG.
  */
 
+03232006 - Added -fvisibility for gcc4 (http://gcc.gnu.org/wiki/Visibility)
 01012006 - Cleaned up overflow checks in platform memory allocators (thanks to
            Nicolas Lebedenco for pointing out the original issue with
            long long literals). Added physfs.rc (thanks, Dennis!). Changed my

Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2006-01-01 13:03:22 UTC (rev 783)
+++ trunk/configure.in	2006-03-23 06:49:01 UTC (rev 784)
@@ -68,20 +68,42 @@
                 , enable_debug=no)
 if test x$enable_debug = xyes; then
   if test x$ac_cv_prog_cc_g = xyes; then
-    PHYSFSCFLAGS="-g -O0"
+    PHYSFSCFLAGS="$PHYSFSCFLAGS -g -O0"
   else
-    PHYSFSCFLAGS="-O0"
+    PHYSFSCFLAGS="$PHYSFSCFLAGS -O0"
   fi
   PHYSFSCFLAGS="$PHYSFSCFLAGS -Werror -Wall"
   AC_DEFINE([DEBUG], 1, [define if debug build is enabled])
   AC_DEFINE([DEBUG_CHATTER], 1, [define if debug chatter is enabled])
 else
-  PHYSFSCFLAGS="-O2"
+  PHYSFSCFLAGS="$PHYSFSCFLAGS -O2"
   AC_DEFINE([NDEBUG], 1, [define if debug build is disabled])
 fi
 
 
 dnl ---------------------------------------------------------------------
+dnl Have GCC's -fvisibility option?
+dnl ---------------------------------------------------------------------
+AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
+have_gcc_fvisibility=no
+visibility_CFLAGS="-fvisibility=hidden"
+save_CFLAGS="$CFLAGS"
+CFLAGS="$save_CFLAGS $visibility_CFLAGS"
+AC_TRY_COMPILE([
+int placeholder = 1;
+],[
+],[
+have_gcc_fvisibility=yes
+])
+AC_MSG_RESULT($have_gcc_fvisibility)
+CFLAGS="$save_CFLAGS"
+
+if test x$have_gcc_fvisibility = xyes; then
+    PHYSFSCFLAGS="$PHYSFSCFLAGS $visibility_CFLAGS"
+fi
+
+
+dnl ---------------------------------------------------------------------
 dnl Profile sorts, etc?
 dnl ---------------------------------------------------------------------
 

Modified: trunk/physfs.h
===================================================================
--- trunk/physfs.h	2006-01-01 13:03:22 UTC (rev 783)
+++ trunk/physfs.h	2006-03-23 06:49:01 UTC (rev 784)
@@ -166,6 +166,8 @@
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 #if (defined _MSC_VER)
 #define __EXPORT__ __declspec(dllexport)
+#elif (defined __GNUC__)
+#define __EXPORT__ __attribute__((visibility("default")))
 #else
 #define __EXPORT__
 #endif




More information about the physfs-commits mailing list