diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-07-23 10:14:11 +0200 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-08-02 08:21:46 +0200 |
commit | ff54bcdf2e4e07d91e6568953d3af359fd6b5586 (patch) | |
tree | 4f36b126ea2544beb65acb71cafacd7d2ff051d2 | |
parent | 1c63516075b3d7e06a8919b030afdef3116d6373 (diff) | |
download | edk2-platforms-ff54bcdf2e4e07d91e6568953d3af359fd6b5586.tar.xz |
ArmVirtPkg/ArmVirtPrePiUniCoreRelocatable: ignore .hash and .note sections
Newer versions of ld automatically emit .gnu.hash and .note.gnu.build-id
sections, which are not listed in the linker script, and will end up
breaking the build with an allocation conflict, e.g.,
/usr/bin/aarch64-linux-gnu-ld: section .note.gnu.build-id loaded at
[0000000000000000,0000000000000023] overlaps section .text loaded at
[0000000000000000,0000000000017dbf]
Since we don't require or care about these sections, update the linker
script so that they are discarded. Note that this involves emitting the
.note.gnu.build-id section into a non-allocatable segment to prevent the
linker from noticing that it is being discarded (and subsequently
complaining about it)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r-- | ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds b/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds index 832ad14744..44df7840ad 100644 --- a/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds +++ b/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds @@ -30,8 +30,11 @@ SECTIONS PROVIDE(__reloc_end = .);
}
+ .note (INFO) : { *(.note.gnu.build-id) }
+
/DISCARD/ : {
*(.note.GNU-stack)
+ *(.gnu.hash)
*(.gnu_debuglink)
*(.interp)
*(.dynamic)
|