Skip to content
Permalink
Browse files
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
  • Loading branch information
icculus committed Mar 23, 2006
1 parent e459e07 commit 5d26eca4a4622c9dc573db92b5ba38d016412cc1
Showing with 28 additions and 3 deletions.
  1. +1 −0 CHANGELOG
  2. +25 −3 configure.in
  3. +2 −0 physfs.h
@@ -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
@@ -68,19 +68,41 @@ AC_ARG_ENABLE(debug,
, 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 ---------------------------------------------------------------------
@@ -166,6 +166,8 @@ extern "C" {
#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

0 comments on commit 5d26eca

Please sign in to comment.