ld: Adjust x86 and x86-64 tests for -z mark-plt

To support -z mark-plt enabled by default, adjust x86 tests to accept
non-zero r_addend for JUMP_SLOT relocation and pass -z nomark-plt to
x86-64 tests if -z mark-plt changes the expected outputs.

	* testsuite/ld-elf/indirect-extern-access-2.rd: Allow non-zero
	r_addend for JUMP_SLOT relocation.
	* testsuite/ld-elf/pr23161d.rd: Likewise.
	* testsuite/ld-ifunc/ifunc-25c-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-16-x86-64-now.d: Pass -z nomark-plt
	to linker.
	* testsuite/ld-ifunc/ifunc-16-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise.
	* testsuite/ld-ifunc/ifunc-2-local-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise.
	* testsuite/ld-ifunc/ifunc-2-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-20-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-5b-x86-64.d: Likewise.
	* testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise.
	* testsuite/ld-ifunc/pr17154-x86-64.d: Likewise.
	* testsuite/ld-x86-64/dt-relr-1a-x32.d: Likewise.
	* testsuite/ld-x86-64/dt-relr-1a.d: Likewise.
	* testsuite/ld-x86-64/dt-relr-1b-x32.d: Likewise.
	* testsuite/ld-x86-64/dt-relr-1b.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2a.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3a.d: Likewise.
	* testsuite/ld-x86-64/pr19636-2d.d: Likewise.
	* testsuite/ld-x86-64/pr19636-2e.d: Likewise.
	* testsuite/ld-x86-64/pr19636-2f.d: Likewise.
	* testsuite/ld-x86-64/pr19636-2l.d: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Pass -z nomark-plt to linker
	in 6 tests.
This commit is contained in:
H.J. Lu 2024-01-06 06:43:04 -08:00
parent a2c02fa6ee
commit c9eb960580
26 changed files with 31 additions and 25 deletions

View File

@ -1,5 +1,5 @@
#...
[a-f0-9]+ +[0-9a-f]+ +R_.*_JUMP_SLO(T|) +[a-f0-9]+ +indirect_extern_access( \+ 0|)
[a-f0-9]+ +[0-9a-f]+ +R_.*_JUMP_SLO(T|) +[a-f0-9]+ +indirect_extern_access( \+ [a-f0-9]+|)
#...
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description

View File

@ -1,6 +1,6 @@
Relocation section '\.rel(a|)\.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+Offset +Info +Type +Sym.* Value +Sym.* Name( \+ Addend|)
[a-f0-9]+ +[0-9a-f]+ +R_.*_JUMP_SLOT +[a-f0-9]+ +foo( \+ 0|)
[a-f0-9]+ +[0-9a-f]+ +R_.*_JUMP_SLOT +[a-f0-9]+ +foo( \+ [a-f0-9]+|)
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name

View File

@ -1,6 +1,6 @@
#source: ifunc-16-x86.s
#as: --64
#ld: -z now -shared -melf_x86_64
#ld: -z now -z nomark-plt -shared -melf_x86_64
#readelf: -r --wide
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: ifunc-16-x86.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -z nomark-plt -shared -melf_x86_64
#readelf: -r --wide
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: ifunc-2-local-x86-64.s
#as: --64
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code -z nomark-plt $NO_DT_RELR_LDFLAGS
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,5 +1,5 @@
#as: --64
#ld: -shared -melf_x86_64 --hash-style=sysv -z noseparate-code
#ld: -shared -melf_x86_64 --hash-style=sysv -z noseparate-code -z nomark-plt
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: ifunc-2-x86-64.s
#as: --64
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code -z nomark-plt $NO_DT_RELR_LDFLAGS
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,5 +1,5 @@
#as: --64
#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code -z nomark-plt
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,5 +1,5 @@
#source: ifunc-20.s
#ld: -shared -m elf_x86_64 -z nocombreloc
#ld: -shared -m elf_x86_64 -z nocombreloc -z nomark-plt
#as: --64
#readelf: -r --wide
#target: x86_64-*-*

View File

@ -9,4 +9,4 @@ Relocation section '.rel(a|).dyn' at offset 0x[0-9a-f]+ contains 1 entry:
Relocation section '.rel(a|).plt' at offset 0x[0-9a-f]+ contains 1 entry:
+Offset +Info +Type +Sym.* Value +Symbol's Name.*
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_(386|X86_64)_JUMP_SLOT +foo\(\) +foo( \+ 0|)
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_(386|X86_64)_JUMP_SLOT +foo\(\) +foo( \+ [0-9a-f]+|)

