GNU Libtool 2.1b released (alpha release)

2008-01-31 Thread Gary V. Vaughan

The Libtool Team is pleased to announce alpha release 2.1b of GNU
Libtool.

GNU Libtool hides the complexity of using shared libraries behind a
consistent, portable interface. GNU Libtool ships with GNU libltdl,
which hides the complexity of loading dynamic runtime libraries
(modules) behind a consistent, portable interface.

This is the first test release for Libtool 2.2.  Libtool 2.0 was never
released, as by the time 1.9f was released from the stable branch, the
head of the development branch had already become much more stable than
the supposed stable branch.

The compressed sources will shortly arrive at:

  ftp://alpha.gnu.org/gnu/libtool/libtool-2.1b.tar.gz
  ftp://alpha.gnu.org/gnu/libtool/libtool-2.1b.tar.bz2

There are no xdeltas and diffs, as this is the first release from HEAD
in more than 4 years.

Here are the associated gpg detached signatures:

  ftp://alpha.gnu.org/gnu/libtool/libtool-2.1b.tar.gz.sig
  ftp://alpha.gnu.org/gnu/libtool/libtool-2.1b.tar.bz2.sig

You should download the signature named after any tarball you download,
and then verify its integrity with, for example:

  gpg --verify libtool-2.1b.tar.gz.sig

Here are the MD5 and SHA1 checksums:

  e22f79424d4efcf0247ad834773bffb7 libtool-2.1b.tar.gz
  f814c207f8fe257aa90ca26d49e63c3d libtool-2.1b.tar.bz2
  86d50163a33682ab83ac0005a8bd31088db1bd57 libtool-2.1b.tar.gz
  e5d2d239b6834e6d521d26f655dae751211e79a9 libtool-2.1b.tar.bz2

This release is more or less entirely rewritten in comparison with the
1.5 branch, and has many more features by comparison.

This release was bootstrapped with Autoconf 2.61 and Automake 1.10.1,
but should be useable with any reasonably modern equivalents in your own
projects.

Alternatively, you can fetch the unbootstrapped source code from
anonymous cvs by using the following command:

  $ cvs -z3 -d :pserver:[EMAIL PROTECTED]:/sources/libtool \
co -r release-2-1b libtool

You will then need to have recent (possibly as yet unreleased) versions
of Automake and Autoconf installed to bootstrap the checked out
sources yourself.

New in 2.1b: 2008-02-01

* Important incompatible changes and obsoleted features:

  - Removed deprecated APIs from libltdl: lt_dlcaller_register,
lt_dlhandle_next, lt_dlhandle_find, lt_dlforeach,  
lt_dlmutex_register,

lt_dlmutex_lock, lt_dlmutex_unlock, lt_dlmutex_seterror,
lt_dlmutex_geterror, lt_dlmalloc, lt_dlrealloc, lt_dlfree.
  - The Libtool and libltdl macros and the testsuite now assume a C89
environment, consequently do not test for headers such as string.h,
strings.h, memory.h any more.
  - Fix regression in libltdl symbol exports on Cygwin. Side effect:
LT_GLOBAL_DATA and LT_SCOPE are now explicitly defined as
declspec(dllexport), bypassing auto-export logic on Cygwin.
This tracks existing behavior on MinGW.
  - The libtool script has been optimized a bit for more modern shells.
This breaks use of the stdin file descriptor in libtool, and can
break if a different shell is used to execute the libtool script
than the one it was configured for.
  - The macros AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC,  
and

AC_DISABLE_STATIC have been un-deprecated after deprecation in
1.9b.
  - The macro LT_WITH_LTDL has been renamed to LTDL_INIT.
  - Fixed a branch-1-5/HEAD regression to only link uninstalled  
libraries

statically with `-static'.  In order to compensate for this, there
is a new link flag `-static-libtool-libs' to provide the previous
`-static' semantics.

* New features:

  - Fix installation of libltdl so that it does not need Autoconf and
Automake installed, in order to be usable in another package.  This
lifts the restrictions introduced in 1.9b.
  - Default convenience or installable libltdl builds can optionally
be declared using new `convenience' or `installable' options to the
LTDL_INIT macro (as an alternative to individual LTDL_CONVENIENCE
or LTDL_INSTALLABLE invocations).
  - New configure-time options to allow libltdl parent project builder
to choose between installed and shipped libltdl, when invoking
LTDL_INIT: --with-included-ltdl, --with-ltdl-include,
--with-ltdl-lib.
  - New LT_CONFIG_LTDL_DIR macro to specify a different directory name
