summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-07-23 10:14:11 +0200
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2016-08-02 08:21:46 +0200
commitff54bcdf2e4e07d91e6568953d3af359fd6b5586 (patch)
tree4f36b126ea2544beb65acb71cafacd7d2ff051d2
parent1c63516075b3d7e06a8919b030afdef3116d6373 (diff)
downloadedk2-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.lds3
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)