:: commit 02356f690f7a2942e2654f1c914eb6b75f731542

xvanc <xvancm@gmail.com> — 2023-08-03 08:46

parents: d7d4aea753

test/riscv: disable linker relaxation, specify ISA string and ABI

Although linker relaxation is disabled, the compiler still emits small
data sections which must be explicitly included in the linker script.
diff --git a/test/GNUmakefile b/test/GNUmakefile
index 8f3329a3..53c9b448 100644
--- a/test/GNUmakefile
+++ b/test/GNUmakefile
@@ -47,6 +47,11 @@ override INTERNALCFLAGS  :=       \
 	-I.                  \
 	-I..
 
+ifneq ($(findstring riscv,$(CC_FOR_TARGET)),)
+override INTERNALCFLAGS += -march=rv64imac -mabi=lp64 -mno-relax
+override INTERNALLDFLAGS += --no-relax
+endif
+
 override INTERNALCFLAGS_MB  :=    \
 	-std=c11             \
 	-ffreestanding       \
diff --git a/test/linker.ld b/test/linker.ld
index ce95d7f3..a3cae318 100644
--- a/test/linker.ld
+++ b/test/linker.ld
@@ -32,6 +32,7 @@ SECTIONS
 
     .data : {
         *(.data .data.*)
+        *(.sdata .sdata.*)
     } :data
 
     .dynamic : {
@@ -39,6 +40,7 @@ SECTIONS
     } :data :dynamic
 
     .bss : {
+        *(.sbss .sbss.*)
         *(.bss .bss.*)
         *(COMMON)
     } :data
tab: 248 wrap: offon