]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
*** empty log message ***
authorGordon Matzigkeit <gord@gnu.ai.mit.edu>
Sat, 5 Apr 1997 18:48:44 +0000 (18:48 +0000)
committerGordon Matzigkeit <gord@gnu.org>
Sat, 5 Apr 1997 18:48:44 +0000 (18:48 +0000)
ChangeLog
Makefile.am
NEWS
PACKAGES
TODO
doc/libtool.texi
ltconfig.in
ltmain.sh.in

index 8b73cb8e816ba086b8d9dbe7fee16a629b8a068b..67017e47dfaebe880a3d1f9a336cf2233e21c262 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+Sat Apr  5 11:26:06 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * ltmain.sh.in (install): Relink if hardcode_action is `relink',
+       rather than using complex conditionals based on the other
+       hardcode variables.
+
+       * ltconfig.in (hardcode_action): Set to `relink', not `immediate',
+       if we can only hardcode existing directories.  Rearrange
+       conditionals to make the intent clearer, otherwise this can be one
+       hellish piece of code for the already-dizzy libtool maintainer.
+
+Wed Apr  2 10:36:31 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+       * replfunc.m4: Delete from the distribution.  Documentation now
+       describes how to set LTALLOCA and LTLIBOBJS in your own
+       configure.in.
+
+       * ltmain.sh.in (link): Make sure a libtool library only counts as
+       a shared library if its library_names are non-null.
+       Use timestamps for .lo's when PIC is turned off, rather than
+       symlinking to the real object.  This helps invalid mixtures of PIC
+       and non-PIC to fail.
+
 Tue Apr  1 10:01:20 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
 
        * Makefile.am (EXTRA_DIST): Distribute libtool.pkg.
index d797f46c0469e9c05196080aac00de3d68f8b368..6ae37c899dc36e3955ec9d7e174f941372f0c555 100644 (file)
@@ -7,7 +7,7 @@ SUBDIRS = doc tests
 CFLAGS = @CFLAGS@
 CPPLAGS = @CPPFLAGS@
 
-aclocal_macros = libtool.m4 replfunc.m4
+aclocal_macros = libtool.m4
 
 # Distribute ltconfig and ltmain.sh so that the demo directory works.
 EXTRA_DIST = $(aclocal_macros) libtoolize.in ltconfig ltconfig.in \
diff --git a/NEWS b/NEWS
index 9154614f2da112cea76976ab8dc09aac1cbce21c..8f5a2dd2bf61bedb7d10e96df8ebb8f26eee2282 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,12 +2,12 @@ NEWS - list of user-visible changes between releases of GNU libtool.
 
 New in 0.9d:
 * Bug fixes.
-* Support for convenience libraries made of libtool objects.
-* New `-whole-archive' and `-no-whole-archive' linking flags.
-* New Autoconf macros, AM_REPLACE_FUNCS, AM_FUNC_ALLOCA, AM_FUNC_MEMCMP,
-  AM_STRUCT_ST_BLOCKS that set and substitute LTLIBOBJS and LTALLOCA.
 * Automake support for Libtool now uses the LTLIBRARIES primary.  See
   the Automake documentation for more information.
+* Basic support for dynamically loaded modules: new `-export-dynamic'
+  link flag and corresponding `dlname' mode.
+* Basic support for convenience libraries made of libtool objects: new
+  `-whole-archive' and `-no-whole-archive' linking flags.
 * Support *-*-linux-gnu* as an alias for *-*-linux*.
 \f
 New in 0.9:
index b3f50f63f4ef373a9a45c358a5937c5f67bc813c..23998ac26e3d61f68ceb532e0df858819602ee8c 100644 (file)
--- a/PACKAGES
+++ b/PACKAGES
@@ -1,5 +1,13 @@
 Packages using libtool:
 
+Free:
+=====
 http://www.ens.fr/~laburthe/claire.html
 ftp://ftp.x.org/contrib/widgets/motif/spinbox/
 The GNU Guile project.
