gas: Fix some x86_64 testcases for Solaris not using R_X86_64_PLT32 [PR25732]
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 1 Apr 2020 12:10:34 +0000 (14:10 +0200)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 1 Apr 2020 12:10:34 +0000 (14:10 +0200)
As reported in PR gas/25732, some testcases currently FAIL on
Solaris/x86:

FAIL: x86-64 branch 2
FAIL: x86-64 branch 3
FAIL: x86-64 MPX branch
FAIL: x86-64 branch with BND prefix
FAIL: x86-64 jump

Since https://sourceware.org/ml/binutils/2019-03/msg00163.html, gas
doesn't emit R_X86_64_PLT32 as branch marker on Solaris.  Since the
testsuite lacks a way to preprocess dump files, adjusted copies of the
affected dumps are now used on Solaris.  Unfortunately, those dumps
weren't adapted when the original testcases were changed or other
testcases started to differ between non-Solaris and Solaris targets.

The following patch fixes that, re-syncing the affected dump files or
creating new Solaris-specific ones.

Tested on i386-pc-solaris2.11, x86_64-pc-solaris2.11,
x86_64-pc-linux-gnu, and i686-pc-linux-gnu.

PR gas/25732
* testsuite/gas/i386/solaris/x86-64-branch-2.d: New file.
* testsuite/gas/i386/solaris/x86-64-branch-3.d: New file.
* testsuite/gas/i386/solaris/x86-64-jump.d: Incorporate changes to
testsuite/gas/i386/x86-64-jump.d.
* gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d:
Incorporate changes to
gas/testsuite/gas/i386/x86-64-mpx-branch-1.d.
* testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d : Incorporate
changes to testsuite/gas/i386/x86-64-mpx-branch-2.d.
* testsuite/gas/i386/x86-64-branch-2.d: Skip on *-*-solaris*.
* testsuite/gas/i386/x86-64-branch-3.d: Likewise.

gas/ChangeLog
gas/testsuite/gas/i386/solaris/x86-64-branch-2.d [new file with mode: 0644]
gas/testsuite/gas/i386/solaris/x86-64-branch-3.d [new file with mode: 0644]
gas/testsuite/gas/i386/solaris/x86-64-jump.d
gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d
gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d
gas/testsuite/gas/i386/x86-64-branch-2.d
gas/testsuite/gas/i386/x86-64-branch-3.d

index 673d03fe10779e824febb5ea13c98e506796e712..2d68a2741d3628a9fb192095ce367f1333697fc7 100644 (file)
@@ -1,3 +1,18 @@
+2020-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR gas/25732
+       * testsuite/gas/i386/solaris/x86-64-branch-2.d: New file.
+       * testsuite/gas/i386/solaris/x86-64-branch-3.d: New file.
+       * testsuite/gas/i386/solaris/x86-64-jump.d: Incorporate changes to
+       testsuite/gas/i386/x86-64-jump.d.
+       * gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d:
+       Incorporate changes to
+       gas/testsuite/gas/i386/x86-64-mpx-branch-1.d.
+       * testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d : Incorporate
+       changes to testsuite/gas/i386/x86-64-mpx-branch-2.d.
+       * testsuite/gas/i386/x86-64-branch-2.d: Skip on *-*-solaris*.
+       * testsuite/gas/i386/x86-64-branch-3.d: Likewise.
+
 2020-03-31  Maciej W. Rozycki  <macro@linux-mips.org>
 
        PR 25611
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-branch-2.d b/gas/testsuite/gas/i386/solaris/x86-64-branch-2.d
new file mode 100644 (file)
index 0000000..7c460c7
--- /dev/null
@@ -0,0 +1,20 @@
+#as: -J
+#objdump: -dwr
+#source: ../x86-64-branch-2.s
+#name: x86-64 branch 2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <bar-0xb>:
+[      ]*[a-f0-9]+:    66 e9 00 00             jmpw   4 <bar-0x7>      2: R_X86_64_PC16        foo-0x2
+[      ]*[a-f0-9]+:    66 48 e9 00 00 00 00    data16 jmpq b <bar>     7: R_X86_64_PC32        foo-0x4
+
+0+b <bar>:
+[      ]*[a-f0-9]+:    89 c3                   mov    %eax,%ebx
+[      ]*[a-f0-9]+:    66 e8 00 00             callw  11 <bar\+0x6>    f: R_X86_64_PC16        foo-0x2
+[      ]*[a-f0-9]+:    66 48 e8 00 00 00 00    data16 callq 18 <bar\+0xd>      14: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    66 c3                   retw *
+[      ]*[a-f0-9]+:    66 c2 08 00             retw   \$0x8
+#pass
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-branch-3.d b/gas/testsuite/gas/i386/solaris/x86-64-branch-3.d
new file mode 100644 (file)
index 0000000..d4852f1
--- /dev/null
@@ -0,0 +1,22 @@
+#as: -J -mintel64
+#objdump: -dwr -Mintel64
+#source: ../x86-64-branch-3.s
+#name: x86-64 branch 3
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <bar-0xd>:
+[      ]*[a-f0-9]+:    66 e9 00 00 00 00       data16 jmpq 6 <bar-0x7> 2: R_X86_64_PC32        foo-0x4
+[      ]*[a-f0-9]+:    66 48 e9 00 00 00 00    data16 rex\.W jmpq d <bar>      9: R_X86_64_PC32        foo-0x4
+
+0+d <bar>:
+[      ]*[a-f0-9]+:    89 c3                   mov    %eax,%ebx
+[      ]*[a-f0-9]+:    66 e8 00 00 00 00       data16 callq 15 <bar\+0x8>      11: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    66 48 e8 00 00 00 00    data16 rex\.W callq 1c <bar\+0xf>       18: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    66 c7 f8 00 00          xbeginw 21 <bar\+0x14>  1f: R_X86_64_PC16       foo-0x2
+[      ]*[a-f0-9]+:    66 48 c7 f8 00 00 00 00         data16 xbeginq 29 <bar\+0x1c>   25: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    48 ff 18                lcallq \*\(%rax\)
+[      ]*[a-f0-9]+:    48 ff 29                ljmpq  \*\(%rcx\)
+#pass
index 861f1b47a0899dddabc3794068cec17265667576..723ef28e93556abc1f5c63da68b6123afe3ebbd7 100644 (file)
@@ -31,14 +31,22 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    e3 00                   jrcxz  0x69     68: R_X86_64_PC8        \$\+0x1
 [      ]*[a-f0-9]+:    90                      nop
 [      ]*[a-f0-9]+:    66 ff 13                callw  \*\(%rbx\)