for a convenience libltdl.
  - libtoolize has been completely overhauled.
  - `libtoolize --install' now also installs `install-sh'.
  - New libtoolize options: --non-recursive, --recursive, --subproject.
These options control the way libltdl is installed into a package  
by

libtoolize.  The new recursive and non-recursive build modes for
libltdl don't require a subconfigure any more.
The Libtool package itself builds libltdl nonrecursively.
  - The 'nonrecursive', 'recursive' and 'subproject' libltdl build
modes are given as LTDL_INIT options.
  - New make variable LTDLDEPS for use in output_DEPENDENCIES.
  - New multi-module-loader safe libltdl handle iteration APIs:
lt_dlhan

The right way to go in automake plus libtool

2008-01-31 Thread Roger Ferrer Ibanez

Hi,

maybe this sounds quite a naive question about using libtool in automake 
but I don't know how to do it right.


I have an automake project with several directories, e.g A, B, C, where 
A and B build both shared libraries, let's say them libA.la and libB.la.
C directory creates an executable, say it C.exe. Both libraries are 
installed.


libB.la depends on libA.la and and C.exe depends on both libB.la (and I 
guess that indirectly of libA.la).


The question is, what do I have to put in Makefile.am files to make this 
dependency explicit? Now I'm doing this


-- A/Makefile.am
# Nothing special here
lib_LTLIBRARIES = libA.la

libA_la_SOURCES = ...

-- B/Makefile.am
lib_LTLIBRARIES = libB.la

libB_la_SOURCES = ...

libB_la_LIBADD = $(top_builddir)/A/libA.la

-- C/Makefile.am
bin_PROGRAMS = C.exe

C_exe_SOURCES = ...

C_exe_LDADD = $(top_builddir)/B/libB.la
--

This works fine all the time (both running from the build directory and 
from the installe executable) but libtool complains, when doing 'make 
install' that it has to relink "libB.la" so I suspect that this is not 
the proper way to go.


Is the way above right or something different has to be done in the 
Makefile.am ?


Thank you very much,

--
Roger Ferrer Ibáñez - [EMAIL PROTECTED]


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


Re: The right way to go in automake plus libtool

2008-01-31 Thread Bob Friesenhahn

On Thu, 31 Jan 2008, Roger Ferrer Ibanez wrote:

This works fine all the time (both running from the build directory and from 
the installe executable) but libtool complains, when doing 'make install' 
that it has to relink "libB.la" so I suspect that this is not the proper way 
to go.


This complaint is not a cause for concern.  It is really an 
informational "warning" that the program installed will not be 100% 
identical to the one tested via 'make check'.  The need to re-link at 
install time is OS dependent.  The most important thing is to make 
sure that your shared libraries are installed in the correct order so 
that when this "relink" occurs, it is against the freshly installed 
library rather than some older one which was already installed.


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



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


Re: GNU Libtool 2.1b released (alpha release)

2008-01-31 Thread Bob Friesenhahn
It is good that this is only an alpha release since it is now broken. 
Perhaps the massive flurry of changes at the very last minute was not 
a wise idea. I have been updating every few days without issues but 
today libtool broke GraphicsMagick:


gmake[1]: *** No rule to make target `argz.lo', needed by 
`ltdl/libltdlc.la'.  Stop.


Configured with --enable-ltdl-convenience.

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



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


Re: GNU Libtool 2.1b released (alpha release)

2008-01-31 Thread Gary V. Vaughan

Hi Bob!

On 1 Feb 2008, at 11:17, Bob Friesenhahn wrote:

It is good that this is only an alpha release since it is now  
broken. Perhaps the massive flurry of changes at the very last  
minute was not a wise idea.


Well, I only applied the 2 patches that have been open for comment on  
the list for the last few days, plus a workaround for the autoconf  
compiler droppings bug that prevented me from running make distcheck,  
plus the changes to version numbers and the like during the release  
process...


I have been updating every few days without issues but today libtool  
broke GraphicsMagick:


gmake[1]: *** No rule to make target `argz.lo', needed by `ltdl/ 
libltdlc.la'.  Stop.


Configured with --enable-ltdl-convenience.



I can't reproduce it here, with or without --enable-ltdl-convenience.

What does this show in your environment?

  $ grep lt_ltdl_dir= configure
  lt_ltdl_dir='ltdl'
  $ grep lt_libobj_prefix
  lt_dlopen_dir="$lt_ltdl_dir"; lt_libobj_prefix="$lt_ltdl_dir/"
_ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
_ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"

What version of autoconf are you using?

Did you apply my small patch to the GraphicsMagick configure.ac and  
bootstrap scripts?


