[SCM] GNU Libtool branch, master, updated. v2.2.6-99-g55b363f

2009-02-28 Thread Ralf Wildenhues
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project GNU Libtool.

The branch, master has been updated
   via  55b363f2147638c3b5c78df264286863f23ff605 (commit)
  from  7c483431f1026e5bbfedc18c369652bb96f9f8dd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 55b363f2147638c3b5c78df264286863f23ff605
Author: Tim Rice t...@multitalents.net
Date:   Sat Feb 28 14:12:03 2009 +0100

Fix C++ template handling for old archives on UnixWare 7.1.4.

* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] old_archive_cmds: For CC, add template
prelink step before archiving.  Fixes template.at test failures.

Signed-off-by: Ralf Wildenhues ralf.wildenh...@gmx.de

---

Summary of changes:
 ChangeLog |7 +++
 libltdl/m4/libtool.m4 |2 ++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 022da07..9161d3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-02-28  Tim Rice  t...@multitalents.net
+
+   Fix C++ template handling for old archives on UnixWare 7.1.4.
+   * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
+   sco3.2v5*, sco5v6*] old_archive_cmds: For CC, add template
+   prelink step before archiving.  Fixes template.at test failures.
+
 2009-02-28  Török Edwin  edwinto...@gmail.com  (tiny change)
Ralf Wildenhues  ralf.wildenh...@gmx.de
 
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index b75a55a..51e8910 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -6219,6 +6219,8 @@ if test $_lt_caught_CXX_error != yes; then
   CC*)
_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G 
${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs 
$compiler_flags'
+   _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '$_LT_TAGVAR(old_archive_cmds, $1)
;;
  *)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'


hooks/post-receive
--
GNU Libtool




[SCM] GNU Libtool branch, master, updated. v2.2.6-100-g95f16dc

2009-02-28 Thread Ralf Wildenhues
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project GNU Libtool.

The branch, master has been updated
   via  95f16dc1f658f0ff2a47d728e4b49cc90c1f09e3 (commit)
  from  55b363f2147638c3b5c78df264286863f23ff605 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 95f16dc1f658f0ff2a47d728e4b49cc90c1f09e3
Author: Ralf Wildenhues ralf.wildenh...@gmx.de
Date:   Sat Feb 28 22:37:34 2009 +0100

Add missing parentheses in the manual.

* doc/libtool.texi (Distributing libltdl, Test descriptions):
Add missing parentheses.

Signed-off-by: Ralf Wildenhues ralf.wildenh...@gmx.de

---

Summary of changes:
 ChangeLog|5 +
 doc/libtool.texi |4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9161d3f..da9640a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-28  Ralf Wildenhues  ralf.wildenh...@gmx.de
+
+   * doc/libtool.texi (Distributing libltdl, Test descriptions):
+   Add missing parentheses.
+
 2009-02-28  Tim Rice  t...@multitalents.net
 
Fix C++ template handling for old archives on UnixWare 7.1.4.
diff --git a/doc/libtool.texi b/doc/libtool.texi
index 0b35500..2f90ca3 100644
--- a/doc/libtool.texi
+++ b/doc/libtool.texi
@@ -4474,7 +4474,7 @@ unnecessary but makes it easy to forget to upgrade 
@file{acinclude.m4}
 if you move to a different release of libltdl.
 @c
 }.  Having made the macros available, you must add a call to the
