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 <[email protected]>
Acked-by: Laszlo Ersek <[email protected]>
Acked-by: Jordan Justen <[email protected]>
---
ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds | 3 +++
1 file changed, 3 insertions(+)
diff --git a/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds
b/ArmVirtPkg/PrePi/Scripts/PrePi-PIE.lds
index 832ad1474468..44df7840adfd 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)
--
2.7.4
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel