Honza, I finally was able to bootstrap GCC on AIX yesterday. The bootstrap works, but the testsuite results are in extremely bad shape: 250 failures in G++ testsuite and 470 failures in libstdc++ testsuite.
G++ previously had about 65 failures, mainly TLS and init. libstdc++ previously hovered around 12-14 failure. This is unacceptable breakage and fallout from the recent changes. - David On Fri, May 30, 2014 at 3:20 AM, Richard Sandiford <rdsandif...@googlemail.com> wrote: > Jan Hubicka <hubi...@ucw.cz> writes: >>> Jan Hubicka <hubi...@ucw.cz> writes: >>> >> Richard Sandiford wrote the original section anchors implementation, >>> >> so he would be a good person to comment about the interaction between >>> >> aliases and section anchors. >>> > >>> > Thanks! Richard, does this patch seem sane? >>> >>> Looks good to me in principle, but with: >>> >>> > + struct symtab_node *snode; >>> > decl = SYMBOL_REF_DECL (symbol); >>> > + >>> > + snode = symtab_node (decl); >>> > + if (snode->alias) >>> > + { >>> > + rtx target = DECL_RTL (symtab_alias_ultimate_target >>> > (snode)->decl); >>> > + SYMBOL_REF_BLOCK_OFFSET (symbol) = SYMBOL_REF_BLOCK_OFFSET >>> > (target); >>> > + return; >>> > + } >>> >>> is SYMBOL_REF_BLOCK_OFFSET (target) guaranteed to be valid at this point? >>> It looked at face value like you'd need a recursive call to >>> place_block_symbol >>> on the target before the copy. >> >> My reading was that SYMBOL_REF_BLOCK_OFFSET is computed at DECL_RTL >> calculation time. But you are right - it is done by validize_mem that >> is not done by DECL_RTL. Shall I just call it on target first? > > Yeah, sounds like calling place_block_symbol would be safer. > > IIRC, the reason I didn't do it at SET_DECL_RTL time is that some frontends > tended to create placeholder decls that for whatever reason ended up with > an initial DECL_RTL, then changed the properties of the decl later once > more information was known. (This was all many years ago.) > > Thanks, > Richard