From c04db0e402fffe15c7c8880d5567ed7220c2b16e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 22 Mar 2006 01:28:36 +0000 Subject: [PATCH] Added support for gcc4's -fvisibility=hidden option. Fixes Bugzilla #169. --- configure.in | 26 ++++++++++++++++++++++++++ include/begin_code.h | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/configure.in b/configure.in index d265dc206..c6f5ef3a4 100644 --- a/configure.in +++ b/configure.in @@ -699,6 +699,31 @@ AC_HELP_STRING([--enable-altivec], [use altivec assembly blitters on PPC [defaul 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 @@ case "$host" in *-*-aix*) ARCH=aix ;; *-*-osf*) ARCH=osf ;; esac + CheckVisibilityHidden CheckDummyVideo CheckDiskAudio CheckDummyAudio diff --git a/include/begin_code.h b/include/begin_code.h index 62c75ce47..e66ff8e08 100644 --- a/include/begin_code.h +++ b/include/begin_code.h @@ -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__