+[      ]*[a-f0-9]+:    66 ff 1b                lcallw \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 1b                   lcall  \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 13                   callq  \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 13                   callq  \*\(%rbx\)
 [      ]*[a-f0-9]+:    ff 1b                   lcall  \*\(%rbx\)
 [      ]*[a-f0-9]+:    66 ff 23                jmpw   \*\(%rbx\)
+[      ]*[a-f0-9]+:    66 ff 2b                ljmpw  \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 2b                   ljmp   \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 23                   jmpq   \*\(%rbx\)
+[      ]*[a-f0-9]+:    ff 23                   jmpq   \*\(%rbx\)
 [      ]*[a-f0-9]+:    ff 2b                   ljmp   \*\(%rbx\)
-[      ]*[a-f0-9]+:    eb 00                   jmp    0x76
+[      ]*[a-f0-9]+:    eb 00                   jmp    0x[0-9a-f]*
 [      ]*[a-f0-9]+:    90                      nop
-[      ]*[a-f0-9]+:    67 e3 00                jecxz  0x7a
+[      ]*[a-f0-9]+:    67 e3 00                jecxz  0x[0-9a-f]*
 [      ]*[a-f0-9]+:    90                      nop
-[      ]*[a-f0-9]+:    e3 00                   jrcxz  0x7d
+[      ]*[a-f0-9]+:    e3 00                   jrcxz  0x[0-9a-f]*
 [      ]*[a-f0-9]+:    90                      nop
-[      ]*[a-f0-9]+:    eb 00                   jmp    0x80
+[      ]*[a-f0-9]+:    eb 00                   jmp    0x[0-9a-f]*
 #pass
index 0c30add118bfbbc696de8093e667715a554a2bf5..23bba67a6e9e727fffbda77b0a5d956783bbf3a1 100644 (file)
@@ -8,22 +8,24 @@
 
 Disassembly of section .text:
 
