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
This commit is contained in:
Ryan C. Gordon 2006-03-23 06:49:01 +00:00
parent c08f79715b
commit 0d9f7c7b8a
3 changed files with 27 additions and 3 deletions

View File

@ -4,6 +4,7 @@
-- stuff in the stable-1.0 branch, backported from 2.0.0 dev branch, etc --- -- 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. 01012006 - Added physfs.rc (thanks, Dennis!). Changed my email address.
11282005 - Whitespace fix, and corrected docs on PHYSFS_setWriteDir(). 11282005 - Whitespace fix, and corrected docs on PHYSFS_setWriteDir().
09062005 - Happy September. Minor MingW fixes (but it's still broken, I think). 09062005 - Happy September. Minor MingW fixes (but it's still broken, I think).

View File

@ -68,18 +68,39 @@ AC_ARG_ENABLE(debug,
, enable_debug=no) , enable_debug=no)
if test x$enable_debug = xyes; then if test x$enable_debug = xyes; then
if test x$ac_cv_prog_cc_g = xyes; then if test x$ac_cv_prog_cc_g = xyes; then
PHYSFSCFLAGS="-g -O0" PHYSFSCFLAGS="$PHYSFSCFLAGS -g -O0"
else else
PHYSFSCFLAGS="-O0" PHYSFSCFLAGS="$PHYSFSCFLAGS -O0"
fi fi
PHYSFSCFLAGS="$PHYSFSCFLAGS -Werror -Wall" PHYSFSCFLAGS="$PHYSFSCFLAGS -Werror -Wall"
AC_DEFINE([DEBUG], 1, [define if debug build is enabled]) AC_DEFINE([DEBUG], 1, [define if debug build is enabled])
AC_DEFINE([DEBUG_CHATTER], 1, [define if debug chatter is enabled]) AC_DEFINE([DEBUG_CHATTER], 1, [define if debug chatter is enabled])
else else
PHYSFSCFLAGS="-O2" PHYSFSCFLAGS="$PHYSFSCFLAGS -O2"
AC_DEFINE([NDEBUG], 1, [define if debug build is disabled]) AC_DEFINE([NDEBUG], 1, [define if debug build is disabled])
fi 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 ---------------------------------------------------------------------
dnl Profile sorts, etc? dnl Profile sorts, etc?

View File

@ -153,6 +153,8 @@ extern "C" {
#ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifndef DOXYGEN_SHOULD_IGNORE_THIS
#if (defined _MSC_VER) #if (defined _MSC_VER)
#define __EXPORT__ __declspec(dllexport) #define __EXPORT__ __declspec(dllexport)
#elif (defined __GNUC__)
#define __EXPORT__ __attribute__((visibility("default")))
#else #else
#define __EXPORT__ #define __EXPORT__
#endif #endif