# HG changeset patch # User Ryan C. Gordon # Date 1142990916 0 # Node ID 2422ca15ba42bfe19ff9f2d5c5c35434d4ddb668 # Parent 3a8920cc822b0067c9178d0ecf4360e1c4e32a2e Added support for gcc4's -fvisibility=hidden option. Fixes Bugzilla #169. diff -r 3a8920cc822b -r 2422ca15ba42 configure.in --- a/configure.in Tue Mar 21 16:04:44 2006 +0000 +++ b/configure.in Wed Mar 22 01:28:36 2006 +0000 @@ -699,6 +699,31 @@ fi } +dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually). +dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility +CheckVisibilityHidden() +{ + 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 + EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS -DDECLSPEC=SDL_GCC_ATTR_VIS_DEFAULT" + fi +} + + dnl Do the iPod thing CheckIPod() { @@ -1967,6 +1992,7 @@ *-*-aix*) ARCH=aix ;; *-*-osf*) ARCH=osf ;; esac + CheckVisibilityHidden CheckDummyVideo CheckDiskAudio CheckDummyAudio diff -r 3a8920cc822b -r 2422ca15ba42 include/begin_code.h --- a/include/begin_code.h Tue Mar 21 16:04:44 2006 +0000 +++ b/include/begin_code.h Wed Mar 22 01:28:36 2006 +0000 @@ -31,6 +31,10 @@ #endif #define _begin_code_h +#ifdef __GNUC__ +#define SDL_GCC_ATTR_VIS_DEFAULT __attribute__((visibility("default"))) +#endif + /* Some compilers use a special export keyword */ #ifndef DECLSPEC # ifdef __BEOS__