* Patrick Welche wrote on Fri, Sep 19, 2008 at 05:19:18PM CEST:
> Ah.. Is the following true:
>
> No -rpath flag => convenience library => no .lai is created ?
Yes, I think so.
> Anyway, CMU libsasl's breakage is to define
>
> AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir)
>
> in plugins/Makefile.am, but then override that setting for every plugin with
> its own LDFAGS eg
>
> libsasldb_la_LDFLAGS = -version-info $(sasldb_version)
First, was libsasldb.la listed in noinst_LTLIBRARIES, or
EXTRA_LTLIBRARIES or otherwise?
Was it their intention to install a convenience archive,
or is this just a problem with upgraded Automake?
Please note that Automake 1.10 has changed handling of *_LDFLAGS,
quoting from the NEWS file:
| - Per-target flags are now correctly handled in link rules.
|
| For instance maude_CFLAGS correctly overrides AM_CFLAGS; likewise
| for maude_LDFLAGS and AM_LDFLAGS. Previous versions bogusly
| preferred AM_CFLAGS over maude_CFLAGS while linking, and they
| used both AM_LDFLAGS and maude_LDFLAGS on the same link command.
|
| The fix for compiler flags (i.e., using maude_CFLAGS instead of
| AM_CFLAGS) should not hurt any package since that is how _CFLAGS
| is expected to work (and actually works during compilation).
|
| However using maude_LDFLAGS "instead of" AM_LDFLAGS rather than
| "in addition to" breaks backward compatibility with older versions.
| If your package used both variables, as in
|
| AM_LDFLAGS = common flags
| bin_PROGRAMS = a b c
| a_LDFLAGS = more flags
| ...
|
| and assumed *_LDFLAGS would sum up, you should rewrite it as
|
| AM_LDFLAGS = common flags
| bin_PROGRAMS = a b c
| a_LDFLAGS = $(AM_LDFLAGS) more flags
| ...
|
| This new behavior of *_LDFLAGS is more coherent with other
| per-target variables, and the way *_LDFLAGS variables were
| considered internally.
Hope that helps.
Cheers,
Ralf
___
http://lists.gnu.org/mailman/listinfo/libtool