This is the mail archive of the
mailing list for the binutils project.
Difference in documentation vs implementation of R_X86_64_GOTPC32/64
- From: "Siva Chandra via binutils" <binutils at sourceware dot org>
- To: binutils at sourceware dot org
- Cc: Cary Coutant <ccoutant at gmail dot com>
- Date: Mon, 18 Mar 2019 12:42:59 -0700
- Subject: Difference in documentation vs implementation of R_X86_64_GOTPC32/64
- Reply-to: Siva Chandra <sivachandra at google dot com>
The documentation I have at hand for the x86_64 ABI says the
R_X86_64_GOTPC32/64 should be evaluated as:
GOT + A - P
where GOT is the address of the global offset table, A the addend, and
P the program counter. But, I notice that, the implementations
actually interpret GOT as the address of .got.plt.
Also, it seems to me that a similar interpretation is also applied to
R_X86_64_GOTOFF64, R_386_GOTPC and R_386_GOTOFF.
Is there any reason why GOT is interpreted to be the address of
.got.plt? Or, is it a defect in the documentation?