commit 042da531c8520ad46630ba784365522a62347926
parent 51d3beb1b6239099fe5d1500fdaecaa2971e76ff
Author: Ryan Sepassi <rsepassi@gmail.com>
Date: Fri, 29 May 2026 14:02:38 -0700
test: add opt-in test-link-x64 for x64 ELF reloc application
test-link defaults to aa64, so cfree's x64 ELF static-link relocation fixups
(R_X64_PLT32/GOTPCREL/GOTPCRELX/REX_GOTPCRELX/TPOFF/RELATIVE/JUMP_SLOT/
GLOB_DAT) were only ever exercised via a manual CFREE_TEST_ARCH=x64 override —
never by any make target, despite x64-Linux being in the OS support set.
Add test-link-x64 (CFREE_TEST_ARCH=x64, paths RE). Opt-in like the rv64 wide
and smoke targets, since the E path links and runs under podman/qemu-x86_64;
the R path (roundtrip + reloc layout) runs on any host (verified: 39 pass).
Diffstat:
1 file changed, 9 insertions(+), 0 deletions(-)
diff --git a/test/test.mk b/test/test.mk
@@ -78,6 +78,7 @@ TEST_TARGETS = \
test-pp-ok \
test-rt-headers \
test-rt-runtime \
+ test-link-x64 \
test-rv64-inline \
test-rv64-jit \
test-rv64-tls-link \
@@ -534,6 +535,14 @@ TEST_RT_DEP = $(_TEST_RT_$(CFREE_TEST_ARCH))
test-link: lib $(ROUNDTRIP_BIN) $(ROUNDTRIP_BIN_MACHO) $(LINK_EXE_RUNNER) $(JIT_RUNNER)
bash test/link/run.sh
+# x64 ELF link/reloc-application coverage. test-link defaults to aa64, so
+# cfree's x64 static-link reloc fixups (R_X64_PLT32/GOTPCREL/TPOFF/...) were
+# only ever run via a manual CFREE_TEST_ARCH=x64 override. Opt-in (not in the
+# default set) because the E path links + runs under podman/qemu-x86_64; the R
+# path (roundtrip + reloc layout) runs on any host.
+test-link-x64: lib rt-x86_64-linux $(ROUNDTRIP_BIN) $(LINK_EXE_RUNNER) $(JIT_RUNNER)
+ @CFREE_TEST_ARCH=x64 CFREE_TEST_PATHS=RE bash test/link/run.sh
+
test-macho: lib $(TEST_RT_DEP) $(ROUNDTRIP_BIN_MACHO) $(LINK_EXE_RUNNER) $(JIT_RUNNER)
CFREE_TEST_OBJ=macho \
CFREE_TEST_ARCH=$${CFREE_TEST_ARCH:-aa64} \