From 8ebcdf9ddf925fdda191a8ac23eb6dc0f7b91143 Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 23 Oct 2010 09:37:19 +0000 Subject: merges r29341 and r29343 from trunk into ruby_1_9_2. -- * configure.in (LIBRUBY_DLDFLAGS): use -unexported_symbol only when available. http://trac.macports.org/ticket/26341 -- * configure.in (LIBRUBY_DLDFLAGS): fix quoting. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@29567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++++ configure.in | 29 ++++++++++++++++++++++++++--- version.h | 2 +- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bdad37467..bf8620b82f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Sep 25 22:48:30 2010 Nobuyoshi Nakada + + * configure.in (LIBRUBY_DLDFLAGS): fix quoting. + +Sat Sep 25 10:30:37 2010 Nobuyoshi Nakada + + * configure.in (LIBRUBY_DLDFLAGS): use -unexported_symbol only + when available. http://trac.macports.org/ticket/26341 + Sat Oct 16 10:54:57 2010 Nobuyoshi Nakada * Makefile.in (CPP): already used in .c.i rule. diff --git a/configure.in b/configure.in index 61f5aa0442..3cb0ced3b5 100644 --- a/configure.in +++ b/configure.in @@ -301,7 +301,7 @@ AC_CHECK_TOOL(AS, as) ASFLAGS=$ASFLAGS AC_SUBST(ASFLAGS) -AS_CASE(["$target_os"],[cygwin*|mingw*|darwin*], [ac_cv_prog_ac_ct_OBJCOPY=":"]) +AS_CASE(["$target_os"],[cygwin*|mingw*], [ac_cv_prog_ac_ct_OBJCOPY=":"]) # BSD's ports and MacPorts prefix GNU binutils with 'g' AC_CHECK_TOOLS(OBJDUMP, [objdump gobjdump]) @@ -399,6 +399,19 @@ AC_DEFUN(RUBY_TRY_CFLAGS, [ save_CFLAGS= ]) +AC_DEFUN(RUBY_TRY_LDFLAGS, [ + save_LDFLAGS="$LDFLAGS" + LDFLAGS="[$]LDFLAGS $1" + AC_MSG_CHECKING([whether $1 is accepted]) + AC_TRY_LINK([$4], [$5], + [$2 + AC_MSG_RESULT(yes)], + [$3 + AC_MSG_RESULT(no)]) + LDFLAGS="$save_LDFLAGS" + save_LDFLAGS= +]) + if test "$GCC:${warnflags+set}:no" = yes::no; then for wflag in -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings \ -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long; do @@ -408,6 +421,14 @@ if test "$GCC:${warnflags+set}:no" = yes::no; then [wflag=-Wall]) RUBY_TRY_CFLAGS($wflag, [warnflags="$wflag${warnflags+ $warnflags}"]) fi +if test "$GCC" = yes; then + if test "$visibility_option" = yes; then + RUBY_APPEND_OPTION(XCFLAGS, -fvisibility=hidden) + else + RUBY_TRY_LDFLAGS([-Wl,-unexported_symbol,_Init_*], [visibility_option=ld], [visibility_option=no]) + fi + test "$visibility_option" = no || OBJCOPY=: +fi test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" && eval CFLAGS="\"$cflags $ARCH_FLAG\"" test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" && eval CXXFLAGS="\"$cxxflags $ARCH_FLAG\"" @@ -2157,8 +2178,10 @@ if test "$enable_shared" = 'yes'; then LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-install_name '${libprefix}'/$(LIBRUBY_SO)' LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-current_version $(MAJOR).$(MINOR).$(TEENY)' LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-compatibility_version $(ruby_version)' - LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_*' - LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,*_threadptr_*' + if test "$visibility_option" = ld; then + LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_*' + LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,*_threadptr_*' + fi LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "' $(XLDFLAGS)' LIBRUBY_SO='lib$(RUBY_SO_NAME).dylib' LIBRUBY_ALIASES='lib$(RUBY_BASE_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_INSTALL_NAME).dylib' diff --git a/version.h b/version.h index 99257cdb2b..438f62ceee 100644 --- a/version.h +++ b/version.h @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 20 +#define RUBY_PATCHLEVEL 21 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 -- cgit v1.2.3