|
@@ -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
|