On Wed, Oct 29, 2014 at 6:13 PM, David Edelsohn <dje....@gmail.com> wrote: > On Wed, Oct 29, 2014 at 9:24 AM, Richard Biener > <richard.guent...@gmail.com> wrote: > >> Because only genmatch calls functions from libstdc++. Btw, why >> would genmatch miscompile an empty function or the call to it? > > I tried bootstrapping with libstdc++ built without the AIX ld "-G" > flag and that is succeeding. > > "-G" produces a shared object for use with SVR4-style runtime linking, > so this version of libstdc++ no longer allows runtime function > interposition, e.g., operator new, although it is not used frequently. > Something about the GCC-produced tail calls is interacting badly with > that feature. > > Note that this makes GCC bootstrap on AIX very fragile at the moment > because it depends on how libstdc++ was built in previous releases. I > can bootstrap with GCC 4.6.3 and 4.8.1 but not with 4.7.3, 4.8.0, nor > 4.9.0. A problematic libstdc++ from earlier releases causes genmatch > to loop in stage 1.
I see. A bootstrap with IPA ICF disabled did not succeed but runs into the same issue in stage2. So I wonder if the issue is latent for much longer and genmatch just exposes it now. I'll see if I can remove the use of std::map from genmatch as a workaround. Thanks, Richard. > Thanks, David