Cheers,
Gary
--
Gary V. Vaughan ([EMAIL PROTECTED])





PGP.sig
Description: This is a digitally signed message part
___
http://lists.gnu.org/mailman/listinfo/libtool


Re: GNU Libtool 2.1b released (alpha release)

2008-01-31 Thread Bob Friesenhahn

On Fri, 1 Feb 2008, Gary V. Vaughan wrote:


What does this show in your environment?

$ grep lt_ltdl_dir= configure
lt_ltdl_dir='ltdl'
$ grep lt_libobj_prefix
lt_dlopen_dir="$lt_ltdl_dir"; lt_libobj_prefix="$lt_ltdl_dir/"
  _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
  _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"


The same.


What version of autoconf are you using?


2.61

Did you apply my small patch to the GraphicsMagick configure.ac and bootstrap 
scripts?


I am not aware of any small patch from you.  Is it diminishingly small 
so I might not have seen it? :-)


FYI: Down-reving libtool to the version current as of 2008-01-28 
produces a working libtool.


I do recall Ralph mentioning to you a couple of days ago that 
something breaks GraphicsMagick but I did not pay much attention at 
the time.


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



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


Re: 350-gary-maintain-private-libobj-namespace

2008-01-31 Thread Bob Friesenhahn

Gary,

This scrap of email from the libtool-patches list includes evidence 
that Ralf ran into the same problem that I ran into today.  Something 
must be special about your environment.


Note Ralf's observation that lt_libobj_prefix is not set by configure.

Bob

On Wed, 30 Jan 2008, Gary V. Vaughan wrote:


Hallo Ralf,

On 30 Jan 2008, at 14:43, Ralf Wildenhues wrote:

* Gary V. Vaughan wrote on Tue, Jan 29, 2008 at 08:44:51AM CET:

On 29 Jan 2008, at 06:45, Ralf Wildenhues wrote:


I haven't reviewed your last two pending patches yet (but I'm not
telling you to wait for me).


Every little helps, even if you don't have time for a thorough review...


Your latest version of this patch is so badly mangled as to be
unapplicable.  This is not the first time it happens.  Please
consider sending patches as (text!) attachments, or at least
try to apply patches from your mails to see whether that works.


Sorry, I was pasting the patch into the body since you asked me not
to attach directly as that made it harder to review.  I didn't use
mailnotify because it breaks the thread.

Maybe Mail.app will co-operate if I use a '.txt' extension for the
patch attachments?  Let me know if this is better.  If not, I'll
post with mailnotify, and put up with the broken message threading.


When I try to apply this patch by hand, build and install, get CVS
HEAD GraphicsMagick, and run its bootstrap script, I end up with this
failure, which I assume is due to one of your patches, or to messup
resulting from manual patch application.  Anyway you should look at
it before applying the patch (hint: lt_libobj_prefix seems not set
in configure):

/bin/sh ./libtool --silent --tag=CC   --mode=link gcc -std=gnu99  -g -O2 
-Wall -pthread -module -avoid-version -L/usr/X11R6/lib -L/usr/lib 
-L/usr/lib -o ltdl/dlopen.la  ltdl/loaders/dlopen.lo -ldl
make[1]: *** No rule to make target `lt__strl.lo', needed by 
`ltdl/libltdlc.la'.  Stop.

make[1]: Leaving directory `/tmp/GraphicsMagick/build'
make: *** [all] Error 2


Works for me, I reran bootstrap, and launched a successful VPATH build.
Hopefully, you're just seeing a patch misapplication, otherwise we'll
have to figure out what is different for us.

Actually configure.ac and bootstrap can be cleaned up for (tomorrow's)
libtool-2.1b.  .txt patch attached, and fingers crossed.


Index: b/libltdl/m4/ltdl.m4
===
--- a/libltdl/m4/ltdl.m4
+++ b/libltdl/m4/ltdl.m4

[...]

+
+AC_CONFIG_COMMANDS_PRE([
+_ltdl_libobjs=
+_ltdl_ltlibobjs=
+if test -n "$_LT_LIBOBJS"; then
+  # Remove the extension.
+  sed_drop_objext='s/\.o$//;s/\.obj$//'


This is code that ends up in configure.  sed_drop_objext is not
namespace clean, please prefix with _lt_ or so.


Careless pasting from gnulib-tool.  CCing the gnulib list so they can
fix their version too... gl_sed_drop_objext?


+  for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed
"$sed_drop_objext" | sort | uniq`; do