-...@samp{ltdl_init} macro (after the call to @samp{LT_INIT}
+...@samp{ltdl_init} macro (after the call to @samp{LT_INIT})
 to your package's @file{configure.ac} to
 perform the configure time checks required to build the library
 correctly.  Unfortunately, this method has problems if you then try to
@@ -5004,7 +5004,7 @@ static and shared libraries, @file{depdemo-static.test} 
builds only static
 libraries (@option{--disable-shared}), and @file{depdemo-shared.test} builds
 only shared libraries (@option{--disable-static}).
 @file{depdemo-nofast.test} configures @file{depdemo/libtool} to
-disable the fast-install mode (@option{--enable-fast-install=no}.
+disable the fast-install mode (@option{--enable-fast-install=no}).
 
 @item mdemo-conf.test
 @itemx mdemo-exec.test


hooks/post-receive
--
GNU Libtool




Re: bootstrap: CVS is history

2009-02-28 Thread Ralf Wildenhues
Hello Andreas,

* Andreas Schwab wrote on Wed, Feb 18, 2009 at 05:44:41PM CET:
 The libtool repository no longer uses CVS.

 2009-02-18  Andreas Schwab  sch...@suse.de
 
   * bootstrap: Remove references to CVS.
 

Thanks for the patch.  I went through the tree and removed remaining
references, resulting in this combined patch, pushed.

Cheers,
Ralf

2009-02-28  Andreas Schwab  sch...@suse.de
Ralf Wildenhues  ralf.wildenh...@gmx.de

Remove remaining references to CVS.
* bootstrap: Remove references to CVS.
* README.alpha: Likewise.
* clcommit.m4sh: Likewise.
* doc/libtool.texi: Bump copyright years.
(libtool script contents): Describe macro_revision as revision
without reference to CVS.

diff --git a/README.alpha b/README.alpha
index 2231630..903fafb 100644
--- a/README.alpha
+++ b/README.alpha
@@ -21,10 +21,9 @@ subject line including the string `[PLATFORM]'.
 =
 
 If this distribution doesn't work for you, before you report the
-problem, please try upgrading to the latest version from CVS first:
+problem, please try upgrading to the latest version from git first:
 
-  export CVS_RSH=ssh
-  cvs -z3 -d :pserver:anonym...@cvs.sv.gnu.org:/sources/libtool co libtool
+  git clone git://git.savannah.gnu.org/libtool.git
   cd libtool
   ./bootstrap
 
@@ -115,7 +114,8 @@ send the file `tests/testsuite.log' to the bug report 
mailing list,
 bug-libt...@gnu.org.
 
 -- 
-  Copyright (C) 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009  Free Software
+  Foundation, Inc.
   Written by Gary V. Vaughan, 2004
 
   This file is part of GNU Libtool.
diff --git a/bootstrap b/bootstrap
index f8b44c1..0b3648f 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,7 +1,7 @@
 #! /bin/sh
-# bootstrap -- Helps bootstrapping libtool, when checked out from CVS.
+# bootstrap -- Helps bootstrapping libtool, when checked out from repository.
 #
-#   Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc,
+#   Copyright (C) 2003, 2004, 2005, 2006, 2009 Free Software Foundation, Inc,
 #   Mritten by Gary V. Vaughan, 2003
 #
 #   This file is part of GNU Libtool.
@@ -47,7 +47,7 @@ export SHELL
 case $1 in
 --help|-h*)
   cat EOF
-`echo $0 | sed 's,^.*/,,g'`: This script is designed to bootstrap a fresh CVS 
checkout
+`echo $0 | sed 's,^.*/,,g'`: This script is designed to bootstrap a fresh 
repository checkout
 of Libtool.  Useful environment variable settings:
   reconfdirs='. libltdl' Do not bootstrap the old test suite.
   WORKING_LIBOBJ_SUPPORT=:   Declare that you have fixed LIBOBJDIR support
@@ -149,7 +149,7 @@ rm -f Makefile
 # Make a dummy libtoolize script for autoreconf:
 cat  $auxdir/libtoolize 'EOF'
 #! /bin/sh
-# This is a dummy file for bootstrapping CVS libtool.
+# This is a dummy file for bootstrapping libtool.
 echo $0: Bootstrap detected, no files installed. | sed 's,^.*/,,g'
 exit 0
 EOF
diff --git a/clcommit.m4sh b/clcommit.m4sh
index 73719cc..351076a 100644
--- a/clcommit.m4sh
+++ b/clcommit.m4sh
@@ -5,7 +5,7 @@ AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])dnl
 # Written by Gary V. Vaughan g...@gnu.org
 # and Alexandre Oliva aol...@redhat.com
 
-# Copyright (C) 1999, 2000, 2004, 2006, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2004, 2006, 2008, 2009 Free Software Foundation, 
Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -52,7 +52,7 @@ AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])dnl
 
 # This script eases checking in changes to git-maintained projects
 # with ChangeLog files.  It will check that there have been no
-# conflicting commits in the CVS repository and print which files it
+# conflicting commits in the git repository and print which files it
 # is going to commit to stderr.  A list of files to compare and to
 # check in can be given in the command line.  If it is not given, all
 # files in the current working directory are considered for check in.
diff --git a/doc/libtool.texi b/doc/libtool.texi
index 02340d9..0b35500 100644
--- a/doc/libtool.texi
+++ b/doc/libtool.texi
@@ -26,7 +26,7 @@
 @ifnottex
 This file documents GNU Libtool @value{VERSION}
 
-Copyright (C) 1996-2008 Free Software Foundation, Inc.
+Copyright (C) 1996-2009 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3
@@ -53,7 +53,7 @@ identical to this one except for the removal of this paragraph
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2008 Free Software Foundation, Inc.
+Copyright @copyright{} 2009 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the @sc{gnu} Free Documentation License, Version 1.3
@@ -5902,7 +5902,7 @@ linking.
 
 @defvar 

Re: Bug#517501: libtool: uninitialized shell variable causes link failure when run under zsh

2009-02-28 Thread Ralf Wildenhues
tags fixed-upstream
thanks

[ adding libtool-patches; see http://bugs.debian.org/517501 ]

OK, here's the deal: 'emulate sh' turns off the special properties of
the $path array, but keeps its first entry:

$ zsh -c 'echo $path.; emulate sh; echo $path.'
/usr/local/bin /usr/bin /bin /usr/bin/X11 /usr/games /usr/X11R6/bin.
/usr/local/bin.

BTW, this doesn't happen if zsh is invoked as sh:
$ ln -s /usr/bin/zsh sh; ./sh -c 'echo $path.; emulate sh; echo $path.'
.
.

Not sure whether that may be considered a bug in zsh or not, but anyway
libtool should not assume that the ordinary variable $path is unset.

Your proposed patch does not set $path in all possible cases, so I'm
applying this one to upstream GNU Libtool to fix it.

Cheers, and thanks again,
Ralf

2009-02-28  Török Edwin  edwinto...@gmail.com  (tiny change)
Ralf Wildenhues  ralf.wildenh...@gmx.de

Do not add bogus directory arguments to link command lines.
* libltdl/config/ltmain.m4sh (func_mode_link): Ensure $path is
always initialized before it is used.  Reported for zsh, for
which $path contains $PATH entries even after emulate sh, see
http://bugs.debian.org/517501.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 49e07c3..7fcf4cb 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -5624,6 +5624,7 @@ func_mode_link ()
  if test $link_all_deplibs != no; then
# Add the search paths of all dependency libraries
for deplib in $dependency_libs; do
+ path=
  case $deplib in
  -L*) path=$deplib ;;
  *.la)




Re: Bug#517501: libtool: uninitialized shell variable causes link failure when run under zsh

