libtool-patches
[Top][All Lists]
Advanced

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

Keeping TAGs sane


From: Alexandre Oliva
Subject: Keeping TAGs sane
Date: 24 Jan 2001 18:08:05 -0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Crater Lake)

On a system such as AIX, on which we don't support building both
shared and static libraries, using the --tag disable-shared has
revealed some, shall I say, interesting problems.  If I understood
correctly, under certain circumstances, we'd fail to import the object
files of a convenience archive into the convenience archive, leaving
it empty.

I still think there's a bug lurking in there, in case one compiles the
object files with --tag disable-shared but fails to disable shared
libraries when creating the archive.  Because object files are PIC by
default, it seems that libtool doesn't pick the object file names from
the non-pic object list of each .lo file.  But one bug at a time :-)

I'm checking this one in in the MLB for now.

Index: ChangeLog
from  Alexandre Oliva  <address@hidden>
        * ltmain.in (TAG disable-shared, TAG disable-static): Make sure we
        keep at least one of build_libtool_libs or build_old_libs set to
        yes.

Index: ltmain.in
===================================================================
RCS file: /home/cvs/libtool/ltmain.in,v
retrieving revision 1.200.2.43
diff -u -p -r1.200.2.43 ltmain.in
--- ltmain.in 2000/12/20 22:57:53 1.200.2.43
+++ ltmain.in 2001/01/24 19:55:54
@@ -1,7 +1,7 @@
 # ltmain.sh - Provide generalized library-building support services.
 # NOTE: Changing this file will not affect anything until you rerun ltconfig.
 #
-# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc.
 # Originally by Gordon Matzigkeit <address@hidden>, 1996
 #
 # This program is free software; you can redistribute it and/or modify
@@ -5016,12 +5016,24 @@ $echo "Try \`$modename --help' for more 
 
 exit 0
 
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
 ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 build_libtool_libs=no
+build_old_libs=yes
 ### END LIBTOOL TAG CONFIG: disable-shared
 
 ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=no
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 ### END LIBTOOL TAG CONFIG: disable-static
 
 # Local Variables:
-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  address@hidden, redhat.com}
CS PhD student at IC-Unicamp        address@hidden, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me

reply via email to

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