`sort -u' is portable.


Tx.  Fixed in the attached.

Cheers,
Gary
--
())_.  Email me: [EMAIL PROTECTED]
( '/   Read my blog: http://blog.azazil.net
/ )= ...and my book: http://sources.redhat.com/autobook
`(_~)_





==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



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


Re: GNU Libtool 2.1b released (alpha release)

2008-01-31 Thread Gary V. Vaughan

Hi Bob,

On 1 Feb 2008, at 13:09, Bob Friesenhahn wrote:

On Fri, 1 Feb 2008, Gary V. Vaughan wrote:


What does this show in your environment?

$ grep lt_ltdl_dir= configure
lt_ltdl_dir='ltdl'
$ grep lt_libobj_prefix
lt_dlopen_dir="$lt_ltdl_dir"; lt_libobj_prefix="$lt_ltdl_dir/"
 _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
 _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"


The same.


So this is not the same as the bug Ralf found, as he observed that  
lt_libobj_prefix was not

set, whereas you have it correctly set to "ltdl/".

Does ltdl_LTLIBOBJS in your Makefile also contain the correct value?

  $ grep ltdl_LTLIBOBJS Makefile
  ltdl_LTLIBOBJS =  ltdl/argz.lo
  [[...]]


What version of autoconf are you using?


2.61


Same as me.

Did you apply my small patch to the GraphicsMagick configure.ac and  
bootstrap scripts?


I am not aware of any small patch from you.  Is it diminishingly  
small so I might not have seen it? :-)


It was indeed tiny, and attached to my reply to Ralfs GraphicsMagick  
report.  I'm reattaching

here too...

Aha! I get the same error if I undo that patch in my GraphicsMagick  
working copy,
run bootstrap with libtoolize (2.1b).  I'll see if I can figure out  
why I get this:


  $ grep argz.lo Makefile
  ltdl_LTLIBOBJS =  argz.lo

Instead of this:

  $ grep argz.lo Makefile
  ltdl_LTLIBOBJS =  ltdl/argz.lo

In the mean time, you can work around it by applying the attached  
patch to GraphicsMagick.



FYI: Down-reving libtool to the version current as of 2008-01-28  
produces a working libtool.


I do recall Ralph mentioning to you a couple of days ago that  
something breaks GraphicsMagick but I did not pay much attention at  
the time.



He did, and I made sure that it worked on my machine before I rolled  
the release.  Ralf and I
concluded that something broke when he manually applied my patches  
after they were mangled

by my MTA.

Cheers,
Gary
--
  ())_.  Email me: [EMAIL PROTECTED]
  ( '/   Read my blog: http://blog.azazil.net
  / )= ...and my book: http://sources.redhat.com/autobook
`(_~)_

from  Gary V. Vaughan  <[EMAIL PROTECTED]>

* configure.ac: Updated for libtool-2.1b.
* bootstrap (libtoolize): Libtoolize can figure out the mode
and directory for libltdl from configure.ac.

Index: configure.ac
===
RCS file: /GraphicsMagick/GraphicsMagick/configure.ac,v
retrieving revision 1.256
diff -u -r1.256 configure.ac
--- configure.ac19 Jan 2008 21:07:47 -  1.256
+++ configure.ac30 Jan 2008 13:42:01 -
@@ -337,9 +337,8 @@
 AC_SUBST(LIBTOOL_DEPS)
 
 # Configure libltdl
-LT_CONFIG_LTDL_DIR([ltdl],[nonrecursive]) 
-AC_LIBLTDL_CONVENIENCE([ltdl])
-AC_LIB_LTDL
+LT_CONFIG_LTDL_DIR([ltdl])
+LTDL_INIT([convenience nonrecursive])
 # Substitute INCLTDL and LIBLTDL in the Makefiles
 #AC_SUBST(INCLTDL)
 #AC_SUBST(LIBLTDL)

Index: bootstrap
===
RCS file: /GraphicsMagick/GraphicsMagick/bootstrap,v
retrieving revision 1.7
diff -u -r1.7 bootstrap
--- bootstrap   31 Mar 2007 23:07:00 -  1.7
+++ bootstrap   30 Jan 2008 13:44:37 -
@@ -4,7 +4,7 @@
 # Automake or Autoconf is changed.
 #
 
-libtoolize --verbose --copy --force --nonrecursive --ltdl=ltdl
+libtoolize --verbose --copy --force
 # echo 'm4_include([ltdl/m4/lt~obsolete.m4])' >> aclocal.m4
 aclocal -I ltdl/m4 -I m4
 autoheader









PGP.sig
Description: This is a digitally signed message part
___
http://lists.gnu.org/mailman/listinfo/libtool