public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gas: Fix some x86_64 testcases for Solaris not using R_X86_64_PLT32 [PR25732]
@ 2020-04-01 10:46 Rainer Orth
  2020-04-01 10:58 ` H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Rainer Orth @ 2020-04-01 10:46 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 1639 bytes --]

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.

Ok for master?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2020-03-31  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.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gas-solx64-testsuite-pr25732.patch --]
[-- Type: text/x-patch, Size: 8833 bytes --]

# HG changeset patch
# Parent  6fd0216a33b99f01c183bfc56b992fe0316681e4
gas: Fix some x86_64 testcases for Solaris not using R_X86_64_PLT32 (PR gas/25732)

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
--- /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+ <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
--- /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+ <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
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-jump.d b/gas/testsuite/gas/i386/solaris/x86-64-jump.d
--- a/gas/testsuite/gas/i386/solaris/x86-64-jump.d
+++ b/gas/testsuite/gas/i386/solaris/x86-64-jump.d
@@ -31,14 +31,22 @@ 0+ <.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]+:	eb 00                	jmp    0x76
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	67 e3 00             	jecxz  0x7a
+[ 	]*[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    0x[0-9a-f]*
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	e3 00                	jrcxz  0x7d
+[ 	]*[a-f0-9]+:	67 e3 00             	jecxz  0x[0-9a-f]*
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 00                	jmp    0x80
+[ 	]*[a-f0-9]+:	e3 00                	jrcxz  0x[0-9a-f]*
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[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
--- 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+ <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
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
--- 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+ <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
diff --git a/gas/testsuite/gas/i386/x86-64-branch-2.d b/gas/testsuite/gas/i386/x86-64-branch-2.d
--- 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
--- 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 .*
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-04-03  0:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-01 10:46 [PATCH] gas: Fix some x86_64 testcases for Solaris not using R_X86_64_PLT32 [PR25732] Rainer Orth
2020-04-01 10:58 ` H.J. Lu
2020-04-02  6:19   ` Fangrui Song
2020-04-02 13:07     ` Rainer Orth
2020-04-03  0:59       ` Fangrui Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).