Subject: bug#16037: Add 64 bit directories to sys_lib_dlsearch_path_spec for Linux ELF

From: Philipp Thomas <[email-masked]>
Date: Tue, 3 Dec 2013 14:07:38 +0100

Four years ago Dan Nicholson po0sted the patch below to the libtool list
(http://lists.gnu.org/archive/html/libtool/2009-01/msg00043.html). The
patch wasn't rejected and is still missing from libtool. Why wasn't this or
something like it added to libtool up to now?

Philipp

Subject: [PATCH] Add 64 bit directories to sys_lib_dlsearch_path_spec for
Linux 
ELF

When the ABI is 64-bit on Linux ELF, add /lib64 and /usr/lib64 to the
system library path so that an RPATH is not added when using libraries
from these directories.

Signed-off-by: Dan Nicholson <address@hidden>
---
 libltdl/m4/libtool.m4 |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index b75a55a..a760865 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -2410,10 +2410,25 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # Add ABI-specific directories to the system library path.
+  sys_lib_dlsearch_path_spec="/lib /usr/lib"
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *64-bit*)
+       for ac_dir in /lib64 /usr/lib64; do
+         test -d "$ac_dir" && \
+           sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $ac_dir"
+       done
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 
2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < 
/etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ 
/g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
-- 
1.5.6.6