This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: GOLD handling of weak symbols (including x86 vs. ARM)
Richard Sandiford <richard.sandiford@linaro.org> writes:
> Well, the problem is that Thumb doesn't have separate relocs for
> non-@PLT and @PLT function calls. (ARM itself only has it with a
> legacy relocation, R_ARM_PLT32.)
Yeah, so there we would say that if a reloc always implies a function
call, we should always use the PLT if there is one. We could do by
passing a flag to use_plt_offset, or we could do that instead of calling
use_plt_offset. I guess the advantage of passing a flag is that it is
more likely to be done right for a new target.
> On targets like x86_64 that _do_ have this distinction, we've
> already honoured that distinction when deciding whether to create
> a PLT in the first place. Is there actually any harm in resolving
> a R_X86_64_PC32 to a PLT if a PLT had already been created for
> other reasons?
The R_X86_64_PC32 reloc is generated for instructions which are not
function calls, such as references to global variables when using the
(default) small memory model.
Ian