2009-02-28 Thread Ralf Wildenhues
* Török Edwin wrote on Sat, Feb 28, 2009 at 01:49:27PM CET:
 Is there a release date planned for next libtool release?

No.  Well, maybe yes, but isn't there an empirical law like
publishing the next planned release date will double the
chance of it being missed?  ;-)

 I would like to know if I should apply this patch to ClamAV's
 config/ltmain.sh, or wait until a new version of libtool is released
 (ClamAV's release is planned for March 16th).

Given that you should not change the Libtool version used at the
very last second to a fresh release, I'd suggest you apply this
patch.

Cheers,
Ralf




Re: Bug#517501: libtool: uninitialized shell variable causes link failure when run under zsh

2009-02-28 Thread Török Edwin
On 2009-02-28 14:29, Ralf Wildenhues wrote:
 tags fixed-upstream
 thanks

 [ adding libtool-patches; see http://bugs.debian.org/517501 ]

 OK, here's the deal: 'emulate sh' turns off the special properties of
 the $path array, but keeps its first entry:

 $ zsh -c 'echo $path.; emulate sh; echo $path.'
 /usr/local/bin /usr/bin /bin /usr/bin/X11 /usr/games /usr/X11R6/bin.
 /usr/local/bin.

 BTW, this doesn't happen if zsh is invoked as sh:
 $ ln -s /usr/bin/zsh sh; ./sh -c 'echo $path.; emulate sh; echo $path.'
 .
 .

 Not sure whether that may be considered a bug in zsh or not, but anyway
 libtool should not assume that the ordinary variable $path is unset.

 Your proposed patch does not set $path in all possible cases, so I'm
 applying this one to upstream GNU Libtool to fix it.
   

Thanks.
Is there a release date planned for next libtool release?
I would like to know if I should apply this patch to ClamAV's
config/ltmain.sh, or wait until a new version of libtool is released
(ClamAV's release is planned for March 16th).

Best regards,
--Edwin




Re: cmdline_wrap.at

2009-02-28 Thread Ralf Wildenhues
Hello Tim,

* Tim Rice wrote on Thu, Feb 26, 2009 at 01:50:27AM CET:
 On Wed, 25 Feb 2009, Ralf Wildenhues wrote:
 : * Tim Rice wrote on Mon, Feb 23, 2009 at 10:47:49PM CET:
 :  
 :  Sure, attched as x.tst-without-patch  x.tst-with-patch
 :  I've also attached the curent patch I'm using as uw-template.patch
 :  It's just a s/CXX/CC/ of the old one.
 : 
 : How come there is no ranlib step in old_archive_cmds?
 
 Simple, there is no ranlib on UnixWare.

OK, thanks.  I'm installing the patch like this, to avoid information
duplication here.

Still need to address John's reply.  If anyone has a Portland Group
compiler installation available for testing (or even allows shell
access), I'd be delighted to hear about it.  My evaluation license
(for 6.0) has long since expired ...

Cheers,
Ralf

2009-02-28  Tim Rice  t...@multitalents.net

Fix C++ template handling for old archives on UnixWare 7.1.4.
* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] old_archive_cmds: For CC, add template
prelink step before archiving.  Fixes template.at test failures.

diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index b75a55a..51e8910 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -6219,6 +6219,8 @@ if test $_lt_caught_CXX_error != yes; then
   CC*)
_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G 
${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs 
$compiler_flags'
+   _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '$_LT_TAGVAR(old_archive_cmds, $1)
;;
  *)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'





Re: cmdline_wrap.at

2009-02-28 Thread Ralf Wildenhues
Hello John, Tim,

* John Wolfe wrote on Thu, Feb 26, 2009 at 07:38:41PM CET:
 Happy to contribute where I can.  Sorry to not get back to you sooner:
 I actually spent an evening away from the computer.

No problem at all of course.

[ snip explanations ]
 All that is probably more than you want to know, but it does high-light the
 fact that once the object file is disassociated from its directory or  
 original name, and by implication it's .ti and .ii file, it becomes 
 impossible for any prelink run to successfully recreate an object
 module if needed  later to resolve a needed instantiation.

ACK.  Actually, thank you for the detailed explanations, they really
help.  I have one question left:

 relocatable objects:  This, like archives, must have a prelink phase forced 
 before
  using the linker to create a relocatable object from C++
  object files containing template references that may
  be undefined.

 So for the specific example below

 : Can you show how it would need to work?  If libtool reloads
 :   a.o b.o c.o - libfoo-1.o

 CC -Tprelink_objects a.o b.o c.o
 /bin/ls -r a.o b.o c.o -o libfoo-1.o

 :   d.o e.o f.o libfoo-1.o  - libfoo-2.o

 CC -Tprelink_objects d.o e.o f.o libfoo.-1.o
  # libfoo-1.o included allows templates already
  # instantiated in the previous step to be seen
  # and reused.

Is this an optimization only, or a necessary thing?  IOW, if I omit
libfoo-1.0 in this CC -Tprelink_objects line, would that only
pessimize link time, or could it affect the link result?

Anyway, I think the patch below should implement this (and add John to
THANKS).  Can you try it?  Thanks.

 /bin/ld d.o e.o f.o libfoo-1.o -o libfoo-2.o

 : and links
 :   g.o libfoo-2.o  - libfoo.la

 CC -G g.o libfoo-2.o ...
  # CC will run the prelink on g.o if needed.

 I noticed that libtool.m4 has sections for the Portland Group C++ compiler.
 They like USL/SCO make use of the Edison Design Group C++ compiler frontend.
 Notice their use of the C++ compiler option --prelink_objects.   I do not
 know the details of their implementation, but given the fact that they must
 force the template instantiation prelink phase for everything, they must not
 be doing an automatic template instantiation.   However, I strongly suspect
 that they too are FAILing the C++ template test(s) in cmdline_wrap_at.

I remember vaguely to have tested at least the normal template tests
back then; but at the time of

| commit 652709d6887c0bfaf227fdd6ec31523f5e9bd99b
| Author: Ralf Wildenhues ralf.wildenh...@gmx.de
| Date:   Thu Apr 7 17:58:26 2005 +
|
| Improved Portland support: prelinking of C++ templates and whole_archive.

the cmdline_wrap test did not exist yet, so assuming it's broken is
sensible.  ;-)

