ld/x86: reduce testsuite dependency on system object files

PR ld/30722
Tests looking for certain .note-section recorded properties may not
involve object files from the underlying platform (e.g. via using the C
compiler for linking): Such object files may themselves have similar
note sections, and hence they may influence the overall outcome.

For now convert just the tests known to be affected by crt*.o coming
with "ISA v3 needed" notes. Eventually other tests ought to be
converted, too.
This commit is contained in:
Jan Beulich 2023-11-07 13:58:32 +01:00
parent 50df0f438e
commit eab996435f
4 changed files with 131 additions and 94 deletions

View File

@ -0,0 +1,25 @@
.ifdef __64_bit__
.equ ALIGN, 3
.else
.equ ALIGN, 2
.endif
.section ".note.gnu.property", "a"
.p2align ALIGN
.long 1f - 0f /* name length. */
.long 3f - 1f /* data length. */
/* NT_GNU_PROPERTY_TYPE_0 */
.long 5 /* note type. */
0:
.asciz "GNU" /* vendor name. */
1:
.p2align ALIGN
/* GNU_PROPERTY_STACK_SIZE */
.long 1 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.dc.a 0x800000 /* Stack size. */
5:
.p2align ALIGN
3:
.section .note.GNU-stack

View File

@ -1,8 +1,9 @@
#ifdef __LP64__
# define ALIGN 3
#else
# define ALIGN 2
#endif
.ifdef __64_bit__
.equ ALIGN, 3
.else
.equ ALIGN, 2
.endif
.section ".note.gnu.property", "a"
.p2align ALIGN
.long 1f - 0f /* name length. */
@ -24,14 +25,14 @@
.long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
.long 0xa /* GNU_PROPERTY_X86_ISA_1_V2 | GNU_PROPERTY_X86_ISA_1_V4 */
5:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
.long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
.long 0x3 /* GNU_PROPERTY_X86_ISA_1_BASELINE | GNU_PROPERTY_X86_ISA_1_V2 */
5:
.p2align ALIGN
3:

View File

@ -1,8 +1,9 @@
#ifdef __LP64__
# define ALIGN 3
#else
# define ALIGN 2
#endif
.ifdef __64_bit__
.equ ALIGN, 3
.else
.equ ALIGN, 2
.endif
.section ".note.gnu.property", "a"
.p2align ALIGN
.long 1f - 0f /* name length. */
@ -17,14 +18,14 @@
.long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
.long 0x3 /* GNU_PROPERTY_X86_ISA_1_BASELINE | GNU_PROPERTY_X86_ISA_1_V2 */
5:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
.long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
.long 0xa /* GNU_PROPERTY_X86_ISA_1_V2 | GNU_PROPERTY_X86_ISA_1_V4 */
5:
.p2align ALIGN
3:

View File

@ -1092,86 +1092,6 @@ if { [isnative] && [check_compiler_available] } {
{{readelf {-n} property-2.r}} \
"property-2.so" \
] \
[list \
"Build property 3" \
"" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-stack.S property-x86-1.S} \
{{readelf {-n} property-3.r}} \
"property-3" \
] \
[list \
"Build property 3 (.o)" \
"-r -nostdlib" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-x86-1.S property-stack.S} \
{{readelf {-n} property-3a.r}} \
"property-3.o" \
] \
[list \
"Build property 3 (.so)" \
"-shared" \
"-fPIC -Wa,-mx86-used-note=yes" \
{property-x86-1.S pass.c property-stack.S} \
{{readelf {-n} property-3.r}} \
"property-3.so" \
] \
[list \
"Build property 4" \
"" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-stack.S property-x86-1.S property-x86-2.S} \
{{readelf {-n} property-4.r}} \
"property-4" \
] \
[list \
"Build property 4 (.o)" \
"-r -nostdlib" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-x86-2.S property-x86-1.S property-stack.S} \
{{readelf {-n} property-4a.r}} \
"property-4.o" \
] \
[list \
"Build property 4 (.so)" \
"-shared" \
"-fPIC -Wa,-mx86-used-note=yes" \
{property-x86-2.S property-x86-1.S pass.c property-stack.S} \
{{readelf {-n} property-4.r}} \
"property-4.so" \
] \
[list \
"Build property 4 (-Wl,-z,stack-size=0)" \
"-Wl,-z,stack-size=0" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-stack.S property-x86-1.S property-x86-2.S} \
{{readelf {-n} property-4.r}} \
"property-4" \
] \
[list \
"Build property 5" \
"-Wl,-z,stack-size=0x900000" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-stack.S property-x86-1.S property-x86-2.S} \
{{readelf {-n} property-5.r}} \
"property-5" \
] \
[list \
"Build property 5 (.o)" \
"-r -nostdlib -Wl,-z,stack-size=0x900000" \
"-Wa,-mx86-used-note=yes" \
{pass.c property-x86-2.S property-x86-1.S property-stack.S} \
{{readelf {-n} property-5a.r}} \
"property-5.o" \
] \
[list \
"Build property 5 (.so)" \
"-shared -Wl,-z,stack-size=0x900000" \
"-fPIC -Wa,-mx86-used-note=yes" \
{property-x86-2.S property-x86-1.S pass.c property-stack.S} \
{{readelf {-n} property-5.r}} \
"property-5.so" \
] \
[list \
"Build property-6.so" \
"-shared" \
@ -2179,6 +2099,96 @@ run_ld_link_tests [list \
{{readelf -SW plt2.rd} {objdump -dwr plt2.dd}} \
"plt2" \
] \
[list \
"Build property 3" \
"" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-stk.s property-x86-1.s} \
{{readelf -n property-3.r}} \
"property-3" \
] \
[list \
"Build property 3 (.o)" \
"-r -nostdlib" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-1.s property-stk.s} \
{{readelf -n property-3a.r}} \
"property-3.o" \
] \
[list \
"Build property 3 (.so)" \
"-shared" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-1.s property-stk.s} \
{{readelf -n property-3.r}} \
"property-3.so" \
] \
[list \
"Build property 4" \
"" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-stk.s property-x86-1.s property-x86-2.s} \
{{readelf -n property-4.r}} \
"property-4" \
] \
[list \
"Build property 4 (.o)" \
"-r -nostdlib" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-2.s property-x86-1.s property-stk.s} \
{{readelf {-n} property-4a.r}} \
"property-4.o" \
] \
[list \
"Build property 4 (.so)" \
"-shared" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-2.s property-x86-1.s property-stk.s} \
{{readelf -n property-4.r}} \
"property-4.so" \
] \
[list \
"Build property 4 (-z stack-size=0)" \
"-z stack-size=0" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-stk.s property-x86-1.s property-x86-2.s} \
{{readelf -n property-4.r}} \
"property-4" \
] \
[list \
"Build property 5" \
"-z stack-size=0x900000" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-stk.s property-x86-1.s property-x86-2.s} \
{{readelf -n property-5.r}} \
"property-5" \
] \
[list \
"Build property 5 (.o)" \
"-r -nostdlib -z stack-size=0x900000" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-2.s property-x86-1.s property-stk.s} \
{{readelf {-n} property-5a.r}} \
"property-5.o" \
] \
[list \
"Build property 5 (.so)" \
"-shared -z stack-size=0x900000" \
"" \
"--64 -defsym __64_bit__=1 -mx86-used-note=yes" \
{property-x86-2.s property-x86-1.s property-stk.s} \
{{readelf -n property-5.r}} \
"property-5.so" \
] \
[list \
"Build pr21626.so" \
"-shared -melf_x86_64" \