LTO setup
Markus Trippelsdorf
markus@trippelsdorf.de
Tue Feb 2 12:01:00 GMT 2016
On 2016.02.02 at 11:01 +0100, Fabio Coatti wrote:
> I'm trying to setup a working environment to compile and link with LTO
> enabled, however I'm facing some issues that I can't be sure to have properly
> fixed or resolved, no matter what googling I'm performing :)
>
> Environment:
> gcc (Gentoo 5.3.0 p1.0, pie-0.6.5) 5.3.0
> ld di GNU (Gentoo 2.25.1 p1.1) 2.25.1
> AR="/usr/bin/gcc-ar"
> NM="/usr/bin/gcc-nm"
> RANLIB="/usr/bin/gcc-ranlib"
The wrappers are unnecessary. Just create a symlink to
/usr/libexec/gcc/x86_64-pc-linux-gnu/5.3.0/liblto_plugin.so.0.0.0
in /usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/
and you're ready to go.
> flags, both for gcc and ld: -flto=4 -fuse-linker-plugin
> What puzzles me:
>
> 1) Is there any way to state if LTO is producing the expected outcome or falls
> back to non-optimized code? The ideal should be some hello.c test compilation,
> I guess.
You can follow the "Prerequisities" steps from Honza's blog post:
http://hubicka.blogspot.com/2014/09/linktime-optimization-in-gcc-part-3.html
> 3) the most problematic one: whenever a static lib (.a) is produced,
> compilations depending on it always fails, complaining about missing symbols.
> I tried every "solution" that I found (placing plugin in right directory,
> using wrappers for ar/nm/ranlib and so on, to no avail.
> some examples are plib (plib.sourceforge.net) qtdeclarative, etc.
> It seems that many symbols are not present in lto-built libs, however I'm not
> able to fix the issue, so I'm wondering if this could be an issue with my setup
> or the package itself that can't be built with LTO. Again, a very short test
> case to check if my setup is fine would be really helpful.
This should be fixed by the symlink in lib/bfd-plugins.
--
Markus
More information about the Gcc-help
mailing list