Note to self: our testsuite should test reloadable object creation with
C++ and templates.

Cheers,
Ralf

2009-02-28  Ralf Wildenhues  ralf.wildenh...@gmx.de

Fix low max_cmd_len template test on UnixWare.
* libltdl/config/ltmain.m4sh (func_mode_link): When expanding
$reload_cmds, always put objects in $reload_objs rather than
adding them to the command line, to allow more general command
lines in reload_cmds.  Ensure $reload_objs contains a leading
space.
* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] reload_cmds: For CC, invoke prelinker
before creating reloadable object.
* THANKS: Update.
Report and analysis by Tim Rice and John Wolfe.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 7fcf4cb..fd5b1c7 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -6923,17 +6923,19 @@ EOF
  # command to the queue.
  if test $k -eq 1 ; then
# The first file doesn't have a previous command to add.
-   eval concat_cmds=\$reload_cmds $objlist $last_robj\
+   reload_objs=$objlist
+   eval concat_cmds=\$reload_cmds\
  else
# All subsequent reloadable object files will link in
# the last one created.
-   eval concat_cmds=\\$concat_cmds~$reload_cmds $objlist 
$last_robj~\$RM $last_robj\
+   reload_objs=$objlist $last_robj
+   eval concat_cmds=\\$concat_cmds~$reload_cmds~\$RM 
$last_robj\
  fi
  last_robj=$output_objdir/$output_la-${k}.$objext
  func_arith $k + 1
  k=$func_arith_result
  output=$output_objdir/$output_la-${k}.$objext
- objlist=$obj
+ objlist= $obj
  func_len  $last_robj
  func_arith $len0 + $func_len_result
  len=$func_arith_result
@@ -6943,7 +6945,8 @@ EOF
  # 

Document INNER_TESTSUITEFLAGS, drop leading space

2009-02-28 Thread Ralf Wildenhues
Hello,

I found this very helpful while debugging the template test inside the
low max_cmd_len test.  Any reasons against applying it?

Thanks,
Ralf

2009-02-28  Ralf Wildenhues  ralf.wildenh...@gmx.de

Document INNER_TESTSUITEFLAGS, drop leading space.
* README: Document INNER_TESTSUITEFLAGS.
* tests/cmdline_wrap.at (Run tests with low max_cmd_len):
When using INNER_TESTSUITEFLAGS on the testsuite invocation,
drop leading space after -k libtool, so that the user may
further limit the set of tests to be run.

diff --git a/README b/README
index 2bffd27..612699e 100644
--- a/README
+++ b/README
@@ -104,6 +104,15 @@ possible to test an installed script, possibly from a 
different Libtool
 release, with
   gmake check-local TESTSUITEFLAGS=-k libtool LIBTOOL=/path/to/libtool
 
+Some tests, like the one exercising max_cmd_len limits, make use of this
+to invoke the testsuite recursively on a subset of tests.  For these
+tests, the variable INNER_TESTSUITEFLAGS may be used.  It will be
+expanded right after the `-k libtool', without separating whitespace,
+so that further limiting of the recursive set of tests is possible.
+For example, to run only the template tests within the max_cmd_len, use
+  gmake check-local TESTSUITEFLAGS=-v -x -k max_cmd_len \
+ INNER_TESTSUITEFLAGS=',template -v -x'
+
 If you wish to report test failures to the libtool list, you need to
 send the file `tests/testsuite.log' to the bug report mailing list,
 bug-libt...@gnu.org.
@@ -165,7 +174,8 @@ For more details about version numbers, see:
 http://www.gnu.org/software/libtool/contribute.html
 
 -- 
-  Copyright (C) 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009  Free Software
+  Foundation, Inc.
   Written by Gary V. Vaughan, 2004
 
   This file is part of GNU Libtool.
diff --git a/tests/cmdline_wrap.at b/tests/cmdline_wrap.at
index 0c47db8..13edabc 100644
--- a/tests/cmdline_wrap.at
+++ b/tests/cmdline_wrap.at
@@ -1,6 +1,6 @@
 # cmdline_wrap.at -- run tests with low max_cmd_len   -*- Autotest -*-
 
-#   Copyright (C) 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
 #   Written by Ralf Wildenhues, 2007
 #
 #   This file is part of GNU Libtool.
@@ -40,7 +40,7 @@ mkdir tests
 cd tests
 INNER_TESTSUITEFLAGS=$INNER_TESTSUITEFLAGS abs_top_srcdir=$abs_top_srcdir \
   abs_builddir=$abs_builddir
