[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fix disable-static -all-static (was: testsuite: 24 25 64 failed)
From: |
Ralf Wildenhues |
Subject: |
Fix disable-static -all-static (was: testsuite: 24 25 64 failed) |
Date: |
Mon, 24 Mar 2008 13:43:21 +0100 |
User-agent: |
Mutt/1.5.17+20080114 (2008-01-14) |
* Ralf Wildenhues wrote on Mon, Mar 24, 2008 at 12:56:56PM CET:
> I'll address 25 separately (confirmed with --disable-static, BTW).
Proposed, slightly ugly patch. Can you try it please, and do you have a
name and email address to put in the ChangeLog and THANKS?
Thus, OK to apply? Note that our manual explicitly allows to use
-static even with --disable-static (which I am not sure whether it works
everywhere, but the static.at test should expose that when libtool is
configured that way), so the situation isn't quite clear-cut.
Cheers,
Ralf
2008-03-24 Ralf Wildenhues <address@hidden>
Document that disable-static plus -all-static is not portable.
* doc/libtool.texi (Link mode): -all-static does not go well
with disable-static on most systems.
* tests/static.at (static linking flags for programs) [!aix]:
With --disable-static but nonempty link_static_flag, skip the
m-all-static link. Do not skip it on AIX, as there the
enable_static is self-inflicted, and thus expected to work.
* THANKS: Update.
Report by Nix.
Index: doc/libtool.texi
===================================================================
RCS file: /cvsroot/libtool/libtool/doc/libtool.texi,v
retrieving revision 1.239
diff -u -r1.239 libtool.texi
--- doc/libtool.texi 4 Mar 2008 21:07:36 -0000 1.239
+++ doc/libtool.texi 24 Mar 2008 12:37:17 -0000
@@ -1322,7 +1322,8 @@
@item -all-static
If @var{output-file} is a program, then do not link it against any
shared libraries at all. If @var{output-file} is a library, then only
-create a static library.
+create a static library. In general, this flag cannot be used together
+with @samp{disable-static} (@pxref{LT_INIT}).
@item -avoid-version
Tries to avoid versioning (@pxref{Versioning}) for libraries and modules,
Index: tests/static.at
===================================================================
RCS file: /cvsroot/libtool/libtool/tests/static.at,v
retrieving revision 1.6
diff -u -r1.6 static.at
--- tests/static.at 25 Mar 2007 12:12:43 -0000 1.6
+++ tests/static.at 24 Mar 2008 12:31:42 -0000
@@ -1,6 +1,6 @@
# static.at -- test flags for static/dynamic linking -*- Autotest -*-
#
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
# Written by Ralf Wildenhues, 2006
#
# This file is part of GNU Libtool.
@@ -92,6 +92,16 @@
if test -n "$per_deplib_static_flag" && test -n "$per_deplib_dynamic_flag";
then
per_deplib=:
fi
+# On GNU/Linux with --disable-static, m-all-static fails to link.
+# What we'd like to state here is: if the user actively passed
+# --disable-static (as opposed to: the libtool.m4 macros set
+# enable_static=no), then they cannot expect -all-static to work.
+# So we punt, knowing that we mangle enable_static on AIX only.
+can_link_all_static=-all-static
+case $host_os,$have_static,$link_static_flag in
+ aix*) ;;
+ *,false,?*) can_link_all_static= ;;
+esac
# Create broken libraries. They will later be moved to those
# directories where the respective libraries should be linked
@@ -248,10 +258,10 @@
$CC $CPPFLAGS $CFLAGS -c m.c
# global static flags.
- for st in -static -static-libtool-libs -all-static; do
+ for st in -static -static-libtool-libs $can_link_all_static; do
AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $st -o m$st m.$OBJEXT \
- -L$libdir1 -la1 a2/liba2.la -L$libdir3 -R$libdir3 -la3],
- [0], [ignore], [ignore])
+ -L$libdir1 -la1 a2/liba2.la -L$libdir3 -R$libdir3 -la3],
+ [0], [ignore], [ignore])
done
# per-deplib static/shared flags.
@@ -296,7 +306,7 @@
### install the programs.
# We can't install any program that links dynamically against liba2.
- for st in -static -static-libtool-libs -all-static `$per_deplib && echo 2 12
23 123 123a`; do
+ for st in -static -static-libtool-libs $can_link_all_static `$per_deplib &&
echo 2 12 23 123 123a`; do
echo "# m$st"
AT_CHECK([$LIBTOOL --mode=install cp m$st $bindir/m$st], [0], [ignore],
[stderr])
if $have_static; then
- testsuite: 24 25 64 failed, Nix, 2008/03/21
- Re: testsuite: 24 25 64 failed, Ralf Wildenhues, 2008/03/24
- Re: testsuite: 24 25 64 failed, Nix, 2008/03/24
- Re: testsuite: 24 25 64 failed, Ralf Wildenhues, 2008/03/24
- Re: testsuite: 24 25 64 failed, Nix, 2008/03/24
- Re: testsuite: 24 25 64 failed, Ralf Wildenhues, 2008/03/24
- Re: testsuite: 24 25 64 failed, Nix, 2008/03/24
- What semantics should -R have for libs? (was: testsuite: 24 25 64 failed), Ralf Wildenhues, 2008/03/24
- Fix disable-static -all-static (was: testsuite: 24 25 64 failed),
Ralf Wildenhues <=
- Re: Fix disable-static -all-static, Nix, 2008/03/24
- Re: Fix disable-static -all-static, Ralf Wildenhues, 2008/03/24
- Re: Fix disable-static -all-static (was: testsuite: 24 25 64 failed), Bob Friesenhahn, 2008/03/24