In some configurations (on FreeBSD, or on LLD <= 17), putting
.test_array between RELRO sections (for example, between .dynamic and
.got.plt) caused a linking failure.
Signed-off-by: Alexey Yerin <yyp@disroot.org>
---
rt/+freebsd/hare+libc.sc | 5 ++++-
rt/+linux/hare+libc.sc | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/rt/+freebsd/hare+libc.sc b/rt/+freebsd/hare+libc.sc
index ade57fe4..9471408e 100644
--- a/rt/+freebsd/hare+libc.sc
+++ b/rt/+freebsd/hare+libc.sc
@@ -4,9 +4,12 @@ SECTIONS {
KEEP(*(.init_array))
PROVIDE(__libc_init_array_end = .);
}
+} INSERT AFTER .dynamic;
+
+SECTIONS {
.test_array : {
PROVIDE(__test_array_start = .);
KEEP(*(.test_array*))
PROVIDE(__test_array_end = .);
}
-} INSERT AFTER .dynamic;
+} INSERT AFTER .bss;
diff --git a/rt/+linux/hare+libc.sc b/rt/+linux/hare+libc.sc
index ade57fe4..9471408e 100644
--- a/rt/+linux/hare+libc.sc
+++ b/rt/+linux/hare+libc.sc
@@ -4,9 +4,12 @@ SECTIONS {
KEEP(*(.init_array))
PROVIDE(__libc_init_array_end = .);
}
+} INSERT AFTER .dynamic;
+
+SECTIONS {
.test_array : {
PROVIDE(__test_array_start = .);
KEEP(*(.test_array*))
PROVIDE(__test_array_end = .);
}
-} INSERT AFTER .dynamic;
+} INSERT AFTER .bss;
--
2.46.0