Re: LTO setup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2016.02.02 at 18:35 +0100, Fabio Coatti wrote:
> In data martedì 2 febbraio 2016 13:01:06, Markus Trippelsdorf ha scritto:
> 
> > > 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.
> 
> Thanks for your answer; I've followed your advices (and others on the blog) 
> and I think I can assume that lto is applied: using git-shell the size is 
> greatly reduced when compiling with lto turned on. I created the symlink as 
> suggested.
> 
> However, I see a behaviour that I can't understand with static libs (.a).
> 
> As example, I built plib both with lto and without.
> The result puzzles me:
> LTO
> size 531792 
> nm libplibfnt.a | wc -l: 105
> 
> NO-LTO
> size 153604
> nm libplibfnt.a | wc -l: 809
> 
> The size can be justified by this error:
> x86_64-pc-linux-gnu-strip: /var/tmp/portage/media-libs/plib-1.8.5-
> r1/image/usr/lib64/st1bAIiB/slMODinst.o: plugin needed to handle lto object
> 
> I get many of them, so it is likely that object files are not stripped; however 
> the issue is that exported symbols are far less in LTO build, and, as example, 
> flightgear fails to compile due to missing symbols; it builds fine with plib 
> compiled without lto.

The libplibfnt.a should only contain compressed GIMPLE code when build
with -flto. 

See also https://gcc.gnu.org/wiki/LinkTimeOptimizationFAQ

-- 
Markus



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux