From b7f7b0a2d25071dd8fe09b3f313168bf7f939cc7 Mon Sep 17 00:00:00 2001 From: nagachika Date: Fri, 4 Aug 2017 14:39:29 +0000 Subject: merge revision(s) 58287: [Backport #13411] configure.in: rpath with OPTDIR * configure.in: add rpath flags which is needed for OPTDIR as well as -L options, when it is given. [ruby-dev:50065] [Bug #13411] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.in | 42 ++++++++++++++++++++++-------------------- version.h | 2 +- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/configure.in b/configure.in index 742153b349..6d714f3b24 100644 --- a/configure.in +++ b/configure.in @@ -809,6 +809,23 @@ AC_DEFUN([RUBY_TRY_LDFLAGS], [ ]) : ${DLDFLAGS="$LDFLAGS"} +: ${RPATHFLAG=''} +rpathflag='' +AS_IF([test x"${RPATHFLAG}" = x], [ + AS_CASE(["$target_os"], + [hpux*], [AS_IF([test "$rb_cv_prog_gnu_ld" = no], [rpathflag='+b '])], + [aix*], [rpathflag='-blibpath:'], + [for rpathflag in -R "-rpath "; do + AS_CASE("$rpathflag", + [*" "], [AS_CASE(["${linker_flag}"], + [*,], [rpathflag=`echo "$rpathflag" | tr ' ' ,`])]) + rpathflag="${linker_flag}${rpathflag}" + RUBY_TRY_LDFLAGS([${rpathflag}.], [], [rpathflag=]) + AS_IF([test "x${rpathflag}" != x], []) + done]) +], [ + rpathflag=`echo "$RPATHFLAG" | sed 's/%.*//'` +]) AS_CASE([$RUBY_PATCHLEVEL], [-*], [particular_werror_flags=yes], [particular_werror_flags=no]) @@ -1035,7 +1052,7 @@ AC_ARG_WITH(opt-dir, [ val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -I\1/include|g;s/^ //"` CPPFLAGS="$CPPFLAGS $val" - val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -L\1/lib|g;s/^ //"` + val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -L\1/lib${rpathflag:+ $rpathflag\\\\1/lib}|g;s/^ //"` LDFLAGS="$LDFLAGS $val" LDFLAGS_OPTDIR="$val" OPT_DIR="$withval" @@ -3314,7 +3331,6 @@ AC_SUBST(LIBEXT)dnl AC_SUBST(ASMEXT, S)dnl STATIC= -: ${PATHFLAG=''} if test "$with_dln_a_out" != yes; then rb_cv_dlopen=unknown @@ -3353,9 +3369,6 @@ if test "$with_dln_a_out" != yes; then : ${LDSHARED='$(LD) -b'} XLDFLAGS="$XLDFLAGS -Wl,-E" : ${LIBPATHENV=SHLIB_PATH} - if test "$rb_cv_prog_gnu_ld" = no; then - RPATHFLAG=' +b %1$-s' - fi rb_cv_dlopen=yes], [solaris*], [ if test "$GCC" = yes; then : ${LDSHARED='$(CC) -shared'} @@ -3426,7 +3439,6 @@ if test "$with_dln_a_out" != yes; then TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)' TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)' : ${LIBPATHENV=LIBPATH} - RPATHFLAG=" ${linker_flag}-blibpath:%1\$-s:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}" rb_cv_dlopen=yes], [nto-qnx*], [ DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib" : ${LDSHARED='$(LD) -Bshareable -x'} @@ -3462,21 +3474,11 @@ if test "$with_dln_a_out" != yes; then ]) fi - if test "$enable_rpath" = yes; then - if test x"${RPATHFLAG}" = x; then - for rpathflag in -R "-rpath "; do - AS_CASE("$rpathflag", - [*" "], [AS_CASE(["${linker_flag}"], - [*,], [rpathflag=`echo "$rpathflag" | tr ' ' ,`])]) - rpathflag="${linker_flag}${rpathflag}" - RUBY_TRY_LDFLAGS([${rpathflag}.], [], [rpathflag=]) - if test "x${rpathflag}" != x; then + AS_IF([test "$enable_rpath:${RPATHFLAG}" = yes:], [ + AS_IF([test "x$rpathflag" != x], [ RPATHFLAG=" ${rpathflag}%1\$-s" - break - fi - done - fi - fi + ]) + ]) fi if test "${LDSHAREDXX}" = ""; then AS_CASE(["${LDSHARED}"], diff --git a/version.h b/version.h index 50df49824e..b89d37abf8 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.4.2" #define RUBY_RELEASE_DATE "2017-08-04" -#define RUBY_PATCHLEVEL 168 +#define RUBY_PATCHLEVEL 169 #define RUBY_RELEASE_YEAR 2017 #define RUBY_RELEASE_MONTH 8 -- cgit v1.2.3