As pointed out by H. Lu in October
( http://mail.gnu.org/pipermail/bug-libtool/2001-October/002869.html )
and seconded by Guido
( http://mail.gnu.org/pipermail/bug-libtool/2001-October/002872.html )
libtool improperly searches /lib and /usr/lib when doing
a cross-compile, which results in libraries from the build system
leaking into the link (which results in programmers throwing rotten
tomatoes at the screen).

You can see the essential problem in the current cvs version
http://subversions.gnu.org/cgi-bin/cvsweb/libtool/libtool.m4?rev=1.249
It sets sys_lib_search_path_spec without asking the cross-compiler
what its default system search path is.

Following a suggestion by Guido, I posted a patch 
http://mail.gnu.org/pipermail/libtool/2002-March/006133.html
that solved this problem for me. Guido liked the patch,
but pointed out a bug.
http://mail.gnu.org/pipermail/libtool/2002-March/006136.html

I suppose the following is closer to correct:

--- libtool.m4.orig     Sat Mar  9 07:28:58 2002
+++ libtool.m4  Sat Mar  9 07:30:59 2002
@@ -984,7 +984,11 @@
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+if test "$GCC" = yes && test "$cross_compiling" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e 
+"s/^libraries://" -e "s/:/ /g"`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
 need_lib_prefix=unknown
 hardcode_into_libs=no

That stays closer to the original spirit of the code, and
should fix the bug Guido pointed out.

Comments?

- Dan

_______________________________________________
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool

Reply via email to