Skip to content

Commit

Permalink
Added -fvisibility=hidden support, for builds by gcc4 and later.
Browse files Browse the repository at this point in the history
 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 5d26eca
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Expand Up @@ -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
Expand Down
28 changes: 25 additions & 3 deletions configure.in
Expand Up @@ -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 ---------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions physfs.h
Expand Up @@ -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
Expand Down

0 comments on commit 5d26eca

Please sign in to comment.