libtool problem when installing packages with modules

Peter Rosin
Fri Dec 10 15:47:00 GMT 2010

Den 2010-12-10 16:11 skrev Corinna Vinschen:
> Hi Chuck,
> as you may have noticed, I updated syslog-ng to 3.2.1 yesterday.  While
> I prepared it for packaging, I came across the following problem.
> Syslog-ng introduced modules, which are shared libs, dynamically loaded
> at runtime.  The modules are stored in $(libexecdir)/syslog-ng.
> Building the modules required to re-libtoolize with libtool 2.4, since
> the libtool version used in the upstream source package (2.2.6b) didn't
> handle DLL dependencies in *.la files correctly.
> Now, when installing the package, something strange happened.  The
> modules get installed via `libtool --mode=install <list of .la files>'
> The *.dll.a and *.la files got installed into $(libexecdir)/syslog-ng,
> but the DLLs got installed into $(libexecdir)/syslog-ng/../bin ==
> $(libexecdir)/bin.  So the DLLs got installed into a parallel directory
> called "bin".
> I was a bit surprised at first, but after a few seconds it occured to me
> that there's some Cygwin-specific magic at work.  This magic makes a lot
> of sense for the default case of libraries which get installed into
> /usr/lib, so the DLLs are installed into /usr/bin.  However, for obvious
> reasons it doesn't make sense for a modules directory.  So, here are two
> questions:
> - Is there an option to libtool so that it installs the DLLs into
>   $(libexecdir)/syslog-ng instead of $(libexecdir)/syslog-ng/../bin in
>   this syslog-ng scenario?
> - What is the "official", blessed way to handle this situation?  What I
>   do right now is to move the DLLs to the correct directory in a
>   post-install/pre-create-package script, which also removes the extra
>   bin directory and the .dll.a files.
> Obviously it would be nice if libtool had an option to do it right in
> `make install'.  For instance, some '-install-as-module' option which
> results in copying only the DLLs to $(libexecdir)/syslog-ng, but which
> omits the .dll.a and .la files since they are note required anyway.
> Something like that doesn't exist, I assume.  WOuld it be an option
> to implement this?

IIRC, libtool should not do the ../bin dance when it installs libtool
modules, so I can only assume that these syslog-ng modules are not built
as libtool modules, but instead as ordinary libtool libraries. Does
syslog-ng supply the -module option to libtool?

But that's just a guess of course, since I haven't actually looked at
the syslog-ng source...


More information about the Cygwin-apps mailing list