+GTK+ and GIMP (Generic Image Manipulation Program). http://www.
+SANE (Scanner Access Now Easy):  http://www.azstarnet.com/~davidm/
+
+Nonfree:
+========
+KDE (K Desktop Environment): http://www.kde.org/
diff --git a/TODO b/TODO
index 94baa043cd7b80cb296f35b71db2a634e6877946..f0e0c2c909f5101101510ceb9d7c2ad0d11a6043 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,19 @@
+* Sanity check to detect broken collect2 on AIX:
+
+checking if libraries in .libs can be linked... no
+configure: error: basic sanity check failed; look at config.log
+If you are using GCC versions before 2.8 on AIX, try configuring with
+the native C compiler instead (set the CC environment variable to `xlc').
+
+mkdir .libs
+echo > conftest.c
+$CC -c conftest.c
+$AR cru .libs/libct.a conftest.o
+$RANLIB .libs/libct.a # if necessary
+echo 'int main () { return 0; }' > conftest.c
+$CC -c conftest.c
+$CC -o conftest conftest.o .libs/libct.a
+
 * Document convenience libraries, -whole-archive, and
 -no-whole-archive.
 
index f92b6ba784a3e7c745d5f4ef2d5cdd8ac7d40cfe..5c5017ec4276a4e02c6d54b97634ec141823697f 100644 (file)
@@ -1040,6 +1040,10 @@ files (typically @file{/bin/rm}).
 The remaning @var{mode-args} are either flags for the deletion program
 (beginning with a `-'), or the names of files to delete.
 
+@ignore
+FIXME: add in documentation when we do reinstallation of old versions.
+@end ignore
+
 @node Integrating Libtool
 @chapter Integrating Libtool with Your Own Packages
 
@@ -1383,35 +1387,33 @@ The Autoconf package comes with a few macros that run tests, then set a
 variable corresponding to the name of an object file.  Sometimes it is
 necessary to use corresponding names for libtool objects.
 
-So, included with libtool are convenience macros that do this kind of
-work:
+Here are the names of variables that list libtool objects:
 
-@defmac AM_REPLACE_FUNCS (@var{function}@dots{})
-Same as @code{AC_REPLACE_FUNCS} (@pxref{Generic Functions, Generic
+@table @code
+@item LTALLOCA
+Substituted by @code{AC_FUNC_ALLOCA} (@pxref{Particular Functions, Particular
 Function Checks, The Autoconf Manual, autoconf, The Autoconf
-Manual}), except it also adds @samp{@var{function}.lo} to the value of
-the output variable @code{LTLIBOBJS}.
-@end defmac
+Manual}).  Is either empty, or contains @samp{alloca.lo}.
 
-@defmac AM_FUNC_ALLOCA
-Same as @code{AC_FUNC_ALLOCA} (@pxref{Particular Functions, Particular
+@item LTLIBOBJS
+Substituted by @code{AC_REPLACE_FUNCS} (@pxref{Generic Functions, Generic
 Function Checks, The Autoconf Manual, autoconf, The Autoconf
-Manual}), but also sets the output variable @code{LTALLOCA} to
-@samp{alloca.lo}.
-@end defmac
+Manual}), and a few other functions.
+@end table
 
-@defmac AM_FUNC_MEMCMP
-Same as @code{AC_FUNC_MEMCMP} (@pxref{Particular Functions, Particular
-Function Checks, The Autoconf Manual, autoconf, The Autoconf
-Manual}), except it also adds @samp{memcmp.lo} to the value of the output
-variable @code{LTLIBOBJS}.
-@end defmac
+Unfortunately, the most recent version of Autoconf (2.12, at the time of
+this writing) does not have any way for libtool to provide support for
+these variables.  So, if you depend on them, use the following code
+immediately before the call to @code{AC_OUTPUT} in your
+@file{configure.in}:
 
-@defmac AM_STRUCT_ST_BLOCKS
-Same as @code{AC_STRUCT_ST_BLOCKS} (@pxref{Structures, Structures, The
-Autoconf Manual, autoconf, The Autoconf Manual}), except it also
-adds @samp{fileblocks.lo} to the output variable @code{LTLIBOBJS}.
-@end defmac
+@example
+LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'`
+AC_SUBST(LTLIBOBJS)
+LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/\.lo/g'`
+AC_SUBST(LTALLOCA)
+AC_OUTPUT(@dots{})
+@end example
 
 @node Versioning
 @chapter Library Interface Versions
index 8119a4956e9e35830695435349f52394da9ce317..f4af93a4abb029937b27d0310d50d8153f44595e 100755 (executable)
@@ -616,20 +616,20 @@ if test -n "$hardcode_libdir_flag_spec"; then
      test "$hardcode_minus_L" != no &&
      test "$hardcode_shlibpath_var" != no; then
 
-    # Can't link without hardcoding.
+    # Linking always hardcodes the temporary library directory.
     hardcode_action=relink
   else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
     hardcode_action=immediate
   fi
-elif test "$hardcode_direct" = yes ||
-     test "$hardcode_minus_L" = yes ||
-     test "$hardcode_shlibpath_var" = yes; then
-
-  # We can't hardcode non-existant directories, but we can existing ones.
-  hardcode_action=immediate
-else
+elif test "$hardcode_direct" != yes ||
+     test "$hardcode_minus_L" != yes ||
+     test "$hardcode_shlibpath_var" != yes; then
   # We can't hardcode anything.
   hardcode_action=unsupported
+else
+  # We can only hardcode existing directories.
+  hardcode_action=relink
 fi
 echo $ac_t "$hardcode_action" 1>&6
 test "$hardcode_action" = unsupported && can_build_shared=no
index e597de8f1c62db1080316a6649d97b996e7ab93a..73de061be3c52dc093ac2c8fb409173eda484ac6 100644 (file)
@@ -263,11 +263,11 @@ if test -z "$show_help"; then
       exit 1
     fi
 
-    # Symlink or copy the object file into library object, if no PIC.
+    # Create an invalid object file if no PIC, so that we don't accidentally
+    # link it.
     if test "$build_libtool_libs" != yes; then
-      $show "$ln_s $obj $libobj"
-      $run $ln_s $obj $libobj || $run $cp_p $obj $libobj
-      exit $?
+      $show "echo timestamp > $libobj"
+      eval "$run echo timestamp > $libobj" || exit $?
     fi
 
     exit 0
@@ -471,9 +471,8 @@ if test -z "$show_help"; then
          dir="$dir/$objdir"
        fi
 
-       link_against_libtool_libs="$link_against_libtool_libs $arg"
-
-       if test "$build_libtool_libs" = yes; then
+       if test "$build_libtool_libs" = yes && test -n "$library_names"; then
+         link_against_libtool_libs="$link_against_libtool_libs $arg"
          if test -n "$shlibpath_var"; then
            # Make sure the rpath contains only unique directories.
            case "$temp_rpath " in
@@ -1375,7 +1374,7 @@ EOF
            fi
          done
 
-         if test "$hardcode_direct" != no && test "$hardcode_minus_L" != no && test "$hardcode_shlibpath_var" != no; then
+         if test "$hardcode_action" = relink; then
            if test "$finalize" = no; then
              echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
            else