On 2014.11.10 at 11:43 -0800, H.J. Lu wrote: > On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <ja...@redhat.com> wrote: > > On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote: > >> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs, > >> >> > libcc1 is built normally using libtool using -fPIC only, and linked > >> >> > into > >> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the > >> >> > pic/libiberty.a, because we need PIC code in the shared libraries. > >> >> > So, I don't understand the change at all. > >> >> > > >> >> > Jakub > >> >> > >> >> This is the command line to build libcc1.la: > >> > > >> > Sure, but there was -fPIC used to compile all the *.o files that are > >> > being > >> > linked into libcc1.so, so LTO should know that. > >> > >> And it does. If not please file a bug with a smaller testcase than libcc1 > >> and libiberty. > > > > Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after > > $(HOST_EXPORTS) > > to the libcc1 rules iff the libcc1 module is built by the newly built > > bootstrapped compiler (but not when the compiler is not bootstrapped and > > thus it is built by the host compiler), because if we first bootstrap the > > compiler and build libcc1 by stage3, it is really post-stage1 building. > > It doesn't help. The problem is the missing -fPIC when libtool calls > g+++ to create the shared object. My patch fixes it.
But wouldn't it be better to update to a more recent libtool version instead of adding hack upon hack? This would also allow bootstrap-lto without the need of the gcc-ar (, etc.) wrappers. And you are one of the very few persons who could handle such an update. -- Markus