[patch] krb5 HEAD fails to build on RHEL5/Linux/IA64 with $ configure --enable-static --disable-shared # ...

Greg Hudson ghudson at mit.edu
Tue Sep 2 12:48:07 EDT 2014

On 09/02/2014 12:30 PM, Roland Mainz wrote:
>> This is too broad.  libm should not be a linker dependency of krb5kdc
>> and kadmind for non-static builds or when the system libverto is used.
> Well... libverto needs libm ...

Only the in-tree libverto needs libm (because it includes an embedded
libev).  And with shared linking, you neither need nor want to list the
dependencies of a library when linking against it.

> ... but that was exactly the motivation why I wanted to fix the static build - almost all of the (static) analyzer/instrumentation software (minus the original "lint") need a "whole view" of all the sources to be able to analyze the code properly with *ALL* interdependencies... and so far none of them (e.g. tested with Sun Studio's XIPO, Coverity or gcc/clang -flto) can deal with compiled shared libraries (*.a archives are fine because the precompiled source code is embedded in special ELF chunks or (in the case of "clang") the *.o files in the archives are compiler-specific bytecode; creating shared libraries (*.so) will cause the linker to strip this information).

Coverity works fine without static linking.

The other tools you listed appear to be for whole-program optimization
at link time.  Unless someone can document substantial benefits from
using link-time optimization with the Kerberos tree, I don't think it
warrants the additional build system complexity.

More information about the krbdev mailing list