musl libc currently does not run .preinit_array functions. --- binutils-2.41/ld/testsuite/ld-elf/elf.exp.old 2023-09-22 20:55:13.894385414 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/elf.exp 2023-09-22 21:31:13.354594152 -0500 @@ -427,17 +427,21 @@ run_ld_link_exec_tests $array_tests_pie $xfails if { $STATIC_PIE_LDFLAGS != "" } then { + if { ![istarget *-*-musl*] } then { + run_ld_link_exec_tests [list \ + [list \ + "Static PIE preinit array" \ + "$STATIC_PIE_LDFLAGS" \ + "" \ + {preinit.c} \ + "preinit-static-pie" \ + "preinit.out" \ + "-fPIE" \ + ] \ + ] + } run_ld_link_exec_tests [list \ [list \ - "Static PIE preinit array" \ - "$STATIC_PIE_LDFLAGS" \ - "" \ - {preinit.c} \ - "preinit-static-pie" \ - "preinit.out" \ - "-fPIE" \ - ] \ - [list \ "Static PIE init array" \ "$STATIC_PIE_LDFLAGS" \ "" \