On Wed, 2007-08-22 at 06:40 -0400, Mike Frysinger wrote:
> On Wednesday 22 August 2007, Peter O'Gorman wrote:
> > libsuff=`ldd conftest 2>/dev/null | awk '/libc\.so/
> > {n=split([$]3,x,"/"); for (i=0; i < n; i++) { if (x[[i]] == "lib64") {print
> > "64"}}}'`
> 
> this test would still be subject to the environment of ldd ... in otherwords, 
> it is still possible to have ldd return /lib/libc.so.6 when /lib is a symlink 
> to /lib64 ...
> 
> since the dynamic loader is the only hardcoded path, wouldnt it be better to 
> check that ?  so drop the /libc\.so/ and change the $3 to $1 ...

Makes sense to me. However, I think we'd need to match the first
absolute path output from ldd because:

[EMAIL PROTECTED] ]$ ldd fool
        linux-gate.so.1 =>  (0x009be000)
        libc.so.6 => /lib/libc.so.6 (0x00b82000)
        /lib/ld-linux.so.2 (0x00b65000)

So, how about the attached?

Ralph, the only linux that I have access to outside of TWW are debian 32
bit, and Fedora 32 bit, glad that your list is so much longer :)

Peter


Index: libtool.m4
===================================================================
RCS file: /sources/libtool/libtool/Attic/libtool.m4,v
retrieving revision 1.314.2.187
diff -u -r1.314.2.187 libtool.m4
--- libtool.m4	16 Aug 2007 18:23:24 -0000	1.314.2.187
+++ libtool.m4	22 Aug 2007 16:35:45 -0000
@@ -1622,10 +1622,16 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  echo "int main() { return 0; }" > conftest.c
+  $CC $CFLAGS $LDFLAGS $CPPFLAGS -o conftest conftest.c -lc 2>&1 >/dev/null
+  rm conftest.c
+  libsuff=`ldd conftest 2>/dev/null | awk '/^[[ \t]]*\// {n=split([$]1,x,"/"); for (i=0; i < n; i++) { if (x[[i]] == "lib64") {print "64"}}}'`
+  rm conftest
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
   # 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
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to