https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97787
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |lto CC| |pinskia at gcc dot gnu.org --- Comment #23 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #20) > Indeed already the name, .LTHUNK5.lto_priv.0, hints at that this should be a > local symbol. Not sure why we end up with a .reloc then. > > ld $25,%got_disp(.LTHUNK5.lto_priv.0)($28) > .LEHB26 = . > .reloc 1f,R_MIPS_JALR,.LTHUNK5.lto_priv.0 > 1: jalr $25 > > this seems to be in _ZN4Sass6Parser16parse_parametersEv So 64bit MIPS n64 ABI with -mxgot does all function calls via loading an address from the GOT, the .reloc there is to say to the linker to see if it can relax it to be a direct jump (with link) rather than the indirect jump. Looking into the cp/method.c code, I see we are creating an alias called .LTHUNK5 for a function which seems to be fine. So either we are not outputing the correct name or the way local aliases are not being handled correctly when splitting up the LTO partitions; -flto-partition=none is a hint there.