summaryrefslogtreecommitdiff
path: root/sys/arch/arm64/conf
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2017-10-04 21:04:57 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2017-10-04 21:04:57 +0000
commite9f636fa532b453e47b0e8aa23011caf8f5f201f (patch)
tree45dbd77a2e2ee135225195eda69f9aeefe46ddb9 /sys/arch/arm64/conf
parente37af64d796a530b8ec3607443f3dc9232490560 (diff)
Due to changes in LLD where sections are sorted in a different way,
the .got section was put into the randomdata segment. This caused the bootloader to overwrite parts of the .got and leads to broken pointers. Explicitly put the .got section into the .data segment. ok kettenis@
Diffstat (limited to 'sys/arch/arm64/conf')
-rw-r--r--sys/arch/arm64/conf/kern.ldscript6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arch/arm64/conf/kern.ldscript b/sys/arch/arm64/conf/kern.ldscript
index 9a4dd31ba86..f4420390c03 100644
--- a/sys/arch/arm64/conf/kern.ldscript
+++ b/sys/arch/arm64/conf/kern.ldscript
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern.ldscript,v 1.5 2017/03/22 10:47:29 kettenis Exp $ */
+/* $OpenBSD: kern.ldscript,v 1.6 2017/10/04 21:04:56 patrick Exp $ */
/* $NetBSD: ldscript.evbarm,v 1.2 2003/03/05 23:54:22 thorpej Exp $ */
OUTPUT_ARCH(aarch64)
@@ -45,6 +45,10 @@ SECTIONS
{
*(.openbsd.randomdata)
} :openbsd_randomize :data
+ .got :
+ {
+ *(.got .got.*)
+ } :data
.data :
{
*(.data .data.*)