From 15d47c3a70526cce7bb6a9dcdbd1c19c40247e32 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Wed, 1 Apr 2020 14:10:34 +0200 Subject: [PATCH] gas: Fix some x86_64 testcases for Solaris not using R_X86_64_PLT32 [PR25732] 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 | 15 ++++++++ .../gas/i386/solaris/x86-64-branch-2.d | 20 +++++++++++ .../gas/i386/solaris/x86-64-branch-3.d | 22 ++++++++++++ gas/testsuite/gas/i386/solaris/x86-64-jump.d | 16 ++++++--- .../gas/i386/solaris/x86-64-mpx-branch-1.d | 36 ++++++++++--------- .../gas/i386/solaris/x86-64-mpx-branch-2.d | 28 ++------------- gas/testsuite/gas/i386/x86-64-branch-2.d | 1 + gas/testsuite/gas/i386/x86-64-branch-3.d | 1 + 8 files changed, 92 insertions(+), 47 deletions(-) create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-branch-2.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-branch-3.d diff --git a/gas/ChangeLog b/gas/ChangeLog index 673d03fe107..2d68a2741d3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,18 @@ +2020-04-01 Rainer Orth + + 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 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 index 00000000000..7c460c749b4 --- /dev/null +++ b/gas/testsuite/gas/i386/solaris/x86-64-branch-2.d @@ -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+ : +[ ]*[a-f0-9]+: 66 e9 00 00 jmpw 4 2: R_X86_64_PC16 foo-0x2 +[ ]*[a-f0-9]+: 66 48 e9 00 00 00 00 data16 jmpq b 7: R_X86_64_PC32 foo-0x4 + +0+b : +[ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx +[ ]*[a-f0-9]+: 66 e8 00 00 callw 11 f: R_X86_64_PC16 foo-0x2 +[ ]*[a-f0-9]+: 66 48 e8 00 00 00 00 data16 callq 18 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 index 00000000000..d4852f10181 --- /dev/null +++ b/gas/testsuite/gas/i386/solaris/x86-64-branch-3.d @@ -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+ : +[ ]*[a-f0-9]+: 66 e9 00 00 00 00 data16 jmpq 6 2: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: 66 48 e9 00 00 00 00 data16 rex\.W jmpq d 9: R_X86_64_PC32 foo-0x4 + +0+d : +[ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx +[ ]*[a-f0-9]+: 66 e8 00 00 00 00 data16 callq 15 11: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: 66 48 e8 00 00 00 00 data16 rex\.W callq 1c 18: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: 66 c7 f8 00 00 xbeginw 21 1f: R_X86_64_PC16 foo-0x2 +[ ]*[a-f0-9]+: 66 48 c7 f8 00 00 00 00 data16 xbeginq 29 25: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: 48 ff 18 lcallq \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 29 ljmpq \*\(%rcx\) +#pass diff --git a/gas/testsuite/gas/i386/solaris/x86-64-jump.d b/gas/testsuite/gas/i386/solaris/x86-64-jump.d index 861f1b47a08..723ef28e935 100644 --- a/gas/testsuite/gas/i386/solaris/x86-64-jump.d +++ b/gas/testsuite/gas/i386/solaris/x86-64-jump.d @@ -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 diff --git a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d index 0c30add118b..23bba67a6e9 100644 --- a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d +++ b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d @@ -8,22 +8,24 @@ Disassembly of section .text: -0+ : -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 6 2: R_X86_64_PC32 \*ABS\*\+0x10003c -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq c 8: R_X86_64_PC32 \*ABS\*\+0x10003c +0+ : +[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 6 2: R_X86_64_PC32 \*ABS\*\+0x10003c +[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq c 8: R_X86_64_PC32 \*ABS\*\+0x10003c +[ ]*[a-f0-9]+: 66 f2 48 e8 00 00 00 00 data16 bnd callq 14 10: R_X86_64_PC32 \*ABS\*\+0x10003c +[ ]*[a-f0-9]+: 66 f2 48 e9 00 00 00 00 data16 bnd jmpq 1c 18: R_X86_64_PC32 \*ABS\*\+0x10003c -0+c : -[ ]*[a-f0-9]+: f2 eb fd bnd jmp c -[ ]*[a-f0-9]+: f2 72 fa bnd jb c -[ ]*[a-f0-9]+: f2 e8 f4 ff ff ff bnd callq c -[ ]*[a-f0-9]+: f2 eb 09 bnd jmp 24 -[ ]*[a-f0-9]+: f2 72 06 bnd jb 24 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 24 +0+1c : +[ ]*[a-f0-9]+: f2 eb fd bnd jmp 1c +[ ]*[a-f0-9]+: f2 72 fa bnd jb 1c +[ ]*[a-f0-9]+: f2 e8 f4 ff ff ff bnd callq 1c +[ ]*[a-f0-9]+: f2 eb 09 bnd jmp 34 +[ ]*[a-f0-9]+: f2 72 06 bnd jb 34 +[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 34 -0+24 : -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 2a 26: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 31 2d: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 37 33: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 3d 39: R_X86_64_PLT32 foo-0x4 -[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 44 40: R_X86_64_PLT32 foo-0x4 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 4a 46: R_X86_64_PLT32 foo-0x4 +0+34 : +[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 3a 36: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 41 3d: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 47 43: R_X86_64_PC32 foo-0x4 +[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 4d 49: R_X86_64_PLT32 foo-0x4 +[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 54 50: R_X86_64_PLT32 foo-0x4 +[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 5a 56: R_X86_64_PLT32 foo-0x4 diff --git a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d index db47ec6f6ae..b6ff92c1700 100644 --- a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d +++ b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d @@ -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+ : -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 6 2: R_X86_64_PC32 \*ABS\*\+0x10003c -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq c 8: R_X86_64_PC32 \*ABS\*\+0x10003c - -0+c : -[ ]*[a-f0-9]+: f2 eb fd bnd jmp c -[ ]*[a-f0-9]+: f2 72 fa bnd jb c -[ ]*[a-f0-9]+: f2 e8 f4 ff ff ff bnd callq c -[ ]*[a-f0-9]+: f2 eb 09 bnd jmp 24 -[ ]*[a-f0-9]+: f2 72 06 bnd jb 24 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 24 - -0+24 : -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 2a 26: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 31 2d: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 37 33: R_X86_64_PC32 foo-0x4 -[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmpq 3d 39: R_X86_64_PLT32 foo-0x4 -[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 44 40: R_X86_64_PLT32 foo-0x4 -[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd callq 4a 46: R_X86_64_PLT32 foo-0x4 +#dump: x86-64-mpx-branch-1.d diff --git a/gas/testsuite/gas/i386/x86-64-branch-2.d b/gas/testsuite/gas/i386/x86-64-branch-2.d index be9aae412d4..612cb69115d 100644 --- a/gas/testsuite/gas/i386/x86-64-branch-2.d +++ b/gas/testsuite/gas/i386/x86-64-branch-2.d @@ -1,6 +1,7 @@ #as: -J #objdump: -dwr #name: x86-64 branch 2 +#notarget: *-*-solaris* .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-branch-3.d b/gas/testsuite/gas/i386/x86-64-branch-3.d index 1d0e64e4ebb..48fef0083d8 100644 --- a/gas/testsuite/gas/i386/x86-64-branch-3.d +++ b/gas/testsuite/gas/i386/x86-64-branch-3.d @@ -1,6 +1,7 @@ #as: -J -mintel64 #objdump: -dwr -Mintel64 #name: x86-64 branch 3 +#notarget: *-*-solaris* .*: +file format .* -- 2.30.2