-AT_CHECK([$CONFIG_SHELL $abs_srcdir/testsuite -k libtool 
$INNER_TESTSUITEFLAGS],
+AT_CHECK([$CONFIG_SHELL $abs_srcdir/testsuite -k libtool$INNER_TESTSUITEFLAGS],
 [], [ignore], [ignore])
 
 AT_CLEANUP




Re: cmdline_wrap.at

2009-02-28 Thread Tim Rice

Hi Ralf,

On Sat, 28 Feb 2009, Ralf Wildenhues wrote:

[snip]
 Is this an optimization only, or a necessary thing?  IOW, if I omit
 libfoo-1.0 in this CC -Tprelink_objects line, would that only
 pessimize link time, or could it affect the link result?

I'll let John answer this

 Anyway, I think the patch below should implement this (and add John to
 THANKS).  Can you try it?  Thanks.

The test still fails although the patch could be correct.
It looks like this never makes it into the generated libtool.

 + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~$CC 
 -r -o $output$reload_objs'

.
t...@server01-unixware 132% grep Tprelink libtool
old_archive_cmds=\$CC -Tprelink_objects \$oldobjs~
.

In fact there is no reload_cmds= in the TAG CONFIG: CXX section

.
t...@server01-unixware 133% grep -n ^reload_cmds= libtool
123:reload_cmds=\$LD\$reload_flag -o \$output\$reload_objs
t...@server01-unixware 134% grep -n CONFIG: CXX libtool
9097:# ### BEGIN LIBTOOL TAG CONFIG: CXX
9245:# ### END LIBTOOL TAG CONFIG: CXX
.

-- 
Tim RiceMultitalents(707) 887-1469
t...@multitalents.net






Re: [PATCH] Make compilation of preloaded module glue -Wstrict-prototypes clean

2009-02-28 Thread Ralf Wildenhues
Hello Lennart, all,

* Lennart Poettering wrote on Sat, Feb 21, 2009 at 04:10:37AM CET:
 When generating the glue code for preloaded modules libtool produces
 invalid prototypes without argument lists. When compiling with
 slightly fascist compiler options (-Wstrict-prototypes) this has the
 effect of causing gcc to print gazillions of warnings when the final
 libtool call is done -- for each symbol one.
 
 The fix is trivial. The prototypes should have an argument list of void,
 not empty.

Thanks for the bug report and patch.  My issue here is the following:

AFAIK the extern int function (); declares a function with an
unspecified number of parameters, rather than one with no parameters.
Now, I don't know whether this has an effect on the generated code
(on some weird system), since of course the thus-declared functions
do not really have zero parameters.  If somebody knows this better,
please speak up!  (Of course us assigning the pointer to such function
to a pointer to void is another ISO C violation in this area, but
let's not get more ambitious than necessary right now.)

Since the code in typical configure link tests like AC_CHECK_LIB or
AC_CHECK_FUNC uses the same idiom, I'm inclined to leave the code the
way it is, and argue that you should not use -Wstrict-prototypes, at
least not in conjunction with -Werror (as that could also cause bogus
configure results).  What we could do, however, would be to remove
any occurrence of -Wstrict-prototypes from the LTCC libtool variable
to avoid the noise during the build.  In that case, I suppose it would
be prudent to also drop alike flags for other compilers we care about.

Cheers,
Ralf

 --- a/libltdl/m4/libtool.m4
 +++ b/libltdl/m4/libtool.m4
 @@ -3308,7 +3308,7 @@ esac
  # Transform an extracted symbol line into a proper C declaration.
  # Some systems (esp. on ia64) link data and code symbols differently,
  # so use this general approach.
 -lt_cv_sys_global_symbol_to_cdecl=sed -n -e 's/^T .* \(.*\)$/extern int 
 \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'
 +lt_cv_sys_global_symbol_to_cdecl=sed -n -e 's/^T .* \(.*\)$/extern int 
 \1(void);/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'
  
  # Transform an extracted symbol line into symbol name and symbol address
  lt_cv_sys_global_symbol_to_c_name_address=sed -n -e 's/^: \([[^ ]]*\) $/  
 {1\\\, (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  
 {\\2\, (void *) \\2},/p'




Re: Suppressing --whole-archive

2009-02-28 Thread Ralf Wildenhues
* Barthelemy von Haller wrote on Fri, Feb 27, 2009 at 04:46:32PM CET:
 Hi again, sorry the second attachment was wrong. Here is the correct one.

Yep, thanks.  It also shows that I forgot to ask a more basic question
first: namely, which libtool version is was.  The log shows that it's
1.5.6.  This is very old.  The corresponding code has changed since,
and the code that would expand to this whole-archive bit has gone.

I would urge you to please use a newer libtool, or ask the maintainers
of the package you're using to rebootstrap it with a newer version.
Current Libtool is 2.2.6a.

FWIW, the bug has been fixed in 1.5.20, with

commit a02e5b87b812205f06e54cb0a06baaacbc815245
Author: Peter O'Gorman pe...@...
Date:   Tue May 31 03:47:34 2005 +

* ltmain.in: Do not add installed static litool libraries to
convenience, they are not convenience libraries.
Reported by Chen-Mou Cheng chenmou.ch...@gmail.com

diff --git a/ltmain.in b/ltmain.in
index 6d6eb18..be7c7a5 100644
--- a/ltmain.in
+++ b/ltmain.in
@@ -2729,8 +2729,6 @@ EOF
  fi
fi
  else
-   convenience=$convenience $dir/$old_library
-   old_convenience=$old_convenience $dir/$old_library
deplibs=$dir/$old_library $deplibs
link_static=yes
  fi


Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: Linking together .dll using .a static libraries

2009-02-28 Thread Ralf Wildenhues
* Roumen Petrov wrote on Fri, Feb 27, 2009 at 10:07:19PM CET:
 LRN wrote:
 OK, maybe it's a stupid question, but i have to ask anyway.
 MinGW ships some static .a libraries. How do i link these to shared .dll
 libraries? It seems that libtool always performs a check (filemagic in
 my case) on each -lname argument, and to pass that check the library has
 to be x86 archive import or x86 DLL, but not x86 archive static.

 Some of those libraries are always linked as example mingwex.

Which libraries are this exactly (for various MinGW versions), and are
any of these import libs?

For the non-import default-linked ones, we should probably add
exceptions to libtool to accept them, but I'm not sure whether
that is the right thing here.

Thanks,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: cmdline_wrap.at

2009-02-28 Thread Ralf Wildenhues
Hello Tim,

* Tim Rice wrote on Thu, Feb 26, 2009 at 01:50:27AM CET:
 On Wed, 25 Feb 2009, Ralf Wildenhues wrote:
 : * Tim Rice wrote on Mon, Feb 23, 2009 at 10:47:49PM CET:
 :  
 :  Sure, attched as x.tst-without-patch  x.tst-with-patch
 :  I've also attached the curent patch I'm using as uw-template.patch
 :  It's just a s/CXX/CC/ of the old one.
 : 
 : How come there is no ranlib step in old_archive_cmds?
 
 Simple, there is no ranlib on UnixWare.

OK, thanks.  I'm installing the patch like this, to avoid information
duplication here.

Still need to address John's reply.  If anyone has a Portland Group
compiler installation available for testing (or even allows shell
access), I'd be delighted to hear about it.  My evaluation license
(for 6.0) has long since expired ...

Cheers,
Ralf

2009-02-28  Tim Rice  t...@multitalents.net

Fix C++ template handling for old archives on UnixWare 7.1.4.
* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] old_archive_cmds: For CC, add template
prelink step before archiving.  Fixes template.at test failures.

diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index b75a55a..51e8910 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -6219,6 +6219,8 @@ if test $_lt_caught_CXX_error != yes; then
   CC*)
_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G 
${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs 
$compiler_flags'
+   _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '$_LT_TAGVAR(old_archive_cmds, $1)
;;
  *)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: cmdline_wrap.at

2009-02-28 Thread Ralf Wildenhues
Hello John, Tim,

* John Wolfe wrote on Thu, Feb 26, 2009 at 07:38:41PM CET:
 Happy to contribute where I can.  Sorry to not get back to you sooner:
 I actually spent an evening away from the computer.

No problem at all of course.

[ snip explanations ]
 All that is probably more than you want to know, but it does high-light the
 fact that once the object file is disassociated from its directory or  
 original name, and by implication it's .ti and .ii file, it becomes 
 impossible for any prelink run to successfully recreate an object
 module if needed  later to resolve a needed instantiation.

ACK.  Actually, thank you for the detailed explanations, they really
help.  I have one question left:

 relocatable objects:  This, like archives, must have a prelink phase forced 
 before
  using the linker to create a relocatable object from C++
  object files containing template references that may
  be undefined.

 So for the specific example below

 : Can you show how it would need to work?  If libtool reloads
 :   a.o b.o c.o - libfoo-1.o

 CC -Tprelink_objects a.o b.o c.o
 /bin/ls -r a.o b.o c.o -o libfoo-1.o

 :   d.o e.o f.o libfoo-1.o  - libfoo-2.o

 CC -Tprelink_objects d.o e.o f.o libfoo.-1.o
  # libfoo-1.o included allows templates already
  # instantiated in the previous step to be seen
  # and reused.

Is this an optimization only, or a necessary thing?  IOW, if I omit
libfoo-1.0 in this CC -Tprelink_objects line, would that only
pessimize link time, or could it affect the link result?

Anyway, I think the patch below should implement this (and add John to
THANKS).  Can you try it?  Thanks.

 /bin/ld d.o e.o f.o libfoo-1.o -o libfoo-2.o

 : and links
 :   g.o libfoo-2.o  - libfoo.la

 CC -G g.o libfoo-2.o ...
  # CC will run the prelink on g.o if needed.

 I noticed that libtool.m4 has sections for the Portland Group C++ compiler.
 They like USL/SCO make use of the Edison Design Group C++ compiler frontend.
 Notice their use of the C++ compiler option --prelink_objects.   I do not
 know the details of their implementation, but given the fact that they must
 force the template instantiation prelink phase for everything, they must not
 be doing an automatic template instantiation.   However, I strongly suspect
 that they too are FAILing the C++ template test(s) in cmdline_wrap_at.

I remember vaguely to have tested at least the normal template tests
back then; but at the time of

| commit 652709d6887c0bfaf227fdd6ec31523f5e9bd99b
| Author: Ralf Wildenhues ralf.wildenh...@gmx.de
| Date:   Thu Apr 7 17:58:26 2005 +
|
| Improved Portland support: prelinking of C++ templates and whole_archive.

the cmdline_wrap test did not exist yet, so assuming it's broken is
sensible.  ;-)

Note to self: our testsuite should test reloadable object creation with
C++ and templates.

Cheers,
Ralf

2009-02-28  Ralf Wildenhues  ralf.wildenh...@gmx.de

Fix low max_cmd_len template test on UnixWare.
* libltdl/config/ltmain.m4sh (func_mode_link): When expanding
$reload_cmds, always put objects in $reload_objs rather than
adding them to the command line, to allow more general command
lines in reload_cmds.  Ensure $reload_objs contains a leading
space.
* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] reload_cmds: For CC, invoke prelinker
before creating reloadable object.
* THANKS: Update.
Report and analysis by Tim Rice and John Wolfe.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 7fcf4cb..fd5b1c7 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -6923,17 +6923,19 @@ EOF
  # command to the queue.
  if test $k -eq 1 ; then
