Skip to content
Permalink
Browse files

Use --enable-new-dtags to set RUNPATH rather than RPATH so that LD_LI…

…BRARY_PATH is not overridden by the application.
  • Loading branch information
slouken committed Jan 8, 2016
1 parent 73680ab commit dc5f05bb99b9618db11db23a74605c7a98213b1d
Showing with 49 additions and 0 deletions.
  1. +6 −0 CMakeLists.txt
  2. +30 −0 configure
  3. +13 −0 configure.in
@@ -958,6 +958,12 @@ elseif(UNIX AND NOT APPLE)
set(SDL_RLD_FLAGS "")
if(BSDI OR FREEBSD OR LINUX OR NETBSD)
set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir}")
set(CMAKE_REQUIRED_FLAGS "-Wl,--enable-new-dtags")
check_c_compiler_flag("" HAVE_ENABLE_NEW_DTAGS)
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
if(HAVE_ENABLE_NEW_DTAGS)
list(APPEND SDL_RLD_FLAGS "-Wl,--enable-new-dtags")
endif()
elseif(SOLARIS)
set(SDL_RLD_FLAGS "-R\${libdir}")
endif()
if test "x$enable_rpath" = "xyes"; then
if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker option --enable-new-dtags" >&5
$as_echo_n "checking for linker option --enable-new-dtags... " >&6; }
have_enable_new_dtags=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */


int
main ()
{


;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

have_enable_new_dtags=yes
SDL_RLD_FLAGS="$SDL_RLD_FLAGS -Wl,--enable-new-dtags"

fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$save_LDFLAGS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_enable_new_dtags" >&5
$as_echo "$have_enable_new_dtags" >&6; }
fi
if test $ARCH = solaris; then
SDL_RLD_FLAGS="-R\${libdir}"
@@ -3516,6 +3516,19 @@ SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.
if test "x$enable_rpath" = "xyes"; then
if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"

AC_MSG_CHECKING(for linker option --enable-new-dtags)
have_enable_new_dtags=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags"
AC_TRY_LINK([
],[
],[
have_enable_new_dtags=yes
SDL_RLD_FLAGS="$SDL_RLD_FLAGS -Wl,--enable-new-dtags"
])
LDFLAGS="$save_LDFLAGS"
AC_MSG_RESULT($have_enable_new_dtags)
fi
if test $ARCH = solaris; then
SDL_RLD_FLAGS="-R\${libdir}"

0 comments on commit dc5f05b

Please sign in to comment.