ld: Adjust x86 and x86-64 tests for -z mark-plt
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 6 Jan 2024 14:43:04 +0000 (06:43 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 6 Jan 2024 15:10:15 +0000 (07:10 -0800)
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.

26 files changed:
ld/testsuite/ld-elf/indirect-extern-access-2.rd
ld/testsuite/ld-elf/pr23161d.rd
ld/testsuite/ld-ifunc/ifunc-16-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-16-x86-64.d
ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-2-x86-64.d
ld/testsuite/ld-ifunc/ifunc-20-x86-64.d
ld/testsuite/ld-ifunc/ifunc-25c-x86.d
ld/testsuite/ld-ifunc/ifunc-5b-x86-64.d
ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
ld/testsuite/ld-ifunc/pr17154-x86-64.d
ld/testsuite/ld-x86-64/dt-relr-1a-x32.d
ld/testsuite/ld-x86-64/dt-relr-1a.d
ld/testsuite/ld-x86-64/dt-relr-1b-x32.d
ld/testsuite/ld-x86-64/dt-relr-1b.d
ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2a.d
ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3a.d
ld/testsuite/ld-x86-64/pr19636-2d.d
ld/testsuite/ld-x86-64/pr19636-2e.d
ld/testsuite/ld-x86-64/pr19636-2f.d
ld/testsuite/ld-x86-64/pr19636-2l.d
ld/testsuite/ld-x86-64/x86-64.exp

index 9c7d72f..89c9e2e 100644 (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
index 338cfad..e7756b3 100644 (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
index db6c0e2..32ab488 100644 (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-*-*
 
index d69626d..06c1ed9 100644 (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-*-*
 
index e038b37..6d98d66 100644 (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-*-*
 
index 14a5728..4d2f4bf 100644 (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-*-*
 
index 47db012..8b248d3 100644 (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-*-*
 
index 2a1f269..8eb7583 100644 (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-*-*
 
index 0ea46a6..5cd12aa 100644 (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-*-*
index e2401a9..c278c57 100644 (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]+|)
index 02aff6b..715271f 100644 (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-*-*
 
index f692027..4d2ae84 100644 (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-*-*
 
index 9091842..fbe6e22 100644 (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-*-*
 
index 3b603cd..8f2f6fc 100644 (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*
 
index abf2352..218594d 100644 (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*
 
index 05c376c..0ddffc8 100644 (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*
 
index 703b68f..4e462dd 100644 (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*
 
index e4e6fab..31201c6 100644 (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 .*
index 6f8ec7e..7f66eed 100644 (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 .*
index b738e95..0ba3d07 100644 (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 .*
index a0ef8b1..306592a 100644 (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 .*
index 092992b..75c8787 100644 (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 .*
index 32a326c..5d98241 100644 (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:
index 528bce1..a3fe23d 100644 (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:
index 8c23c0b..3cb00d7 100644 (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
 
index ebb3d88..0af9f04 100644 (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" \