[Bug lto/97787] [10/11 regression] 64bit mips lto: .symtab local symbol at index x (>= sh_info of y)
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 25 10:49:48 GMT 2021
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.
More information about the Gcc-bugs
mailing list