-0+ <foo1-0xc>:
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 6 <foo1-0x6>  2: R_X86_64_PC32        \*ABS\*\+0x10003c
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq c <foo1>       8: R_X86_64_PC32        \*ABS\*\+0x10003c
+0+ <foo1-0x1c>:
+[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 6 <foo1-0x16> 2: R_X86_64_PC32        \*ABS\*\+0x10003c
+[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq c <foo1-0x10>  8: R_X86_64_PC32        \*ABS\*\+0x10003c
+[      ]*[a-f0-9]+:    66 f2 48 e8 00 00 00 00         data16 bnd callq 14 <foo1-0x8>  10: R_X86_64_PC32       \*ABS\*\+0x10003c
+[      ]*[a-f0-9]+:    66 f2 48 e9 00 00 00 00         data16 bnd jmpq 1c <foo1>       18: R_X86_64_PC32       \*ABS\*\+0x10003c
 
-0+c <foo1>:
-[      ]*[a-f0-9]+:    f2 eb fd                bnd jmp c <foo1>
-[      ]*[a-f0-9]+:    f2 72 fa                bnd jb c <foo1>
-[      ]*[a-f0-9]+:    f2 e8 f4 ff ff ff       bnd callq c <foo1>
-[      ]*[a-f0-9]+:    f2 eb 09                bnd jmp 24 <foo2>
-[      ]*[a-f0-9]+:    f2 72 06                bnd jb 24 <foo2>
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 24 <foo2>
+0+1c <foo1>:
+[      ]*[a-f0-9]+:    f2 eb fd                bnd jmp 1c <foo1>
+[      ]*[a-f0-9]+:    f2 72 fa                bnd jb 1c <foo1>
+[      ]*[a-f0-9]+:    f2 e8 f4 ff ff ff       bnd callq 1c <foo1>
+[      ]*[a-f0-9]+:    f2 eb 09                bnd jmp 34 <foo2>
+[      ]*[a-f0-9]+:    f2 72 06                bnd jb 34 <foo2>
+[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 34 <foo2>
 
-0+24 <foo2>:
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 2a <foo2\+0x6> 26: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 31 <foo2\+0xd>   2d: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 37 <foo2\+0x13>       33: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 3d <foo2\+0x19>        39: R_X86_64_PLT32      foo-0x4
-[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 44 <foo2\+0x20>  40: R_X86_64_PLT32      foo-0x4
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 4a <foo2\+0x26>       46: R_X86_64_PLT32      foo-0x4
+0+34 <foo2>:
+[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 3a <foo2\+0x6> 36: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 41 <foo2\+0xd>   3d: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 47 <foo2\+0x13>       43: R_X86_64_PC32       foo-0x4
+[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 4d <foo2\+0x19>        49: R_X86_64_PLT32      foo-0x4
+[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 54 <foo2\+0x20>  50: R_X86_64_PLT32      foo-0x4
+[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 5a <foo2\+0x26>       56: R_X86_64_PLT32      foo-0x4
index db47ec6f6ae25ad75a894f73e27a3b6e9100f9f4..b6ff92c170031462dd5422a155c5ff738f662900 100644 (file)
@@ -1,29 +1,5 @@
 #as: -J -madd-bnd-prefix
-#source: ../x86-64-mpx-branch-2.s
+#source: ../x86-64-mpx-branch-1.s
 #objdump: -dwr
 #name: x86-64 branch with BND prefix
-
-.*: +file format .*
-
-
-Disassembly of section .text:
-
-0+ <foo1-0xc>:
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 6 <foo1-0x6>  2: R_X86_64_PC32        \*ABS\*\+0x10003c
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq c <foo1>       8: R_X86_64_PC32        \*ABS\*\+0x10003c
-
-0+c <foo1>:
-[      ]*[a-f0-9]+:    f2 eb fd                bnd jmp c <foo1>
-[      ]*[a-f0-9]+:    f2 72 fa                bnd jb c <foo1>
-[      ]*[a-f0-9]+:    f2 e8 f4 ff ff ff       bnd callq c <foo1>
-[      ]*[a-f0-9]+:    f2 eb 09                bnd jmp 24 <foo2>
-[      ]*[a-f0-9]+:    f2 72 06                bnd jb 24 <foo2>
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 24 <foo2>
-
-0+24 <foo2>:
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 2a <foo2\+0x6> 26: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 31 <foo2\+0xd>   2d: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 37 <foo2\+0x13>       33: R_X86_64_PC32       foo-0x4
-[      ]*[a-f0-9]+:    f2 e9 00 00 00 00       bnd jmpq 3d <foo2\+0x19>        39: R_X86_64_PLT32      foo-0x4
-[      ]*[a-f0-9]+:    f2 0f 82 00 00 00 00    bnd jb 44 <foo2\+0x20>  40: R_X86_64_PLT32      foo-0x4
-[      ]*[a-f0-9]+:    f2 e8 00 00 00 00       bnd callq 4a <foo2\+0x26>       46: R_X86_64_PLT32      foo-0x4
+#dump: x86-64-mpx-branch-1.d
index be9aae412d4edfa8d0d46db7273a386561bdb77f..612cb69115d2456b2221ac2b825a73c7d6466d70 100644 (file)
@@ -1,6 +1,7 @@
 #as: -J
 #objdump: -dwr
 #name: x86-64 branch 2
+#notarget: *-*-solaris*
 
 .*: +file format .*
 
index 1d0e64e4ebba4bfd52d80ff12bd560e4827288a0..48fef0083d82055ee80ca132df4e0f3b04386850 100644 (file)
@@ -1,6 +1,7 @@
 #as: -J -mintel64
 #objdump: -dwr -Mintel64
 #name: x86-64 branch 3
+#notarget: *-*-solaris*
 
 .*: +file format .*