libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add 64 bit directories to sys_lib_dlsearch_path_spec for Lin


From: Dan Nicholson
Subject: Re: [PATCH] Add 64 bit directories to sys_lib_dlsearch_path_spec for Linux ELF
Date: Thu, 29 Jan 2009 22:52:32 -0800
User-agent: Mutt/1.5.18 (2008-05-17)

On Wed, Jan 28, 2009 at 01:50:51PM -0600, Bob Friesenhahn wrote:
> On Wed, 28 Jan 2009, Dan Nicholson wrote:
>
>> 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.
>
> Are these libraries consistently available for 64-bit Linux?  If not,  
> should they be explicitly tested for before depending on them?
>
> I got the impression that Linux systems which are completely 64-bit  
> (i.e. don't support executing 32-bit binaries) don't use /lib64 and  
> /usr/lib64.

Here's a respin of the patch that adds the directories only when they
exist. I think this a pretty safe default for 64 bit systems.

--
Dan

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]