This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
What is R_X86_64_GOTPLT64 used for?
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: "x86-64-abi at googlegroups dot com" <x86-64-abi at googlegroups dot com>, GCC Development <gcc at gcc dot gnu dot org>, Binutils <binutils at sourceware dot org>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 13 Nov 2014 06:55:56 -0800
- Subject: What is R_X86_64_GOTPLT64 used for?
- Authentication-results: sourceware.org; auth=none
x86-64 psABI has
name@GOT: specifies the offset to the GOT entry for the symbol name
from the base of the GOT.
name@GOTPLT: specifies the offset to the GOT entry for the symbol name
from the base of the GOT, implying that there is a corresponding PLT entry.
But GCC never generates name@GOTPLT and assembler fails to assemble
it:
[hjl@gnu-6 pr17598]$ cat x.S
movabs $foo@GOTPLT,%rax
[hjl@gnu-6 pr17598]$ gcc -c x.S
x.S: Assembler messages:
x.S:1: Error: relocated field and relocation type differ in signedness
[hjl@gnu-6 pr17598]$
It certainly isn't needed on data symbols. I couldn't find any possible
usage for this relocation on function symbols.
Does anyone remember what it was supposed to be used for?
--
H.J.