https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63773
--- Comment #15 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Francois-Xavier Coudert from comment #14) > (In reply to Dominique d'Humieres from comment #13) > > There is still a bootstrapping issue with libcc1 when bootstrapping with gcc > > 4.9: > > Regarding that one, it should be fixed in the top-level Makefile. The > targets that configure and build libcc1 in this Makefile call > $(HOST_EXPORTS), which should do the trick. Instead, it should probably do > like lto, and use $(HOST_EXPORTS) and $(POSTSTAGE1_HOST_EXPORTS) together > for stages > 1. ACK - I think that's completely the right approach to one part of the problem. - what's happening is that the analysis for the _bootstrap_ compiler's support of the -static-libstdc++ is being used for the _stage#3_ build of libcc1 for clang [bootstrap] -static-libstdc++ is not supported and thus libcc1 links with /usr/lib/libstdc++.dylib (which is not really what was intended). for gcc [bootstrap] the support is mentioned - and then the -static-libstdc++ flag is provided to the libcc1 link (which then fails with…). … the second issue - which is that we need a -B…. option for each library path that will be used for spec-substitution (.a for .dylib). so we need -B/path/to/libstdc++-v3/src/.libs and -B/path/to/libsupc++/.libs,. > > Looking at Makefile.def, the only difference I see is that libcc1 is not > bootstrapped, so maybe we could fix it this way? > > Index: Makefile.def > =================================================================== > --- Makefile.def (revision 217355) > +++ Makefile.def (working copy) > @@ -123,7 +123,8 @@ host_modules= { module= gnattools; }; > host_modules= { module= lto-plugin; bootstrap=true; > extra_configure_flags='--enable-shared > @extra_linker_plugin_flags@ > @extra_linker_plugin_configure_flags@'; > extra_make_flags='@extra_linker_plugin_flags@'; }; > -host_modules= { module= libcc1; extra_configure_flags=--enable-shared; }; > +host_modules= { module= libcc1; bootstrap=true; > + extra_configure_flags=--enable-shared; }; > > target_modules = { module= libstdc++-v3; > bootstrap=true; I don't think we want to bootstrap libcc1 (that was what the patch was removing). Probably the right example is gnattools - or something similar that only builds @stage#3.