mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 10:03:47 +08:00
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:
parent
a2c02fa6ee
commit
c9eb960580
@ -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
|
||||
|
@ -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
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
@ -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]+|)
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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-*-*
|
||||
|
||||
|
@ -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*
|
||||
|
||||
|
@ -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*
|
||||
|
||||
|
@ -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*
|
||||
|
||||
|
@ -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*
|
||||
|
||||
|
@ -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 .*
|
||||
|
@ -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 .*
|
||||
|
@ -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 .*
|
||||
|
@ -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 .*
|
||||
|
@ -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 .*
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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" \
|
||||
|
Loading…
Reference in New Issue
Block a user