# The first file doesn't have a previous command to add.
-   eval concat_cmds=\$reload_cmds $objlist $last_robj\
+   reload_objs=$objlist
+   eval concat_cmds=\$reload_cmds\
  else
# All subsequent reloadable object files will link in
# the last one created.
-   eval concat_cmds=\\$concat_cmds~$reload_cmds $objlist 
$last_robj~\$RM $last_robj\
+   reload_objs=$objlist $last_robj
+   eval concat_cmds=\\$concat_cmds~$reload_cmds~\$RM 
$last_robj\
  fi
  last_robj=$output_objdir/$output_la-${k}.$objext
  func_arith $k + 1
  k=$func_arith_result
  output=$output_objdir/$output_la-${k}.$objext
- objlist=$obj
+ objlist= $obj
  func_len  $last_robj
  func_arith $len0 + $func_len_result
  len=$func_arith_result
@@ -6943,7 +6945,8 @@ EOF
  # 

Re: Crosscompiling fails since Gstreamer moved to new libtool version

2009-02-28 Thread Ralf Wildenhues
Hello Andreas, Richard,

* Richard Purdie wrote on Thu, Feb 26, 2009 at 02:58:25PM CET:
 On Thu, 2009-02-26 at 14:16 +0100, Andreas Frisch wrote:
  the guys from gstreamer went through and moved to a newer libtool
  version in their plugin packages. since then i can't crosscompile
  anymore them with openembedded like with the previous releases. i
  described the problem here:
  http://bugzilla.gnome.org/show_bug.cgi?id=572532
  unfortunately, none of the gstreamer guys as able to help me with this
  libtool-specific issue. i found out that the main libtool code moved
  out of aclocal.m4 into a new file libtool.m4 in the m4 subdir of the
  source directory. i couldn't get configure to create the
  mipsel-linux-libtool instead of regular libtool though, not even by
  changing the line default_ofile=${host_alias}-libtool.
  maybe any of you can give me hint how i could solve my issue - thanks
  in advance!
 
 As a warning the creation of mipsel-linux-libtool is an OpenEmbedded
 specific patch and I'd suspect is not supported by libtool upstream.
 Which version of libtool are you using in OpenEmbedded?
 
 For reference in Poky, the gstreamer recipes have:
 
 
 do_configure_prepend() {
 # This m4 file contains nastiness which conflicts with libtool 2.2.2
 rm ${S}/m4/lib-link.m4 || true
 }
 
 
 suggesting there was something in that m4 file that caused problems.

