From: JINMEI Tatuya Date: Fri, 2 Nov 2012 18:07:55 +0000 (-0700) Subject: [2356] try -Wl,-R first to make it safer for build-time failure X-Git-Tag: trac2487_base~20^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=18520152ce6097c22024bca864ec53643be3ef84;p=thirdparty%2Fkea.git [2356] try -Wl,-R first to make it safer for build-time failure --- diff --git a/examples/m4/ax_isc_rpath.m4 b/examples/m4/ax_isc_rpath.m4 index 253ecdb70c..91d9b8af1f 100644 --- a/examples/m4/ax_isc_rpath.m4 +++ b/examples/m4/ax_isc_rpath.m4 @@ -12,22 +12,35 @@ dnl fi AC_DEFUN([AX_ISC_RPATH], [ -# check -R and -Wl,-R rather than gcc specific -rpath to be as portable -# as possible. -AC_MSG_CHECKING([whether -R flag is available in linker]) -LDFLAGS_SAVED="$LDFLAGS" -LDFLAGS="$LDFLAGS -R/usr/lib" +# We'll tweak both CXXFLAGS and CCFLAGS so this function will work whichever +# language is used in the main script. Note also that it's not LDFLAGS; +# technically this is a linker flag, but we've noticed $LDFLAGS can be placed +# where the compiler could interpret it as a compiler option, leading to +# subtle failure mode. So, in the check below using the compiler flag is +# safer (in the actual Makefiles the flag should be set in LDFLAGS). +CXXFLAGS_SAVED="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS -Wl,-R/usr/lib" +CCFLAGS_SAVED="$CCFLAGS" +CCFLAGS="$CCFLAGS -Wl,-R/usr/lib" + +# check -Wl,-R and -R rather than gcc specific -rpath to be as portable +# as possible. -Wl,-R seems to be safer, so we try it first. In some cases +# -R is not actually recognized but AC_TRY_LINK doesn't fail due to that. +AC_MSG_CHECKING([whether -Wl,-R flag is available in linker]) AC_TRY_LINK([],[], [ AC_MSG_RESULT(yes) - ISC_RPATH_FLAG=-R + ISC_RPATH_FLAG=-Wl,-R ],[ AC_MSG_RESULT(no) - AC_MSG_CHECKING([whether -Wl,-R flag is available in linker]) - LDFLAGS="$LDFLAGS_SAVED -Wl,-R" + AC_MSG_CHECKING([whether -R flag is available in linker]) + CXXFLAGS="$CXXFLAGS_SAVED -R" + CCFLAGS="$CCFLAGS_SAVED -R" AC_TRY_LINK([], [], - [ AC_MSG_RESULT(yes) - ISC_RPATH_FLAG=-Wl,-R + [ AC_MSG_RESULT([yes; note that -R is more sensitive about the position in option arguments]) + ISC_RPATH_FLAG=-R ],[ AC_MSG_RESULT(no) ]) ]) -LDFLAGS=$LDFLAGS_SAVED + +CXXFLAGS=$CXXFLAGS_SAVED +CCFLAGS=$CCFLAGS_SAVED ])dnl AX_ISC_RPATH