[efi] Disallow R_X86_64_32 relocations
authorMichael Brown <mcb30@ipxe.org>
Thu, 12 Feb 2015 13:35:11 +0000 (13:35 +0000)
committerMichael Brown <mcb30@ipxe.org>
Thu, 12 Feb 2015 13:39:25 +0000 (13:39 +0000)
commit907cffb7c50917d1576cee6363ecbe5d269efa00
tree4a9d52f1bc8226407037031e6ad75af7a5a989b5
parent335a7ddcd4e2d0faaee6d5b1edf0307dfba3d0e5
[efi] Disallow R_X86_64_32 relocations

UEFI binaries may be relocated to any location within the 64-bit
address space.  We compile as position-independent code with hidden
visibility, which should force all relocation records to be either
PC-relative (in which case no PE relocations are required) or full
64-bit relocations.  There should be no R_X86_64_32 relocation
records, since that would imply an invalid assumption that code could
not be relocated above 4GB.

Remove support for R_X86_64_32 relocation records from util/elf2efi.c,
so that any such records result in a build failure rather than a
potential runtime failure.

Reported-by: Jan Kundrát <jkt@kde.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/util/elf2efi.c