All of the above, and the information in the referenced bugzilla,
still leave me scratching my head.  I cannot tell whether this is a
bug in Libtool, a bug in some package that uses or modifies Libtool
code, and I cannot tell whether lib-link.m4 (from gnulib/gettext?)
has a bug or conflict with Libtool 2.2.x.

One way to shed light that is often good is to provide a recipe to
reproduce the problem, including how to build the packages involved.
Please take into account that I don't have gstreamer development
tools installed, nor know know openembedded.  I do have a Debian
lenny available, and (a pointer to) instructions on how to get the
corresponding sources and build them would be appreciated.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: cmdline_wrap.at

2009-02-28 Thread Tim Rice

Hi Ralf,

On Sat, 28 Feb 2009, Ralf Wildenhues wrote:

[snip]
 Is this an optimization only, or a necessary thing?  IOW, if I omit
 libfoo-1.0 in this CC -Tprelink_objects line, would that only
 pessimize link time, or could it affect the link result?

I'll let John answer this

 Anyway, I think the patch below should implement this (and add John to
 THANKS).  Can you try it?  Thanks.

The test still fails although the patch could be correct.
It looks like this never makes it into the generated libtool.

 + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~$CC 
 -r -o $output$reload_objs'

.
t...@server01-unixware 132% grep Tprelink libtool
old_archive_cmds=\$CC -Tprelink_objects \$oldobjs~
.

In fact there is no reload_cmds= in the TAG CONFIG: CXX section

.
t...@server01-unixware 133% grep -n ^reload_cmds= libtool
123:reload_cmds=\$LD\$reload_flag -o \$output\$reload_objs
t...@server01-unixware 134% grep -n CONFIG: CXX libtool
9097:# ### BEGIN LIBTOOL TAG CONFIG: CXX
9245:# ### END LIBTOOL TAG CONFIG: CXX
.

-- 
Tim RiceMultitalents(707) 887-1469
t...@multitalents.net




___
http://lists.gnu.org/mailman/listinfo/libtool


Re: Linking together .dll using .a static libraries

2009-02-28 Thread Roumen Petrov

Ralf Wildenhues wrote:

* Roumen Petrov wrote on Fri, Feb 27, 2009 at 10:07:19PM CET:

LRN wrote:

OK, maybe it's a stupid question, but i have to ask anyway.
MinGW ships some static .a libraries. How do i link these to shared .dll
libraries? It seems that libtool always performs a check (filemagic in
my case) on each -lname argument, and to pass that check the library has
to be x86 archive import or x86 DLL, but not x86 archive static.

Some of those libraries are always linked as example mingwex.


Which libraries are this exactly (for various MinGW versions), and are
any of these import libs?



quote for gcc spec file:
==
*lib:
%{pg:-lgmon} %{mwindows:-lgdi32 -lcomdlg32} -luser32 -lkernel32 
-ladvapi32 -lshell32


*libgcc:
%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
==

