[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: ITS#3977 libtool 1.5.18 and installed libraries
Hi Howard, others,
Sorry for the long response delay.
* Howard Chu wrote on Mon, Aug 29, 2005 at 07:54:27AM CEST:
> The attached patch appears to fix the problem with libtool-1.5.18
> mistreating installed libtool libraries. The documentation indicates
> that linking a program with "-static" should only statically link
> un-installed libtool libraries, but libtool was ignoring their installed
> status and always statically linking them. This patch tweaks
> prefer_static_libs to distinguish between the -static and -all-static
> cases so that the link step can actually perform as documented.
I have tested this patch a bit, and forward-ported it to CVS HEAD, see
below.
In another related mail you wrote:
| Something I didn't test properly yet is what happens if the executable
| needs to be relinked at install time. Since the just-built libraries
| will most likely be installed before the exe is relinked, it seems to me
| it may foul up. (But my SuSE system didn't need relinking; will have
| to try again on a different platform to see.)
Erm, AFAICS the use of `-static' would exactly mean that relinking would
not be necessary. Right?
I'll wait a couple of days more and test on AIX before comitting.
Cheers,
Ralf
2005-09-xx Howard Chu <hyc@highlandsun.com>
* libltdl/config/ltmain.m4sh (func_mode_link):
With `-static', only link statically against uninstalled
libtool libraries. Fixes 1.5.x regression to match documented
behavior.
* NEWS: Updated.
Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.183
diff -u -r1.183 NEWS
--- NEWS 23 Aug 2005 01:49:36 -0000 1.183
+++ NEWS 25 Sep 2005 11:10:52 -0000
@@ -13,6 +13,8 @@
* Detection of compiler wrappers like distcc/ccache and $host_alias prefix.
* Initial Support for FC (modern Fortran).
* Fixed a regression that prevented use of libltdl without autotools.
+* Fixed a branch-1-5/HEAD regression to only link uninstalled libraries
+ statically with `-static'.
New in 1.9h: 2004-??-??; CVS version 1.9g, Libtool team:
* Bug fixes.
Index: libltdl/config/ltmain.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/config/ltmain.m4sh,v
retrieving revision 1.11
diff -u -r1.11 ltmain.m4sh
--- libltdl/config/ltmain.m4sh 25 Sep 2005 07:35:58 -0000 1.11
+++ libltdl/config/ltmain.m4sh 25 Sep 2005 11:07:42 -0000
@@ -2218,14 +2218,15 @@
compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag"
fi
+ prefer_static_libs=yes
else
if test -z "$pic_flag" && test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static
fi
+ prefer_static_libs=built
fi
build_libtool_libs=no
build_old_libs=yes
- prefer_static_libs=yes
break
;;
esac
@@ -3598,8 +3599,12 @@
fi
link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test "$use_static_libs" = built && test "$installed" = yes; then
+ use_static_libs=no
+ fi
if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
case $host in
*cygwin* | *mingw*)
# No point in relinking DLLs because paths are not encoded