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.

Reply via email to