+2020-06-04 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-dynamic/export-dynamic-symbol-2.d: Match output for
+ mips-sgi-irix6.
+ * testsuite/ld-dynamic/export-dynamic-symbol-glob.d: Likewise.
+ * testsuite/ld-dynamic/export-dynamic-symbol-list-2.d: Likewise.
+ * testsuite/ld-dynamic/export-dynamic-symbol-list-glob.d: Likewise.
+ * testsuite/ld-dynamic/export-dynamic-symbol.exp: Exclude targets
+ with poor PIE support.
+
2020-06-04 Alan Modra <amodra@gmail.com>
* testsuite/ld-plugin/lto.exp (pr12758.exe): Add NOPIE_LDFLAGS.
#source: export-dynamic-symbol.s
#ld: -pie -u foo --export-dynamic-symbol foo --export-dynamic-symbol=bar tmpdir/libpr25910.a
#nm: -D
+# mips-sgi-irix6 makes foo and bar SHN_MIPS_DATA (SHN_LOPROC+2) due to the
+# testcase carelessly leaving them untyped which mips gas turns into
+# STT_OBJECT type. nm interprets SHN_MIPS_DATA (incorrectly) to be A type.
#...
-[0-9a-f]+ T +bar
-[0-9a-f]+ T +foo
+[0-9a-f]+ [AT] +bar
+[0-9a-f]+ [AT] +foo
#...
#source: export-dynamic-symbol.s
#ld: -pie -u foo --export-dynamic-symbol "f*" tmpdir/libpr25910.a
#nm: -D
+# See comment in export-dynamic-symbol-2.d for why A is allowed here.
#...
-[0-9a-f]+ T +foo
+[0-9a-f]+ [AT] +foo
#...
#source: export-dynamic-symbol.s
#ld: -pie -u foo --export-dynamic-symbol-list foo-bar.list tmpdir/libpr25910.a
#nm: -D
+# See comment in export-dynamic-symbol-2.d for why A is allowed here.
#...
-[0-9a-f]+ T +bar
-[0-9a-f]+ T +foo
+[0-9a-f]+ [AT] +bar
+[0-9a-f]+ [AT] +foo
#...
#source: export-dynamic-symbol.s
#ld: -pie -u foo --export-dynamic-symbol-list fstar.list tmpdir/libpr25910.a
#nm: -D
+# See comment in export-dynamic-symbol-2.d for why A is allowed here.
#...
-[0-9a-f]+ T +foo
+[0-9a-f]+ [AT] +foo
#...
return
}
-# Skip targets where -shared is not supported
+# Skip targets where -shared or -pie is not supported
+if { ![check_shared_lib_support] || ![check_pie_support] } {
+ return
+}
-if ![check_shared_lib_support] {
+# Skip targets that have poor PIE support, resulting in failures due to
+# PHDR segment not covered by LOAD segment errors.
+if { ([istarget "bfin-*-*"] && ![istarget "bfin-*-linux*"])
+ || [istarget "mn10300-*-*"]
+ || [istarget "score-*-*"] } {
return
}