https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593

--- Comment #11 from Fangrui Song <i at maskray dot me> ---
(In reply to Alexander Monakov from comment #10)
> Is there something wrong or undesirable with making this under -fno-plt (or
> the noplt attribute as in your example)?
> 
> (after all, it is a kind of PLT-avoidance transformation, just for
> addressing rather than direct calling/jumping)

-fno-plt is generally undesired due to longer branch instructions and
performance lost when the branch target is defined in the exe/so when the
linker is gold/ld.lld (they cannot optimize jmp *got to jmp target)

For non-x86, -fno-plt doesn't exist at all. If implemented, there requires many
more instructions which are certainly undesirable.

So -fno-plt can never be a default.

Using GOT to take the address of an external function in -fno-pic is just a
better default. I want the behavior to become the behavior, so it should not be
under -fno-plt.

Reply via email to