# Expect script for ld-x86_64 tests
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
"--64" { pr19827a.S }}
{"Build pr19827b.so" "-melf_x86_64 -shared" ""
"--64" { pr19827b.S } {} "pr19827b.so"}
- {"Build pr19827" "-melf_x86_64 -pie tmpdir/pr19827a.o tmpdir/pr19827b.so" ""
+ {"Build pr19827"
+ "-melf_x86_64 -pie -z notext tmpdir/pr19827a.o tmpdir/pr19827b.so"
+ ""
"--64" { dummy.s } {{readelf {-rW} pr19827.rd}} "pr19827"}
- {"Build pr19827.so" "-melf_x86_64 -shared -Bsymbolic" ""
+ {"Build pr19827.so"
+ "-melf_x86_64 -shared -Bsymbolic -z notext" ""
"--64" { pr19827a.S } {{readelf {-rW} pr19827.rd}} "pr19827.so"}
{"Build pr19969.so" "-melf_x86_64 -shared" ""
"--64" { pr19969a.S } {} "pr19969.so"}
"--64" { pr20550a.s }}
{"Build pr20550b.so" "-melf_x86_64 -shared" ""
"--64" { pr20550b.s } {} "pr20550b.so"}
- {"Build pr20550" "-melf_x86_64 -pie tmpdir/pr20550a.o tmpdir/pr20550b.so" ""
+ {"Build pr20550"
+ "-melf_x86_64 -pie -z notext tmpdir/pr20550a.o tmpdir/pr20550b.so"
+ ""
"--64" { dummy.s } {} "pr20550"}
}
run_dump_test "property-x86-shstk4-x32"
run_dump_test "property-x86-shstk5"
run_dump_test "property-x86-shstk5-x32"
+run_dump_test "property-x86-cet1"
+run_dump_test "property-x86-cet1-x32"
+run_dump_test "property-x86-cet2a"
+run_dump_test "property-x86-cet2a-x32"
+run_dump_test "property-x86-cet2b"
+run_dump_test "property-x86-cet2b-x32"
+run_dump_test "property-x86-cet3a"
+run_dump_test "property-x86-cet3a-x32"
+run_dump_test "property-x86-cet3b"
+run_dump_test "property-x86-cet3b-x32"
+run_dump_test "property-x86-cet4a"
+run_dump_test "property-x86-cet4a-x32"
+run_dump_test "property-x86-cet4b"
+run_dump_test "property-x86-cet4b-x32"
+run_dump_test "property-x86-cet5a"
+run_dump_test "property-x86-cet5a-x32"
+run_dump_test "property-x86-cet5b"
+run_dump_test "property-x86-cet5b-x32"
+run_dump_test "property-x86-cet6"
+run_dump_test "property-x86-cet6-x32"
run_dump_test "pr21884"
run_dump_test "pr21884-nacl"
run_dump_test "pr22071"
run_dump_test "pr23486c-x32"
run_dump_test "pr23486d"
run_dump_test "pr23486d-x32"
+run_dump_test "pr23854"
+run_dump_test "pr23930"
+run_dump_test "pr23930-x32"
+run_dump_test "pr24151a"
+run_dump_test "pr24151a-x32"
+run_dump_test "pr24322a"
+run_dump_test "pr24322a-x32"
+run_dump_test "pr24322b"
+run_dump_test "pr24322b-x32"
+run_dump_test "pr24458a"
+run_dump_test "pr24458a-x32"
+run_dump_test "pr24458b"
+run_dump_test "pr24458b-x32"
+run_dump_test "pr24458c"
+run_dump_test "pr24458c-x32"
+run_dump_test "pr24721"
+run_dump_test "pr24721-x32"
+run_dump_test "pr24905"
+run_dump_test "pr24905-x32"
+run_dump_test "align-branch-1"
+run_dump_test "pr25416-1a"
+run_dump_test "pr25416-2b"
+run_dump_test "pr25416-2a"
+run_dump_test "pr25416-2b"
+run_dump_test "pr25416-3"
+run_dump_test "pr25416-4"
+run_dump_test "pr26018"
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
return
run_dump_test "pr17935-2"
run_dump_test "pr18160"
run_dump_test "pr18176"
-run_dump_test "pr18801"
+run_dump_test "pr18801a"
+run_dump_test "pr18801b"
run_dump_test "pr18815"
run_dump_test "pr19013"
run_dump_test "pr19013-x32"
global PLT_CFLAGS
# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
global NOPIE_CFLAGS NOPIE_LDFLAGS
+# Add $NOCF_PROTECTION_CFLAGS if -fcf-protection=none is required.
+global NOCF_PROTECTION_CFLAGS
# Must be native with the C compiler
-if { [isnative] && [which $CC] != 0 } {
+if { [isnative] && [check_compiler_available] } {
run_cc_link_tests {
{"Helper X32 DSO from x86-64 object" "" "-m64 -fPIC -g"
{simple.c} {} "libsimple.a"}
{{objdump {-dw} pr19319.dd}} \
"pr19319" \
] \
+ [list \
+ "Build pr24276.so" \
+ "-shared -nostdlib -nostartfiles \
+ -Ltmpdir $srcdir/$subdir/pr24276.dso" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr19319b.S } \
+ {{warning_output pr24276.warn}} \
+ "pr24276.so" \
+ ] \
[list \
"Build property 1" \
"" \
] \
[list \
"Build pr22001-1a" \
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1b.c } \
{{error_output "pr22001-1a.err"}} \
] \
[list \
"Build pr21997-1a" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr21997-1b.c } \
{{error_output "pr21997-1a.err"}} \
] \
[list \
"Build pr22791-1" \
- "-pie -Wl,--no-as-needed tmpdir/pr22791-1.so" \
+ "-pie -Wl,--no-as-needed,-z,notext tmpdir/pr22791-1.so" \
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22791-1b.s } \
{{error_output "pr22791-1.err"}} \
]
if {[istarget "x86_64-*-linux*-gnux32"]} {
+ run_cc_link_tests [list \
+ [list \
+ "Build pr25416-5b.o (GDesc -maddress-mode=short)" \
+ "" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5b.s } \
+ ] \
+ [list \
+ "Build pr25416-5b.so (GDesc -> IE -maddress-mode=short)" \
+ "-shared" \
+ "-fPIC -Wa,-mx86-used-note=yes" \
+ { pr25416-5b.s pr25416-5d.s } \
+ {} \
+ "pr25416-5b.so" \
+ ] \
+ [list \
+ "Build pr25416-5c.o (GDesc -maddress-mode=long)" \
+ "" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5c.s } \
+ ] \
+ [list \
+ "Build pr25416-5c.so (GDesc -> IE -maddress-mode=long)" \
+ "-shared" \
+ "-fPIC -Wa,-mx86-used-note=yes" \
+ { pr25416-5c.s pr25416-5d.s } \
+ {} \
+ "pr25416-5c.so" \
+ ] \
+ [list \
+ "Build pr25416-5d.so (GDesc -maddress-mode=short)" \
+ "-shared" \
+ "-fPIC -Wa,-mx86-used-note=yes" \
+ { pr25416-5b.s pr25416-5e.s } \
+ {} \
+ "pr25416-5d.so" \
+ ] \
+ [list \
+ "Build pr25416-5d.o (IE -maddress-mode=short)" \
+ "" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5d.s } \
+ ] \
+ ]
+
run_ld_link_exec_tests [list \
[list \
"Run pr22001-1b" \
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
"-Wa,-mx86-used-note=yes" \
{ pr22001-1c.c } \
"pr22001-1b" \
] \
[list \
"Run pr21997-1b" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
"-Wa,-mx86-used-note=yes" \
{ pr21997-1c.c } \
"pr21997-1b" \
"pass.out" \
"$NOPIE_CFLAGS" \
] \
+ [list \
+ "Run pr25416-5a (GDesc -> IE -maddress-mode=short)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr25416-5b.so" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5a" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr25416-5b (GDesc -> LE -maddress-mode=short" \
+ "$NOPIE_LDFLAGS tmpdir/pr25416-5b.o tmpdir/pr25416-5d.o" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5b" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr25416-5c (GDesc -> IE -maddress-mode=long)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr25416-5c.so" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5c" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr25416-5d (GDesc -> LE -maddress-mode=long)" \
+ "$NOPIE_LDFLAGS tmpdir/pr25416-5c.o tmpdir/pr25416-5d.o" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5d" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr25416-5e (GDesc -maddress-mode=short)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr25416-5d.so" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5e" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr25416-5f (PIE GDesc -> LE -maddress-mode=short)" \
+ "-pie -Wl,-z,notext tmpdir/pr25416-5b.o tmpdir/pr25416-5d.o" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5f" \
+ "pass.out" \
+ ] \
+ [list \
+ "Run pr25416-5g (PIE GDesc -> LE -maddress-mode=long)" \
+ "-pie -Wl,-z,notext tmpdir/pr25416-5c.o tmpdir/pr25416-5d.o" \
+ "-Wa,-mx86-used-note=yes" \
+ { pr25416-5a.c } \
+ "pr25416-5g" \
+ "pass.out" \
+ ] \
]
} else {
run_cc_link_tests [list \
"$NOPIE_CFLAGS" \
] \
[list \
- "Build pr22842" \
+ "Run pr22842" \
"-pie -Wl,--no-as-needed tmpdir/pr22842.so" \
"-Wa,-mx86-used-note=yes" \
{ pr22842b.S } \
"pr22842" \
"pass.out" \
] \
+ [list \
+ "Run pr23997" \
+ "" \
+ "" \
+ { pr23997a.s pr23997b.c pr23997c.c } \
+ "pr23997" \
+ "pass.out" \
+ ] \
]
# Run-time tests which require working ifunc attribute support.
"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt \
-z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes" \
+ "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
{ plt-main5.c } \
{{objdump {-drw} plt-main-bnd.dd}} \
"plt-main-bnd" \
"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie \
-z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
+ "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
{ plt-main5.c } \
{{objdump {-drw} plt-main-bnd.dd}} \
"plt-main-pie-bnd" \
"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now \
-z noseparate-code -z max-page-size=0x200000" \
- "-Wa,-mx86-used-note=yes" \
+ "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
{ plt-main5.c } \
{{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
"plt-main-bnd-now" \
"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie \
-z noseparate-code -z max-page-size=0x200000" \
- "-fPIC -Wa,-mx86-used-note=yes" \
+ "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \
{ plt-main5.c } \
{{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
"plt-main-pie-bnd-now" \