[patch] krb5 HEAD fails to build on RHEL5/Linux/IA64 with $ configure --enable-static --disable-shared # ...
rmainz at redhat.com
Tue Sep 2 13:12:58 EDT 2014
----- Original Message -----
> > ... 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.
>From what I've seen on last FOSDEM Coverity works better when it has access to all sources...
> 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.
Erm... the point wasn't link-time optimisation in this case... it's whole-view, i.e. access to all sources and analysis of **ALL** interdependencies between all sources. The shared libraries are reducing the coverage of these tools down to just what's in the current sources and the shared libraries are handled as black boxes...
... and finally: Static build works (except the IA64 issue I've reported and the assembler "fun" on x86/AMD64) ... why dump it if it works (or can be repaired easily) and has some benefits to Kerberos (e.g. Coverity doesn't cover all platforms and IMHO portability and analysis/instrumentation on as many platforms as possible is a good thing... right ? ;-) ) ?
__ . . __
(o.\ \/ /.o) rmainz at redhat.com
\__\/\/__/ IPA/Kerberos5 team
/O /==\ O\
(;O/ \/ \O;)
More information about the krbdev