I recently ran into an issue where a build was failing at the very end
because the shared libraries were not being created as expected, but the
actual linking step appeared to succeed. Switching to GNU libtool made
the problem mysteriously disappear.

The Makefile was passing the -shrext flag to GNU libtool to create shared
libraries with a custom extension. The libtool from base was silently
ignoring this flag as opposed to erroring out as I would have expected.

I've seen similar issues e.g. in smtpctl where extraneous flags from the
GNU, etc. equivalents are just silently ignored.

There is a tradeoff in ignoring unsupported flags vs throwing an error,
but IMO this is not ideal because it creates undefined behaviour. The
build should have failed at that step and not generate .so libraries and
quietly carry on. At the very least it would have saved some time looking
in the wrong place.

The man page for libtool is quite terse and states:

> libtool is supposed to be a drop-in replacement for the eponymous GNU
> project.

However, no flags are detailed nor a listing of all the unsupported ones.

Regards
Lloyd

Reply via email to