- mingwthrd: import, specific
- mingw32: static
- moldname: import (for functions without underscore)
- mingwex: static
- msvcrt+other xx*32: import (runtime)

mingwex is a specific extension. As example library add float and long 
double functions missing in msvcrt. Version 3.15 (3.14 ?) add posix 
compatible IO.




For the non-import default-linked ones, we should probably add
exceptions to libtool to accept them, but I'm not sure whether
that is the right thing here.



Thanks,
Ralf



Roumen


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: ltdl weirdness

2009-02-28 Thread Ralf Wildenhues
Hello Matěj,

to add to Bob's reply:

* Bob Friesenhahn wrote on Mon, Feb 23, 2009 at 07:50:03PM CET:
 On Mon, 23 Feb 2009, Matěj Týč wrote:

 Next, if the executable is compiled with -export-dynamic, things that
 were compiled in really provide symbols that would be missing in the
 module. However, things that were linked in as external libs don't
 seem to be exported. Is this expected behaviour? However, there is a

 Yes, this is now the expected behavior.  Older libltdl allowed libraries 
 required by loaded modules and module symbols to become part of the 
 global namespace.  As of libtool 2.2.X, this is no longer the default. 

But also, new API has been added that allows to dlopen with global
symbol visibility (which I think the above is referring to).  Quoting
NEWS:
  - New lt_dlopenadvise takes a new lt_dladvise type argument, which
lets the caller request local or global symbol visibility from the
module loader with lt_dladvise_local and lt_dladvise_global
respectively.  If neither is given, or if lt_dlopen (or lt_dlopenext)
are called, then the system default module symbol visibility is used.

See the manual for details.

 difference between having nothing and between having linked external
 symbols in executable compiled using -export-dynamic flag -- the first
 case results in the inability to open the module (see the first
 problem), whereas the latter results in runtime error.
 Any suggestions regarding good practices?

 It is necessary for all symbols to be already available in the using  
 program or library, or referenced by the module as a dependency, when  
 the module is loaded.

Yes.  For portability to some (non-ELF) systems, it may even be
necessary that all module symbol references be fulfilled at module
creation time.

Hope that helps.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: cmdline_wrap.at

2009-02-28 Thread Ralf Wildenhues
[ let's drop libtool@ from replies ]

* Tim Rice wrote on Sat, Feb 28, 2009 at 07:37:47PM CET:
 On Sat, 28 Feb 2009, Ralf Wildenhues wrote:
 
  Anyway, I think the patch below should implement this (and add John to
  THANKS).  Can you try it?  Thanks.
 
 The test still fails although the patch could be correct.
 It looks like this never makes it into the generated libtool.

Yep.  Updated patch below.

Thanks for testing and the quick feedback,
Ralf

2009-02-28  Ralf Wildenhues  ralf.wildenh...@gmx.de

Fix low max_cmd_len template test on UnixWare.
* libltdl/config/ltmain.m4sh (func_mode_link): When expanding
$reload_cmds, always put objects in $reload_objs rather than
adding them to the command line, to allow more general command
lines in reload_cmds.  Ensure $reload_objs contains a leading
space.
* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
sco3.2v5*, sco5v6*] reload_cmds: For CC, invoke prelinker
before creating reloadable object.
(_LT_CMD_RELOAD) reload_cmds, reload_flag: Declare as
_LT_TAGDECL, not _LC_DECL.
(_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG)
(_LT_LANG_GCJ_CONFIG) reload_cmds, reload_flag: Initialize
from default (C tag) value.
* THANKS: Update.
Report and analysis by Tim Rice and John Wolfe.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 7fcf4cb..fd5b1c7 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -6923,17 +6923,19 @@ EOF
  # command to the queue.
  if test $k -eq 1 ; then
# The first file doesn't have a previous command to add.
-   eval concat_cmds=\$reload_cmds $objlist $last_robj\
+   reload_objs=$objlist
+   eval concat_cmds=\$reload_cmds\
  else
# All subsequent reloadable object files will link in
# the last one created.
-   eval concat_cmds=\\$concat_cmds~$reload_cmds $objlist 
$last_robj~\$RM $last_robj\
+   reload_objs=$objlist $last_robj
+   eval concat_cmds=\\$concat_cmds~$reload_cmds~\$RM 
$last_robj\
  fi
  last_robj=$output_objdir/$output_la-${k}.$objext
  func_arith $k + 1
  k=$func_arith_result
  output=$output_objdir/$output_la-${k}.$objext
- objlist=$obj
+ objlist= $obj
  func_len  $last_robj
  func_arith $len0 + $func_len_result
  len=$func_arith_result
@@ -6943,7 +6945,8 @@ EOF
  # reloadable object file.  All subsequent reloadable object
  # files will link in the last one created.
  test -z $concat_cmds || concat_cmds=$concat_cmds~
- eval concat_cmds=\\${concat_cmds}$reload_cmds $objlist 
$last_robj\
+ reload_objs=$objlist $last_robj
+ eval concat_cmds=\\${concat_cmds}$reload_cmds\
  if test -n $last_robj; then
eval concat_cmds=\\${concat_cmds}~\$RM $last_robj\
  fi
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 51e8910..78f43f9 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -2888,8 +2888,8 @@ case $host_os in
 fi
 ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -5314,6 +5314,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6221,6 +6223,7 @@ if test $_lt_caught_CXX_error != yes; then
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G 
${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs 
$compiler_flags'
_LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
  '$_LT_TAGVAR(old_archive_cmds, $1)
+   _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~$CC 
-r -o $output$reload_objs'
;;
  *)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'
@@ -6555,6 +6558,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=