A couple of tests FAIL on Solaris/sparcv9:
FAIL: ld-elf/compress1a
FAIL: ld-elf/compressed1a
FAIL: ld-elf/eh5
FAIL: --gc-sections with multiple debug sections for a function section
The symptom is always similar:
compress1.o:(.debug_info+0x10): relocation truncated to fit: R_SPARC_UA32 against `.text'
eh5.o:(.eh_frame+0x3e): relocation truncated to fit: R_SPARC_UA32 against symbol `my_personality_v0' defined in .text section in eh5.o
all-debug-sections.o: in function `debug_info_main':
(.debug_info.text.main+0x4): relocation truncated to fit: R_SPARC_32 against symbol `main' defined in .text.main section in all-debug-sections.o
With the default Solaris/sparcv9 text address of 0x100000000, the
relocations are out of the 32-bit range of R_SPARC_UA32 resp. R_SPARC_32,
so the "relocation truncated to fit" errors are benign.
One could avoid those by linking the affected tests with -Ttext=0x80000000,
matching Solaris /usr/lib/ld/map.below4G, but that doesn't reflect real
usage. Therefore this patch xfail's those tests.
Tested on sparcv9-sun-solaris2.11, sparc-sun-solaris2.11, and
x86_64-pc-linux-gnu.
2025-07-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
ld:
PR ld/25802
* testsuite/ld-elf/compress1a.d: xfail on sparcv9-*-solaris2*.
* testsuite/ld-elf/compressed1a.d: Likewise.
* testsuite/ld-elf/eh5.d: Likewise.
* testsuite/ld-gc/all-debug-sections.d: Likewise.
#ld: -e func_cu2
#readelf: -S --wide
#xfail: alpha-*-*ecoff
+# PR ld/25802
+#xfail: sparcv9-*-solaris2*
#failif
#...
#ld: -e func_cu2
#readelf: -t
#xfail: alpha-*-*ecoff
+# PR ld/25802
+#xfail: sparcv9-*-solaris2*
#failif
#...
#readelf: -wf
#target: [check_as_cfi]
#xfail: alpha-*-*ecoff tile*-*-* visium-*-*
+# PR ld/25802
+#xfail: sparcv9-*-solaris2*
Contents of the .eh_frame section:
#as: -gdwarf-sections
#ld: --gc-sections -e _start
#nm: -B
+# PR ld/25802
+#xfail: sparcv9-*-solaris2*
#...
[0-9a-f]+ N +debug_aranges_main