libtool
[Top][All Lists]
Advanced

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

PATCH: Fix libtool with linking against archive


From: H . J . Lu
Subject: PATCH: Fix libtool with linking against archive
Date: Mon, 22 Oct 2001 11:51:16 -0700
User-agent: Mutt/1.2.5i

Here is a patch for binutils to fix linking against an archive when
building a shared library. It is complete bogus to put

dependency_libs='-L..... -lfoo"

in *.la for libfoo.a when building a shared library. I checked out
libtool from CVS. But libtool.m4 is very different from the one
in binutils so that I couldn't provide a patch.


H.J.
-----
2001-10-22  H.J. Lu <address@hidden>

        * ltmain.sh: Allow link against an archive when building a
        shared library.

        * libtool.m4 (lt_cv_deplibs_check_method): Always use
        file_magic for Linux ELF.

Index: libtool.m4
===================================================================
RCS file: /work/cvs/gnu/binutils/libtool.m4,v
retrieving revision 1.1.1.7
retrieving revision 1.4
diff -u -p -r1.1.1.7 -r1.4
--- libtool.m4  2001/05/21 17:33:45     1.1.1.7
+++ libtool.m4  2001/10/22 16:57:57     1.4
@@ -596,13 +596,7 @@ irix5* | irix6*)
 
 # This must be Linux ELF.
 linux-gnu*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [LM]SB (shared 
object|dynamic lib )'] ;;
-  esac
+  lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [LM]SB (shared 
object|dynamic lib )']
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
Index: ltmain.sh
===================================================================
RCS file: /work/cvs/gnu/binutils/ltmain.sh,v
retrieving revision 1.17
retrieving revision 1.19
diff -u -p -r1.17 -r1.19
--- ltmain.sh   2001/06/02 04:47:07     1.17
+++ ltmain.sh   2001/10/22 16:57:57     1.19
@@ -2890,6 +2890,13 @@ EOF
                        *) potlib=`$echo "X$potlib" | $Xsed -e 
's,[^/]*$,,'`"$potliblink";;
                        esac
                      done
+                     # It is ok to link against an archive when
+                     # building a shared library.
+                     if $AR -t $potlib > /dev/null 2>&1; then
+                       newdeplibs="$newdeplibs $a_deplib"
+                       a_deplib=""
+                       break 2
+                     fi
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
                         | sed 10q \
                         | egrep "$file_magic_regex" > /dev/null; then



reply via email to

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