diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-07-17 12:30:40 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-07-17 12:30:40 +0000 |
commit | 2ee90eab64c8848f4547adb0b4cbd9f95562f671 (patch) | |
tree | 4edc6ce9b76ee71f5d9f775977e6a6d5ddedbd01 | |
parent | 9c013c6c1dfb294a55e0e3c2561f1e08f0105de0 (diff) | |
download | mpfr-2ee90eab64c8848f4547adb0b4cbd9f95562f671.tar.gz |
[configure.ac] Under Linux, make sure that the old dtags are used
if LD_LIBRARY_PATH is defined, avoiding the following issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/3.1@11587 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | configure.ac | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index cf8487a51..249dd2dce 100644 --- a/configure.ac +++ b/configure.ac @@ -441,6 +441,36 @@ error ;; esac +dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH +dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has +dnl the precedence over the run path, so that if a compatible MPFR library +dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested +dnl MPFR library will be this library instead of the MPFR library from the +dnl build tree. Other OS with the same issue might be added later. +dnl +dnl References: +dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732 +dnl http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html +dnl +dnl We need to check whether --disable-new-dtags is supported as alternate +dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc). +dnl +case $host in + *-*-linux*) + if test -n "$LD_LIBRARY_PATH"; then + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--disable-new-dtags" + AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker) + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +int main (void) { return 0; } + ]])], + [AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))], + [AC_MSG_RESULT(no) + LDFLAGS="$saved_LDFLAGS" + ]) + fi + ;; +esac dnl dnl For mpfr-longlong.h - TODO: should be replaced (see acinclude.m4). |