+
+set AFLAGS_PIE ""
+if { [istarget "i?86-*-*"]
+ || [istarget "x86_64-*-*"] } {
+ set AFLAGS_PIE "-mrelax-relocations=yes"
+}
+
+if { ([istarget "*-*-linux*"]
+ || [istarget "*-*-nacl*"]
+ || [istarget "*-*-gnu*"])
+ && ![istarget "mips*-*-*"] } {
+ run_ld_link_tests [list \
+ [list \
+ "Build libpr23162a.so" \
+ "-shared" \
+ "" \
+ "$AFLAGS_PIC" \
+ { pr23162a.c } \
+ "" \
+ "libpr23162a.so" \
+ "-fPIC -O2" \
+ ] \
+ [list \
+ "Build pr23162a" \
+ "-pie --no-as-needed tmpdir/libpr23162a.so" \
+ "" \
+ $AFLAGS_PIE \
+ { pr23162b.c } \
+ {{readelf {-rW} pr23162.rd}} \
+ "pr23162a" \
+ "-fPIC -O0" \
+ ] \
+ [list \
+ "Build libpr23162b.so" \
+ "-shared --version-script=pr23162.map" \
+ "" \
+ "$AFLAGS_PIC" \
+ { pr23162a.c } \
+ "" \
+ "libpr23162b.so" \
+ "-fPIC -O2" \
+ ] \
+ [list \
+ "Build pr23162b" \
+ "-pie --no-as-needed tmpdir/libpr23162b.so" \
+ "" \
+ $AFLAGS_PIE \
+ { pr23162b.c } \
+ {{readelf {-rW} pr23162.rd}} \
+ "pr23162b" \
+ "-fPIC -O0" \
+ ] \
+ [list \
+ "Build libpr23161a.so" \
+ "-shared" \
+ "" \
+ "$AFLAGS_PIC" \
+ { pr23161a.c } \
+ {{readelf {--dyn-syms -rW} pr23161a.rd}} \
+ "libpr23161a.so" \
+ "-fPIC -O2" \
+ ] \
+ [list \
+ "Build pr23161a" \
+ "-pie --no-as-needed tmpdir/libpr23161a.so" \
+ "" \
+ $AFLAGS_PIE \
+ { pr23161b.c } \
+ {{readelf {--dyn-syms -rW} pr23161b.rd}} \
+ "pr23161a" \
+ "-fPIC -O0" \
+ ] \
+ [list \
+ "Build libpr23161b.so" \
+ "-shared --version-script=pr23161.map" \
+ "" \
+ "$AFLAGS_PIC" \
+ { pr23161a.c } \
+ {{readelf {--dyn-syms -rW} pr23161a.rd}} \
+ "libpr23161b.so" \
+ "-fPIC -O2" \
+ ] \
+ [list \
+ "Build pr23161b" \
+ "-pie --no-as-needed tmpdir/libpr23161b.so" \
+ "" \
+ $AFLAGS_PIE \
+ { pr23161b.c } \
+ {{readelf {--dyn-syms -rW} pr23161b.rd}} \
+ "pr23161b" \
+ "-fPIC -O0" \
+ ] \
+ ]
+}
+
+if { [istarget "i?86-*-*"]
+ || [istarget "x86_64-*-*"] } {
+ run_ld_link_tests [list \
+ [list \
+ "Build libpr23161c.so" \
+ "-shared" \
+ "" \
+ "$AFLAGS_PIC" \
+ { pr23161c.c } \
+ {{readelf {--dyn-syms -rW} pr23161c.rd}} \
+ "libpr23161c.so" \
+ "-fPIC -O2" \
+ ] \
+ [list \
+ "Build pr23161c" \
+ "-pie --no-as-needed tmpdir/libpr23161c.so" \
+ "" \
+ $AFLAGS_PIE \
+ { pr23161b.c } \
+ {{readelf {--dyn-syms -rW} pr23161d.rd}} \
+ "pr23161c" \
+ "-fPIC -O0" \
+ ] \
+ ]
+}
+
+run_ld_link_tests [list \
+ [list "Build pr23658.so" \
+ "-shared" "" "$AFLAGS_PIC" \
+ {pr23658-1a.s} {} "pr23658.so"] \
+ [list \
+ "Build pr23658-2" \
+ "--dynamic-linker tmpdir/pr23658.so --no-as-needed tmpdir/pr23658.so" \
+ "" \
+ $AFLAGS_NOTE \
+ { pr23658-1a.s pr23658-1b.s pr23658-1c.s pr23658-1d.s start.s } \
+ {{readelf {-lW} pr23658-2.rd}} \
+ "pr23658-2" \
+ ] \
+]