View File

@ -1,6 +1,6 @@
#source: ifunc-5-x86-64.s
#as: --64
#ld: -melf_x86_64 -shared -z nocombreloc
#ld: -melf_x86_64 -shared -z nocombreloc -z nomark-plt
#readelf: -r --wide
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: pr17154-x86.s
#as: --64
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code -z nomark-plt $NO_DT_RELR_LDFLAGS
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: pr17154-x86.s
#as: --64
#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code -z nomark-plt $NO_DT_RELR_LDFLAGS
#objdump: -dw
#target: x86_64-*-*

View File

@ -1,6 +1,6 @@
#source: dt-relr-1.s
#as: --x32
#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS
#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nomark-plt
#readelf: -r -s --wide
#target: x86_64-*-linux*

View File

@ -1,6 +1,6 @@
#source: dt-relr-1.s
#as: --64
#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS
#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nomark-plt
#readelf: -r -s --wide
#target: x86_64-*-linux*

View File

@ -1,6 +1,6 @@
#source: dt-relr-1.s
#as: --x32
#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nocombreloc
#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nocombreloc -z nomark-plt
#readelf: -r -s --wide
#target: x86_64-*-linux*

View File

@ -1,6 +1,6 @@
#source: dt-relr-1.s
#as: --64
#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nocombreloc
#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nocombreloc -z nomark-plt
#readelf: -r -s --wide
#target: x86_64-*-linux*

View File

@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --x32
#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
.*: +file format .*

View File

@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --64 -defsym __64_bit__=1
#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
.*: +file format .*

View File

@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --x32
#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
.*: +file format .*

View File

@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --64 -defsym __64_bit__=1
#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
.*: +file format .*

View File

@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
.*: +file format .*

View File

@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
#ld: -shared -m elf_x86_64 --no-dynamic-linker
#ld: -shared -m elf_x86_64 --no-dynamic-linker -z nomark-plt
#readelf : -r --wide --dyn-syms
Relocation section '\.rela\.dyn' at offset [0x0-9a-f]+ contains 2 entries:

View File

@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
#ld: -shared -Bsymbolic -m elf_x86_64 --no-dynamic-linker
#ld: -shared -Bsymbolic -m elf_x86_64 --no-dynamic-linker -z nomark-plt
#readelf : -r --wide --dyn-syms
Relocation section '\.rela\.dyn' at offset [0x0-9a-f]+ contains 2 entries:

View File

@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z dynamic-undefined-weak -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z dynamic-undefined-weak -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS -z nomark-plt
#objdump: -dw
#warning: -z dynamic-undefined-weak ignored

View File

@ -49,6 +49,7 @@ set x86_64tests {
"--64" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" ""
"--64" {tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
@ -70,6 +71,7 @@ set x86_64tests {
"tlsbindesc"}
{"TLS with global dynamic and descriptors"
"-shared -melf_x86_64 --no-ld-generated-unwind-info \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" ""
"--64" {tlsgdesc.s}
{{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text\ -Mintel64 tlsgdesc.dd}}
@ -222,6 +224,7 @@ run_ld_link_tests [list \
[list \
"TLS -fpic -shared transitions" \
"-shared -melf_x86_64 --no-ld-generated-unwind-info \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
$NO_DT_RELR_LDFLAGS" \
"" "--64" \
@ -235,6 +238,7 @@ run_ld_link_tests [list \
[list \
"TLS -fpic -shared transitions with r15 as GOT base" \
"-shared -melf_x86_64 --no-ld-generated-unwind-info \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
$NO_DT_RELR_LDFLAGS" \
"" "--64 -mrelax-relocations=yes" \
@ -248,6 +252,7 @@ run_ld_link_tests [list \
[list \
"TLS descriptor -fpic -shared transitions" \
"-shared -melf_x86_64 --no-ld-generated-unwind-info \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
$NO_DT_RELR_LDFLAGS" \
"" "--64" \
@ -2096,6 +2101,7 @@ run_ld_link_tests [list \
[list \
"basic PLT generation (-z now)" \
"-z now -melf_x86_64 --hash-style=sysv tmpdir/libpltlib.so \
-z nomark-plt \
-z noseparate-code -z max-page-size=0x200000" \
"" \
"--64" \