View | Details | Raw Unified | Return to bug 251385 | Differences between
and this patch

Collapse All | Expand All

(-)b/devel/binutils/Makefile (-2 / +1 lines)
Lines 1-8 Link Here
1
# Created by: Martin Matuska <mm@FreeBSD.org>
1
# Created by: Martin Matuska <mm@FreeBSD.org>
2
2
3
PORTNAME=	binutils
3
PORTNAME=	binutils
4
PORTVERSION=	2.33.1
4
PORTVERSION=	2.36.1
5
PORTREVISION=	4
6
PORTEPOCH?=	1
5
PORTEPOCH?=	1
7
CATEGORIES?=	devel
6
CATEGORIES?=	devel
8
MASTER_SITES=	SOURCEWARE/binutils/releases
7
MASTER_SITES=	SOURCEWARE/binutils/releases
(-)b/devel/binutils/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1575361927
1
TIMESTAMP = 1620832960
2
SHA256 (binutils-2.33.1.tar.xz) = ab66fc2d1c3ec0359b8e08843c9f33b63e8707efdff5e4cc5c200eae24722cbf
2
SHA256 (binutils-2.36.1.tar.xz) = e81d9edf373f193af428a0f256674aea62a9d74dfe93f65192d4eae030b0f3b0
3
SIZE (binutils-2.33.1.tar.xz) = 21490848
3
SIZE (binutils-2.36.1.tar.xz) = 22772248
(-)b/devel/binutils/files/patch-0003-43f6058fb2c (+188 lines)
Added Link Here
1
From 43f6058fb2cd2b90f62893fcec5c30a7bfe24350 Mon Sep 17 00:00:00 2001
2
From: "H.J. Lu" <hjl.tools@gmail.com>
3
Date: Sun, 7 Feb 2021 13:11:16 -0800
4
Subject: [PATCH 003/169] ld: Remove x86 ISA level run-time tests
5
6
Remove x86 ISA level run-time tests since with glibc 2.33, they will fail
7
to run on machines with lesser x86 ISA level:
8
9
tmpdir/property-5-pie: CPU ISA level is lower than required
10
11
	PR ld/27358
12
	* testsuite/ld-i386/i386.exp: Remove property 3/4/5 run-time
13
	tests.
14
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
15
16
(cherry picked from commit 38a143aa8c633225e000fd006a5a171f0b6c80ee)
17
---
18
 ld/ChangeLog                      |  7 ++++
19
 ld/testsuite/ld-i386/i386.exp     | 63 -------------------------------
20
 ld/testsuite/ld-x86-64/x86-64.exp | 63 -------------------------------
21
 3 files changed, 7 insertions(+), 126 deletions(-)
22
23
diff --git ld/ChangeLog ld/ChangeLog
24
index 97fef18c28e..bb21b1b8ee6 100644
25
--- ld/ChangeLog
26
+++ ld/ChangeLog
27
@@ -1,3 +1,10 @@
28
+2021-02-07  H.J. Lu  <hongjiu.lu@intel.com>
29
+
30
+	PR ld/27358
31
+	* testsuite/ld-i386/i386.exp: Remove property 3/4/5 run-time
32
+	tests.
33
+	* testsuite/ld-x86-64/x86-64.exp: Likewise.
34
+
35
 2021-02-06  Nick Clifton  <nickc@redhat.com>
36
 
37
 	This is the 2.36.1 release.
38
diff --git ld/testsuite/ld-i386/i386.exp ld/testsuite/ld-i386/i386.exp
39
index 9bfc70c9fb9..24700f81352 100644
40
--- ld/testsuite/ld-i386/i386.exp
41
+++ ld/testsuite/ld-i386/i386.exp
42
@@ -1105,69 +1105,6 @@ if { [isnative]
43
 	    {pass.c property-stack.S} \
44
 	    "property-3-static" "pass.out" \
45
 	] \
46
-	[list \
47
-	    "Run property 3" \
48
-	    "" \
49
-	    "-Wa,-mx86-used-note=yes" \
50
-	    {pass.c property-stack.S property-x86-1.S} \
51
-	    "property-3" "pass.out" \
52
-	] \
53
-	[list \
54
-	    "Run property 3 (PIE)" \
55
-	    "-pie" \
56
-	    "-Wa,-mx86-used-note=yes" \
57
-	    {pass.c property-x86-1.S property-stack.S} \
58
-	    "property-3-pie" "pass.out" "-fPIE" \
59
-	] \
60
-	[list \
61
-	    "Run property 3 (static)" \
62
-	    "-static" \
63
-	    "-Wa,-mx86-used-note=yes" \
64
-	    {property-x86-1.S pass.c property-stack.S} \
65
-	    "property-3-static" "pass.out" \
66
-	] \
67
-	[list \
68
-	    "Run property 4" \
69
-	    "" \
70
-	    "-Wa,-mx86-used-note=yes" \
71
-	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
72
-	    "property-4" "pass.out" \
73
-	] \
74
-	[list \
75
-	    "Run property 4 (PIE)" \
76
-	    "-pie" \
77
-	    "-Wa,-mx86-used-note=yes" \
78
-	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
79
-	    "property-4-pie" "pass.out" "-fPIE" \
80
-	] \
81
-	[list \
82
-	    "Run property 4 (static)" \
83
-	    "-static" \
84
-	    "-Wa,-mx86-used-note=yes" \
85
-	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
86
-	    "property-4-static" "pass.out" \
87
-	] \
88
-	[list \
89
-	    "Run property 5" \
90
-	    "-Wl,-z,stack-size=0x900000" \
91
-	    "-Wa,-mx86-used-note=yes" \
92
-	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
93
-	    "property-5" "pass.out" \
94
-	] \
95
-	[list \
96
-	    "Run property 5 (PIE)" \
97
-	    "-pie -Wl,-z,stack-size=0x900000" \
98
-	    "-Wa,-mx86-used-note=yes" \
99
-	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
100
-	    "property-5-pie" "pass.out" "-fPIE" \
101
-	] \
102
-	[list \
103
-	    "Run property 5 (static)" \
104
-	    "-static -Wl,-z,stack-size=0x900000" \
105
-	    "-Wa,-mx86-used-note=yes" \
106
-	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
107
-	    "property-5-static" "pass.out" \
108
-	] \
109
     ]
110
 
111
     undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
112
diff --git ld/testsuite/ld-x86-64/x86-64.exp ld/testsuite/ld-x86-64/x86-64.exp
113
index 83fdaa7db65..da0d2a76f3b 100644
114
--- ld/testsuite/ld-x86-64/x86-64.exp
115
+++ ld/testsuite/ld-x86-64/x86-64.exp
116
@@ -1582,69 +1582,6 @@ if { [isnative] && [check_compiler_available] } {
117
 	    {pass.c property-stack.S} \
118
 	    "property-3-static" "pass.out" \
119
 	] \
120
-	[list \
121
-	    "Run property 3" \
122
-	    "" \
123
-	    "-Wa,-mx86-used-note=yes" \
124
-	    {pass.c property-stack.S property-x86-1.S} \
125
-	    "property-3" "pass.out" \
126
-	] \
127
-	[list \
128
-	    "Run property 3 (PIE)" \
129
-	    "-pie" \
130
-	    "-Wa,-mx86-used-note=yes" \
131
-	    {pass.c property-x86-1.S property-stack.S} \
132
-	    "property-3-pie" "pass.out" "-fPIE" \
133
-	] \
134
-	[list \
135
-	    "Run property 3 (static)" \
136
-	    "-static" \
137
-	    "-Wa,-mx86-used-note=yes" \
138
-	    {property-x86-1.S pass.c property-stack.S} \
139
-	    "property-3-static" "pass.out" \
140
-	] \
141
-	[list \
142
-	    "Run property 4" \
143
-	    "" \
144
-	    "-Wa,-mx86-used-note=yes" \
145
-	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
146
-	    "property-4" "pass.out" \
147
-	] \
148
-	[list \
149
-	    "Run property 4 (PIE)" \
150
-	    "-pie" \
151
-	    "-Wa,-mx86-used-note=yes" \
152
-	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
153
-	    "property-4-pie" "pass.out" "-fPIE" \
154
-	] \
155
-	[list \
156
-	    "Run property 4 (static)" \
157
-	    "-static" \
158
-	    "-Wa,-mx86-used-note=yes" \
159
-	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
160
-	    "property-4-static" "pass.out" \
161
-	] \
162
-	[list \
163
-	    "Run property 5" \
164
-	    "-Wl,-z,stack-size=0x900000" \
165
-	    "-Wa,-mx86-used-note=yes" \
166
-	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
167
-	    "property-5" "pass.out" \
168
-	] \
169
-	[list \
170
-	    "Run property 5 (PIE)" \
171
-	    "-pie -Wl,-z,stack-size=0x900000" \
172
-	    "-Wa,-mx86-used-note=yes" \
173
-	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
174
-	    "property-5-pie" "pass.out" "-fPIE" \
175
-	] \
176
-	[list \
177
-	    "Run property 5 (static)" \
178
-	    "-static -Wl,-z,stack-size=0x900000" \
179
-	    "-Wa,-mx86-used-note=yes" \
180
-	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
181
-	    "property-5-static" "pass.out" \
182
-	] \
183
 	[list \
184
 	    "Run pr22001-1a (PIC 1)" \
185
 	    "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
186
-- 
187
2.32.0
188
(-)b/devel/binutils/files/patch-0006-7651a4871c2 (+41 lines)
Added Link Here
1
From 7651a4871c225925ffdfda0a8c91a6ed370cd9a1 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Tue, 9 Feb 2021 13:32:36 +1030
4
Subject: [PATCH 006/169] PR27382, build failure if fileno() is a macro
5
6
	PR 27382
7
	* objcopy.c (copy_file): Use bfd_stat.
8
---
9
 binutils/ChangeLog | 5 +++++
10
 binutils/objcopy.c | 2 +-
11
 2 files changed, 6 insertions(+), 1 deletion(-)
12
13
diff --git binutils/ChangeLog binutils/ChangeLog
14
index 8b08bd0db79..b60e55d1632 100644
15
--- binutils/ChangeLog
16
+++ binutils/ChangeLog
17
@@ -1,3 +1,8 @@
18
+2021-02-09  Alan Modra  <amodra@gmail.com>
19
+
20
+	PR 27382
21
+	* objcopy.c (copy_file): Use bfd_stat.
22
+
23
 2021-02-06  Nick Clifton  <nickc@redhat.com>
24
 
25
 	This is the 2.36.1 release.
26
diff --git binutils/objcopy.c binutils/objcopy.c
27
index 00d751522c4..eab3b6db585 100644
28
--- binutils/objcopy.c
29
+++ binutils/objcopy.c
30
@@ -3769,7 +3769,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
31
   /* To allow us to do "strip *" without dying on the first
32
      non-object file, failures are nonfatal.  */
33
   ibfd = bfd_openr (input_filename, input_target);
34
-  if (ibfd == NULL || fstat (fileno (ibfd->iostream), in_stat) != 0)
35
+  if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0)
36
     {
37
       bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
38
       status = 1;
39
-- 
40
2.32.0
41
(-)b/devel/binutils/files/patch-0017-5ffe9b0dbb2 (+263 lines)
Added Link Here
1
From 5ffe9b0dbb20d0257e262be0517893a8ef75c3cc Mon Sep 17 00:00:00 2001
2
From: Andreas Krebbel <krebbel@linux.ibm.com>
3
Date: Mon, 15 Feb 2021 14:20:00 +0100
4
Subject: [PATCH 017/169] IBM Z: Implement instruction set extensions
5
6
opcodes/
7
8
        * s390-mkopc.c (main): Accept arch14 as cpu string.
9
        * s390-opc.txt: Add new arch14 instructions.
10
11
include/
12
13
        * opcode/s390.h (enum s390_opcode_cpu_val): Add
14
        S390_OPCODE_ARCH14.
15
16
gas/
17
18
        * config/tc-s390.c (s390_parse_cpu): New entry for arch14.
19
        * doc/c-s390.texi: Document arch14 march option.
20
        * testsuite/gas/s390/s390.exp: Run the arch14 related tests.
21
        * testsuite/gas/s390/zarch-arch14.d: New test.
22
        * testsuite/gas/s390/zarch-arch14.s: New test.
23
24
(cherry picked from commit ba2b480f1037082d27da1afdfe0793c8aac9b1bd)
25
---
26
 gas/ChangeLog                         |  8 +++++++
27
 gas/config/tc-s390.c                  |  2 ++
28
 gas/doc/c-s390.texi                   |  7 +++---
29
 gas/testsuite/gas/s390/s390.exp       |  1 +
30
 gas/testsuite/gas/s390/zarch-arch14.d | 31 +++++++++++++++++++++++++++
31
 gas/testsuite/gas/s390/zarch-arch14.s | 24 +++++++++++++++++++++
32
 include/ChangeLog                     |  5 +++++
33
 include/opcode/s390.h                 |  1 +
34
 opcodes/ChangeLog                     |  5 +++++
35
 opcodes/s390-mkopc.c                  |  2 ++
36
 opcodes/s390-opc.txt                  | 28 ++++++++++++++++++++++++
37
 11 files changed, 111 insertions(+), 3 deletions(-)
38
 create mode 100644 gas/testsuite/gas/s390/zarch-arch14.d
39
 create mode 100644 gas/testsuite/gas/s390/zarch-arch14.s
40
41
diff --git gas/ChangeLog gas/ChangeLog
42
index 7f37f521404..ed383a970e0 100644
43
--- gas/ChangeLog
44
+++ gas/ChangeLog
45
@@ -1,3 +1,11 @@
46
+2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
47
+
48
+	* config/tc-s390.c (s390_parse_cpu): New entry for arch14.
49
+	* doc/c-s390.texi: Document arch14 march option.
50
+	* testsuite/gas/s390/s390.exp: Run the arch14 related tests.
51
+	* testsuite/gas/s390/zarch-arch14.d: New test.
52
+	* testsuite/gas/s390/zarch-arch14.s: New test.
53
+
54
 2021-02-06  Nick Clifton  <nickc@redhat.com>
55
 
56
 	This is the 2.36.1 release.
57
diff --git gas/config/tc-s390.c gas/config/tc-s390.c
58
index c6daef99fde..f23d9863d3d 100644
59
--- gas/config/tc-s390.c
60
+++ gas/config/tc-s390.c
61
@@ -292,6 +292,8 @@ s390_parse_cpu (const char *         arg,
62
     { STRING_COMMA_LEN ("z14"), STRING_COMMA_LEN ("arch12"),
63
       S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
64
     { STRING_COMMA_LEN ("z15"), STRING_COMMA_LEN ("arch13"),
65
+      S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
66
+    { STRING_COMMA_LEN (""), STRING_COMMA_LEN ("arch14"),
67
       S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX }
68
   };
69
   static struct
70
diff --git gas/doc/c-s390.texi gas/doc/c-s390.texi
71
index c1b46a10c1e..53046a288bd 100644
72
--- gas/doc/c-s390.texi
73
+++ gas/doc/c-s390.texi
74
@@ -18,7 +18,7 @@ and eleven chip levels. The architecture modes are the Enterprise System
75
 Architecture (ESA) and the newer z/Architecture mode. The chip levels
76
 are g5 (or arch3), g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec
77
 (or arch7), z10 (or arch8), z196 (or arch9), zEC12 (or arch10), z13
78
-(or arch11), z14 (or arch12), and z15 (or arch13).
79
+(or arch11), z14 (or arch12), z15 (or arch13), or arch14.
80
 
81
 @menu
82
 * s390 Options::                Command-line Options.
83
@@ -70,8 +70,9 @@ are recognized:
84
 @code{z196} (or @code{arch9}),
85
 @code{zEC12} (or @code{arch10}),
86
 @code{z13} (or @code{arch11}),
87
-@code{z14} (or @code{arch12}), and
88
-@code{z15} (or @code{arch13}).
89
+@code{z14} (or @code{arch12}),
90
+@code{z15} (or @code{arch13}), and
91
+@code{arch14}.
92
 
93
 Assembling an instruction that is not supported on the target
94
 processor results in an error message.
95
diff --git gas/testsuite/gas/s390/s390.exp gas/testsuite/gas/s390/s390.exp
96
index f87a09a8633..d03555a7aef 100644
97
--- gas/testsuite/gas/s390/s390.exp
98
+++ gas/testsuite/gas/s390/s390.exp
99
@@ -31,6 +31,7 @@ if [expr [istarget "s390-*-*"] ||  [istarget "s390x-*-*"]]  then {
100
     run_dump_test "zarch-z13" "{as -m64} {as -march=z13}"
101
     run_dump_test "zarch-arch12" "{as -m64} {as -march=arch12}"
102
     run_dump_test "zarch-arch13" "{as -m64} {as -march=arch13}"
103
+    run_dump_test "zarch-arch14" "{as -m64} {as -march=arch14}"
104
     run_dump_test "zarch-reloc" "{as -m64}"
105
     run_dump_test "zarch-operands" "{as -m64} {as -march=z9-109}"
106
     run_dump_test "zarch-machine" "{as -m64} {as -march=z900}"
107
diff --git gas/testsuite/gas/s390/zarch-arch14.d gas/testsuite/gas/s390/zarch-arch14.d
108
new file mode 100644
109
index 00000000000..97c4fd54719
110
--- /dev/null
111
+++ gas/testsuite/gas/s390/zarch-arch14.d
112
@@ -0,0 +1,31 @@
113
+#name: s390x opcode
114
+#objdump: -dr
115
+
116
+.*: +file format .*
117
+
118
+Disassembly of section .text:
119
+
120
+.* <foo>:
121
+.*:	e6 f1 40 c0 d6 74 [	 ]*vschp	%v15,%v17,%v20,13,12
122
+.*:	e6 f1 40 d0 26 74 [	 ]*vschsp	%v15,%v17,%v20,13
123
+.*:	e6 f1 40 d0 36 74 [	 ]*vschdp	%v15,%v17,%v20,13
124
+.*:	e6 f1 40 d0 46 74 [	 ]*vschxp	%v15,%v17,%v20,13
125
+.*:	e6 f1 40 00 06 7c [	 ]*vscshp	%v15,%v17,%v20
126
+.*:	e6 f1 40 d0 06 7d [	 ]*vcsph	%v15,%v17,%v20,13
127
+.*:	e6 f1 00 d0 04 51 [	 ]*vclzdp	%v15,%v17,13
128
+.*:	e6 f1 40 cf d6 70 [	 ]*vpkzr	%v15,%v17,%v20,253,12
129
+.*:	e6 f1 40 cf d6 72 [	 ]*vsrpr	%v15,%v17,%v20,253,12
130
+.*:	e6 f1 00 d0 04 54 [	 ]*vupkzh	%v15,%v17,13
131
+.*:	e6 f1 00 d0 04 5c [	 ]*vupkzl	%v15,%v17,13
132
+.*:	b9 3b 00 00 [	 ]*nnpa
133
+.*:	e6 f1 00 0c d4 56 [	 ]*vclfnh	%v15,%v17,13,12
134
+.*:	e6 f1 00 0c d4 5e [	 ]*vclfnl	%v15,%v17,13,12
135
+.*:	e6 f1 40 0c d6 75 [	 ]*vcrnf	%v15,%v17,%v20,13,12
136
+.*:	e6 f1 00 0c d4 5d [	 ]*vcfn	%v15,%v17,13,12
137
+.*:	e6 f1 00 0c d4 55 [	 ]*vcnf	%v15,%v17,13,12
138
+.*:	b9 8b 90 6b [	 ]*rdp	%r6,%r9,%r11
139
+.*:	b9 8b 9d 6b [	 ]*rdp	%r6,%r9,%r11,13
140
+.*:	eb fd 68 f0 fd 71 [	 ]*lpswey	-10000\(%r6\),253
141
+.*:	b2 00 6f a0 [	 ]*lbear	4000\(%r6\)
142
+.*:	b2 01 6f a0 [	 ]*stbear	4000\(%r6\)
143
+.*:	07 07 [	 ]*nopr	%r7
144
diff --git gas/testsuite/gas/s390/zarch-arch14.s gas/testsuite/gas/s390/zarch-arch14.s
145
new file mode 100644
146
index 00000000000..830382f0ac5
147
--- /dev/null
148
+++ gas/testsuite/gas/s390/zarch-arch14.s
149
@@ -0,0 +1,24 @@
150
+.text
151
+foo:
152
+	vschp	%v15,%v17,%v20,13,12
153
+	vschsp	%v15,%v17,%v20,13
154
+	vschdp	%v15,%v17,%v20,13
155
+	vschxp	%v15,%v17,%v20,13
156
+	vscshp	%v15,%v17,%v20
157
+	vcsph	%v15,%v17,%v20,13
158
+	vclzdp	%v15,%v17,13
159
+	vpkzr	%v15,%v17,%v20,253,12
160
+	vsrpr	%v15,%v17,%v20,253,12
161
+	vupkzh	%v15,%v17,13
162
+	vupkzl	%v15,%v17,13
163
+	nnpa
164
+	vclfnh	%v15,%v17,13,12
165
+	vclfnl	%v15,%v17,13,12
166
+	vcrnf	%v15,%v17,%v20,13,12
167
+	vcfn	%v15,%v17,13,12
168
+	vcnf	%v15,%v17,13,12
169
+	rdp	%r6,%r9,%r11
170
+	rdp	%r6,%r9,%r11,13
171
+	lpswey	-10000(%r6),253
172
+	lbear	4000(%r6)
173
+	stbear	4000(%r6)
174
diff --git include/ChangeLog include/ChangeLog
175
index 733174b56b0..f692e379026 100644
176
--- include/ChangeLog
177
+++ include/ChangeLog
178
@@ -1,3 +1,8 @@
179
+2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
180
+
181
+	* opcode/s390.h (enum s390_opcode_cpu_val): Add
182
+	S390_OPCODE_ARCH14.
183
+
184
 2021-02-06  Nick Clifton  <nickc@redhat.com>
185
 
186
 	This is the 2.36.1 release.
187
diff --git include/opcode/s390.h include/opcode/s390.h
188
index cc112b01588..868ae2f02dc 100644
189
--- include/opcode/s390.h
190
+++ include/opcode/s390.h
191
@@ -44,6 +44,7 @@ enum s390_opcode_cpu_val
192
     S390_OPCODE_Z13,
193
     S390_OPCODE_ARCH12,
194
     S390_OPCODE_ARCH13,
195
+    S390_OPCODE_ARCH14,
196
     S390_OPCODE_MAXCPU
197
   };
198
 
199
diff --git opcodes/ChangeLog opcodes/ChangeLog
200
index 6046ffe395b..162fd742369 100644
201
--- opcodes/ChangeLog
202
+++ opcodes/ChangeLog
203
@@ -1,3 +1,8 @@
204
+2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
205
+
206
+	* s390-mkopc.c (main): Accept arch14 as cpu string.
207
+	* s390-opc.txt: Add new arch14 instructions.
208
+
209
 2021-02-06  Nick Clifton  <nickc@redhat.com>
210
 
211
 	This is the 2.36.1 release.
212
diff --git opcodes/s390-mkopc.c opcodes/s390-mkopc.c
213
index bf2ef41d13a..bcd453314a1 100644
214
--- opcodes/s390-mkopc.c
215
+++ opcodes/s390-mkopc.c
216
@@ -381,6 +381,8 @@ main (void)
217
       else if (strcmp (cpu_string, "z15") == 0
218
 	       || strcmp (cpu_string, "arch13") == 0)
219
 	min_cpu = S390_OPCODE_ARCH13;
220
+      else if (strcmp (cpu_string, "arch14") == 0)
221
+	min_cpu = S390_OPCODE_ARCH14;
222
       else {
223
 	fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string);
224
 	exit (1);
225
diff --git opcodes/s390-opc.txt opcodes/s390-opc.txt
226
index 1f921563aa4..aa00b4f3b69 100644
227
--- opcodes/s390-opc.txt
228
+++ opcodes/s390-opc.txt
229
@@ -2016,3 +2016,31 @@ e60000000052 vcvbg VRR_RV0UU "vector convert to binary 64 bit" arch13 zarch optp
230
 # Message Security Assist Extension 9
231
 
232
 b93a kdsa RRE_RR "compute digital signature authentication" arch13 zarch
233
+
234
+
235
+# arch14 instructions
236
+
237
+e60000000074 vschp VRR_VVV0U0U " " arch14 zarch
238
+e60000002074 vschsp VRR_VVV0U0 " " arch14 zarch
239
+e60000003074 vschdp VRR_VVV0U0 " " arch14 zarch
240
+e60000004074 vschxp VRR_VVV0U0 " " arch14 zarch
241
+e6000000007c vscshp VRR_VVV " " arch14 zarch
242
+e6000000007d vcsph VRR_VVV0U0 " " arch14 zarch
243
+e60000000051 vclzdp VRR_VV0U2 " " arch14 zarch
244
+e60000000070 vpkzr VRI_VVV0UU2 " " arch14 zarch
245
+e60000000072 vsrpr VRI_VVV0UU2 " " arch14 zarch
246
+e60000000054 vupkzh VRR_VV0U2 " " arch14 zarch
247
+e6000000005c vupkzl VRR_VV0U2 " " arch14 zarch
248
+
249
+b93b nnpa RRE_00 " " arch14 zarch
250
+e60000000056 vclfnh VRR_VV0UU2 " " arch14 zarch
251
+e6000000005e vclfnl VRR_VV0UU2 " " arch14 zarch
252
+e60000000075 vcrnf VRR_VVV0UU " " arch14 zarch
253
+e6000000005d vcfn VRR_VV0UU2 " " arch14 zarch
254
+e60000000055 vcnf VRR_VV0UU2 " " arch14 zarch
255
+
256
+b98B rdp RRF_RURR2 " " arch14 zarch optparm
257
+
258
+eb0000000071 lpswey SIY_URD " " arch14 zarch
259
+b200 lbear S_RD " " arch14 zarch
260
+b201 stbear S_RD " " arch14 zarch
261
-- 
262
2.32.0
263
(-)b/devel/binutils/files/patch-0021-8e03235147a (+219 lines)
Added Link Here
1
From 8e03235147a9e774d3ba084e93c2da1aa94d1cec Mon Sep 17 00:00:00 2001
2
From: Siddhesh Poyarekar <siddhesh@gotplt.org>
3
Date: Mon, 22 Feb 2021 20:45:50 +0530
4
Subject: [PATCH 021/169] binutils: Avoid renaming over existing files
5
6
Renaming over existing files needs additional care to restore
7
permissions and ownership, which may not always succeed.
8
Additionally, other properties of the file such as extended attributes
9
may be lost, making the operation flaky.
10
11
For predictable results, resort to rename() only if the file does not
12
exist, otherwise copy the file contents into the existing file.  This
13
ensures that no additional tricks are needed to retain file
14
properties.
15
16
This also allows dropping of the redundant set_times on the tmpfile in
17
objcopy/strip since now we no longer rename over existing files.
18
19
binutils/
20
21
	* ar.c (write_archive): Adjust call to SMART_RENAME.
22
	* arsup.c (ar_save): Likewise.
23
	* objcopy (strip_main): Don't set times on temporary file and
24
	adjust call to SMART_RENAME.
25
	(copy_main): Likewise.
26
	* rename.c [!S_ISLNK]: Remove definitions.
27
	(try_preserve_permissions): Remove function.
28
	(smart_rename): Replace PRESERVE_DATES argument with
29
	TARGET_STAT.  Use rename system call only if TO does not exist.
30
	* bucomm.h (smart_rename): Adjust declaration.
31
32
(cherry picked from commit 3685de750e6a091663a0abe42528cad29e960e35)
33
---
34
 binutils/ChangeLog | 13 +++++++++++
35
 binutils/ar.c      |  2 +-
36
 binutils/arsup.c   |  2 +-
37
 binutils/bucomm.h  |  3 ++-
38
 binutils/objcopy.c |  8 ++-----
39
 binutils/rename.c  | 55 +++++++++-------------------------------------
40
 6 files changed, 29 insertions(+), 54 deletions(-)
41
42
diff --git binutils/ChangeLog binutils/ChangeLog
43
index b60e55d1632..a725898321d 100644
44
--- binutils/ChangeLog
45
+++ binutils/ChangeLog
46
@@ -1,3 +1,16 @@
47
+2021-02-22  Siddhesh Poyarekar  <siddhesh@gotplt.org>
48
+
49
+	* ar.c (write_archive): Adjust call to SMART_RENAME.
50
+	* arsup.c (ar_save): Likewise.
51
+	* objcopy (strip_main): Don't set times on temporary file and
52
+	adjust call to SMART_RENAME.
53
+	(copy_main): Likewise.
54
+	* rename.c [!S_ISLNK]: Remove definitions.
55
+	(try_preserve_permissions): Remove function.
56
+	(smart_rename): Replace PRESERVE_DATES argument with
57
+	TARGET_STAT.  Use rename system call only if TO does not exist.
58
+	* bucomm.h (smart_rename): Adjust declaration.
59
+
60
 2021-02-09  Alan Modra  <amodra@gmail.com>
61
 
62
 	PR 27382
63
diff --git binutils/ar.c binutils/ar.c
64
index 45a34e3a6cf..3a91708b51c 100644
65
--- binutils/ar.c
66
+++ binutils/ar.c
67
@@ -1308,7 +1308,7 @@ write_archive (bfd *iarch)
68
   /* We don't care if this fails; we might be creating the archive.  */
69
   bfd_close (iarch);
70
 
71
-  if (smart_rename (new_name, old_name, 0) != 0)
72
+  if (smart_rename (new_name, old_name, NULL) != 0)
73
     xexit (1);
74
   free (old_name);
75
   free (new_name);
76
diff --git binutils/arsup.c binutils/arsup.c
77
index 5403a0c5d74..0a1f63f6456 100644
78
--- binutils/arsup.c
79
+++ binutils/arsup.c
80
@@ -351,7 +351,7 @@ ar_save (void)
81
 
82
       bfd_close (obfd);
83
 
84
-      smart_rename (ofilename, real_name, 0);
85
+      smart_rename (ofilename, real_name, NULL);
86
       obfd = 0;
87
       free (ofilename);
88
     }
89
diff --git binutils/bucomm.h binutils/bucomm.h
90
index 91f6a5b228f..aa7e33d8cd1 100644
91
--- binutils/bucomm.h
92
+++ binutils/bucomm.h
93
@@ -71,7 +71,8 @@ extern void print_version (const char *);
94
 /* In rename.c.  */
95
 extern void set_times (const char *, const struct stat *);
96
 
97
-extern int smart_rename (const char *, const char *, int);
98
+extern int smart_rename (const char *, const char *, struct stat *);
99
+
100
 
101
 /* In libiberty.  */
102
 void *xmalloc (size_t);
103
diff --git binutils/objcopy.c binutils/objcopy.c
104
index eab3b6db585..07a872b5a80 100644
105
--- binutils/objcopy.c
106
+++ binutils/objcopy.c
107
@@ -4861,12 +4861,10 @@ strip_main (int argc, char *argv[])
108
 		 output_target, NULL);
109
       if (status == 0)
110
 	{
111
-	  if (preserve_dates)
112
-	    set_times (tmpname, &statbuf);
113
 	  if (output_file != tmpname)
114
 	    status = (smart_rename (tmpname,
115
 				    output_file ? output_file : argv[i],
116
-				    preserve_dates) != 0);
117
+				    preserve_dates ? &statbuf : NULL) != 0);
118
 	  if (status == 0)
119
 	    status = hold_status;
120
 	}
121
@@ -5931,11 +5929,9 @@ copy_main (int argc, char *argv[])
122
 	     output_target, input_arch);
123
   if (status == 0)
124
     {
125
-      if (preserve_dates)
126
-	set_times (tmpname, &statbuf);
127
       if (tmpname != output_filename)
128
 	status = (smart_rename (tmpname, input_filename,
129
-				preserve_dates) != 0);
130
+				preserve_dates ? &statbuf : NULL) != 0);
131
     }
132
   else
133
     unlink_if_ordinary (tmpname);
134
diff --git binutils/rename.c binutils/rename.c
135
index 65ad5bf52c4..f471b45fd3f 100644
136
--- binutils/rename.c
137
+++ binutils/rename.c
138
@@ -122,20 +122,13 @@ set_times (const char *destination, const struct stat *statbuf)
139
     non_fatal (_("%s: cannot set time: %s"), destination, strerror (errno));
140
 }
141
 
142
-#ifndef S_ISLNK
143
-#ifdef S_IFLNK
144
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
145
-#else
146
-#define S_ISLNK(m) 0
147
-#define lstat stat
148
-#endif
149
-#endif
150
-
151
-/* Rename FROM to TO, copying if TO is a link.
152
-   Return 0 if ok, -1 if error.  */
153
+/* Rename FROM to TO, copying if TO exists.  TARGET_STAT has the file status
154
+   that, if non-NULL, is used to fix up timestamps after rename.  Return 0 if
155
+   ok, -1 if error.  */
156
 
157
 int
158
-smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNUSED)
159
+smart_rename (const char *from, const char *to,
160
+	      struct stat *target_stat ATTRIBUTE_UNUSED)
161
 {
162
   bfd_boolean exists;
163
   struct stat s;
164
@@ -158,38 +151,10 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU
165
       unlink (from);
166
     }
167
 #else
168
-  /* Use rename only if TO is not a symbolic link and has
169
-     only one hard link, and we have permission to write to it.  */
170
-  if (! exists
171
-      || (!S_ISLNK (s.st_mode)
172
-	  && S_ISREG (s.st_mode)
173
-	  && (s.st_mode & S_IWUSR)
174
-	  && s.st_nlink == 1)
175
-      )
176
+  /* Avoid a full copy and use rename if TO does not exist.  */
177
+  if (!exists)
178
     {
179
-      ret = rename (from, to);
180
-      if (ret == 0)
181
-	{
182
-	  if (exists)
183
-	    {
184
-	      /* Try to preserve the permission bits and ownership of
185
-		 TO.  First get the mode right except for the setuid
186
-		 bit.  Then change the ownership.  Then fix the setuid
187
-		 bit.  We do the chmod before the chown because if the
188
-		 chown succeeds, and we are a normal user, we won't be
189
-		 able to do the chmod afterward.  We don't bother to
190
-		 fix the setuid bit first because that might introduce
191
-		 a fleeting security problem, and because the chown
192
-		 will clear the setuid bit anyhow.  We only fix the
193
-		 setuid bit if the chown succeeds, because we don't
194
-		 want to introduce an unexpected setuid file owned by
195
-		 the user running objcopy.  */
196
-	      chmod (to, s.st_mode & 0777);
197
-	      if (chown (to, s.st_uid, s.st_gid) >= 0)
198
-		chmod (to, s.st_mode & 07777);
199
-	    }
200
-	}
201
-      else
202
+      if ((ret = rename (from, to)) != 0)
203
 	{
204
 	  /* We have to clean up here.  */
205
 	  non_fatal (_("unable to rename '%s'; reason: %s"), to, strerror (errno));
206
@@ -202,8 +167,8 @@ smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNU
207
       if (ret != 0)
208
 	non_fatal (_("unable to copy file '%s'; reason: %s"), to, strerror (errno));
209
 
210
-      if (preserve_dates)
211
-	set_times (to, &s);
212
+      if (target_stat != NULL)
213
+	set_times (to, target_stat);
214
       unlink (from);
215
     }
216
 #endif /* _WIN32 && !__CYGWIN32__ */
217
-- 
218
2.32.0
219
(-)b/devel/binutils/files/patch-0026-d3edaa91d4c (+189 lines)
Added Link Here
1
From d3edaa91d4cf7202ec14342410194841e2f67f12 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Fri, 26 Feb 2021 11:30:32 +1030
4
Subject: [PATCH 026/169] Reinstate various pieces backed out from smart_rename
5
 changes
6
7
In the interests of a stable release various last minute smart_rename
8
patches were backed out of the 2.36 branch.  The main reason to
9
reinstate some of those backed out changes here is to make necessary
10
followup fixes to commit 8e03235147a9 simple cherry-picks from
11
mainline.  A secondary reason is that ar -M support isn't fixed for
12
pr26945 without this patch.
13
14
	PR 26945
15
	* ar.c: Don't include libbfd.h.
16
	(write_archive): Replace xmalloc+strcpy with xstrdup.
17
	* arsup.c (temp_name, real_ofd): New static variables.
18
	(ar_open): Use make_tempname and bfd_fdopenw.
19
	(ar_save): Adjust to suit ar_open changes.
20
	* objcopy.c: Don't include libbfd.h.
21
	* rename.c: Rename and reorder variables.
22
23
(cherry picked from commit 95b91a043aeaeb546d2fea556d84a2de1e917770)
24
---
25
 binutils/ChangeLog | 13 +++++++++++++
26
 binutils/ar.c      |  4 +---
27
 binutils/arsup.c   | 37 +++++++++++++++++++++++++------------
28
 binutils/objcopy.c |  1 -
29
 binutils/rename.c  |  6 +++---
30
 5 files changed, 42 insertions(+), 19 deletions(-)
31
32
diff --git binutils/ChangeLog binutils/ChangeLog
33
index a725898321d..4059aecff1c 100644
34
--- binutils/ChangeLog
35
+++ binutils/ChangeLog
36
@@ -1,3 +1,16 @@
37
+2021-02-26  Alan Modra  <amodra@gmail.com>
38
+
39
+	Backport from mainline
40
+	2021-02-03  Alan Modra  <amodra@gmail.com>
41
+	PR 26945
42
+	* ar.c: Don't include libbfd.h.
43
+	(write_archive): Replace xmalloc+strcpy with xstrdup.
44
+	* arsup.c (temp_name, real_ofd): New static variables.
45
+	(ar_open): Use make_tempname and bfd_fdopenw.
46
+	(ar_save): Adjust to suit ar_open changes.
47
+	* objcopy.c: Don't include libbfd.h.
48
+	* rename.c: Rename and reorder variables.
49
+
50
 2021-02-22  Siddhesh Poyarekar  <siddhesh@gotplt.org>
51
 
52
 	* ar.c (write_archive): Adjust call to SMART_RENAME.
53
diff --git binutils/ar.c binutils/ar.c
54
index 3a91708b51c..44df48c5c67 100644
55
--- binutils/ar.c
56
+++ binutils/ar.c
57
@@ -25,7 +25,6 @@
58
 
59
 #include "sysdep.h"
60
 #include "bfd.h"
61
-#include "libbfd.h"
62
 #include "libiberty.h"
63
 #include "progress.h"
64
 #include "getopt.h"
65
@@ -1255,8 +1254,7 @@ write_archive (bfd *iarch)
66
   bfd *contents_head = iarch->archive_next;
67
   int ofd = -1;
68
 
69
-  old_name = (char *) xmalloc (strlen (bfd_get_filename (iarch)) + 1);
70
-  strcpy (old_name, bfd_get_filename (iarch));
71
+  old_name = xstrdup (bfd_get_filename (iarch));
72
   new_name = make_tempname (old_name, &ofd);
73
 
74
   if (new_name == NULL)
75
diff --git binutils/arsup.c binutils/arsup.c
76
index 0a1f63f6456..f7ce8f0bc82 100644
77
--- binutils/arsup.c
78
+++ binutils/arsup.c
79
@@ -42,6 +42,8 @@ extern int deterministic;
80
 
81
 static bfd *obfd;
82
 static char *real_name;
83
+static char *temp_name;
84
+static int real_ofd;
85
 static FILE *outfile;
86
 
87
 static void
88
@@ -149,27 +151,24 @@ maybequit (void)
89
 void
90
 ar_open (char *name, int t)
91
 {
92
-  char *tname;
93
-  const char *bname = lbasename (name);
94
-  real_name = name;
95
+  real_name = xstrdup (name);
96
+  temp_name = make_tempname (real_name, &real_ofd);
97
 
98
-  /* Prepend tmp- to the beginning, to avoid file-name clashes after
99
-     truncation on filesystems with limited namespaces (DOS).  */
100
-  if (asprintf (&tname, "%.*stmp-%s", (int) (bname - name), name, bname) == -1)
101
+  if (temp_name == NULL)
102
     {
103
-      fprintf (stderr, _("%s: Can't allocate memory for temp name (%s)\n"),
104
+      fprintf (stderr, _("%s: Can't open temporary file (%s)\n"),
105
 	       program_name, strerror(errno));
106
       maybequit ();
107
       return;
108
     }
109
 
110
-  obfd = bfd_openw (tname, NULL);
111
+  obfd = bfd_fdopenw (temp_name, NULL, real_ofd);
112
 
113
   if (!obfd)
114
     {
115
       fprintf (stderr,
116
 	       _("%s: Can't open output archive %s\n"),
117
-	       program_name,  tname);
118
+	       program_name, temp_name);
119
 
120
       maybequit ();
121
     }
122
@@ -344,16 +343,30 @@ ar_save (void)
123
     }
124
   else
125
     {
126
-      char *ofilename = xstrdup (bfd_get_filename (obfd));
127
+      struct stat target_stat;
128
 
129
       if (deterministic > 0)
130
         obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
131
 
132
       bfd_close (obfd);
133
 
134
-      smart_rename (ofilename, real_name, NULL);
135
+      if (stat (real_name, &target_stat) != 0)
136
+	{
137
+	  /* The temp file created in ar_open has mode 0600 as per mkstemp.
138
+	     Create the real empty output file here so smart_rename will
139
+	     update the mode according to the process umask.  */
140
+	  obfd = bfd_openw (real_name, NULL);
141
+	  if (obfd != NULL)
142
+	    {
143
+	      bfd_set_format (obfd, bfd_archive);
144
+	      bfd_close (obfd);
145
+	    }
146
+	}
147
+
148
+      smart_rename (temp_name, real_name, NULL);
149
       obfd = 0;
150
-      free (ofilename);
151
+      free (temp_name);
152
+      free (real_name);
153
     }
154
 }
155
 
156
diff --git binutils/objcopy.c binutils/objcopy.c
157
index 07a872b5a80..73aa8bc2514 100644
158
--- binutils/objcopy.c
159
+++ binutils/objcopy.c
160
@@ -20,7 +20,6 @@
161
 
162
 #include "sysdep.h"
163
 #include "bfd.h"
164
-#include "libbfd.h"
165
 #include "progress.h"
166
 #include "getopt.h"
167
 #include "libiberty.h"
168
diff --git binutils/rename.c binutils/rename.c
169
index f471b45fd3f..2ff092ee22b 100644
170
--- binutils/rename.c
171
+++ binutils/rename.c
172
@@ -130,11 +130,11 @@ int
173
 smart_rename (const char *from, const char *to,
174
 	      struct stat *target_stat ATTRIBUTE_UNUSED)
175
 {
176
-  bfd_boolean exists;
177
-  struct stat s;
178
   int ret = 0;
179
+  struct stat to_stat;
180
+  bfd_boolean exists;
181
 
182
-  exists = lstat (to, &s) == 0;
183
+  exists = lstat (to, &to_stat) == 0;
184
 
185
 #if defined (_WIN32) && !defined (__CYGWIN32__)
186
   /* Win32, unlike unix, will not erase `to' in `rename(from, to)' but
187
-- 
188
2.32.0
189
(-)b/devel/binutils/files/patch-0027-8b69e61d4be (+184 lines)
Added Link Here
1
From 8b69e61d4be276bb862698aaafddc3e779d23c8f Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Tue, 23 Feb 2021 09:37:39 +1030
4
Subject: [PATCH 027/169] PR27456, lstat in rename.c on MinGW
5
6
	PR 27456
7
	* rename.c: Tidy throughout.
8
	(smart_rename): Always copy.  Remove windows specific code.
9
10
(cherry picked from commit cca8873dd5a6015d5557ea44bc1ea9c252435a29)
11
---
12
 binutils/ChangeLog |   5 ++
13
 binutils/rename.c  | 111 ++++++++++++++-------------------------------
14
 2 files changed, 40 insertions(+), 76 deletions(-)
15
16
diff --git binutils/ChangeLog binutils/ChangeLog
17
index 4059aecff1c..03f71b767cc 100644
18
--- binutils/ChangeLog
19
+++ binutils/ChangeLog
20
@@ -1,6 +1,11 @@
21
 2021-02-26  Alan Modra  <amodra@gmail.com>
22
 
23
 	Backport from mainline
24
+	2021-02-24  Alan Modra  <amodra@gmail.com>
25
+	PR 27456
26
+	* rename.c: Tidy throughout.
27
+	(smart_rename): Always copy.  Remove windows specific code.
28
+
29
 	2021-02-03  Alan Modra  <amodra@gmail.com>
30
 	PR 26945
31
 	* ar.c: Don't include libbfd.h.
32
diff --git binutils/rename.c binutils/rename.c
33
index 2ff092ee22b..72a9323d72c 100644
34
--- binutils/rename.c
35
+++ binutils/rename.c
36
@@ -24,14 +24,9 @@
37
 
38
 #ifdef HAVE_GOOD_UTIME_H
39
 #include <utime.h>
40
-#else /* ! HAVE_GOOD_UTIME_H */
41
-#ifdef HAVE_UTIMES
42
+#elif defined HAVE_UTIMES
43
 #include <sys/time.h>
44
-#endif /* HAVE_UTIMES */
45
-#endif /* ! HAVE_GOOD_UTIME_H */
46
-
47
-#if ! defined (_WIN32) || defined (__CYGWIN32__)
48
-static int simple_copy (const char *, const char *);
49
+#endif
50
 
51
 /* The number of bytes to copy at once.  */
52
 #define COPY_BUF 8192
53
@@ -82,7 +77,6 @@ simple_copy (const char *from, const char *to)
54
     }
55
   return 0;
56
 }
57
-#endif /* __CYGWIN32__ or not _WIN32 */
58
 
59
 /* Set the times of the file DESTINATION to be the same as those in
60
    STATBUF.  */
61
@@ -91,87 +85,52 @@ void
62
 set_times (const char *destination, const struct stat *statbuf)
63
 {
64
   int result;
65
-
66
-  {
67
 #ifdef HAVE_GOOD_UTIME_H
68
-    struct utimbuf tb;
69
-
70
-    tb.actime = statbuf->st_atime;
71
-    tb.modtime = statbuf->st_mtime;
72
-    result = utime (destination, &tb);
73
-#else /* ! HAVE_GOOD_UTIME_H */
74
-#ifndef HAVE_UTIMES
75
-    long tb[2];
76
-
77
-    tb[0] = statbuf->st_atime;
78
-    tb[1] = statbuf->st_mtime;
79
-    result = utime (destination, tb);
80
-#else /* HAVE_UTIMES */
81
-    struct timeval tv[2];
82
-
83
-    tv[0].tv_sec = statbuf->st_atime;
84
-    tv[0].tv_usec = 0;
85
-    tv[1].tv_sec = statbuf->st_mtime;
86
-    tv[1].tv_usec = 0;
87
-    result = utimes (destination, tv);
88
-#endif /* HAVE_UTIMES */
89
-#endif /* ! HAVE_GOOD_UTIME_H */
90
-  }
91
+  struct utimbuf tb;
92
+
93
+  tb.actime = statbuf->st_atime;
94
+  tb.modtime = statbuf->st_mtime;
95
+  result = utime (destination, &tb);
96
+#elif defined HAVE_UTIMES
97
+  struct timeval tv[2];
98
+
99
+  tv[0].tv_sec = statbuf->st_atime;
100
+  tv[0].tv_usec = 0;
101
+  tv[1].tv_sec = statbuf->st_mtime;
102
+  tv[1].tv_usec = 0;
103
+  result = utimes (destination, tv);
104
+#else
105
+  long tb[2];
106
+
107
+  tb[0] = statbuf->st_atime;
108
+  tb[1] = statbuf->st_mtime;
109
+  result = utime (destination, tb);
110
+#endif
111
 
112
   if (result != 0)
113
     non_fatal (_("%s: cannot set time: %s"), destination, strerror (errno));
114
 }
115
 
116
-/* Rename FROM to TO, copying if TO exists.  TARGET_STAT has the file status
117
-   that, if non-NULL, is used to fix up timestamps after rename.  Return 0 if
118
-   ok, -1 if error.  */
119
+/* Copy FROM to TO.  TARGET_STAT has the file status that, if non-NULL,
120
+   is used to fix up timestamps.  Return 0 if ok, -1 if error.
121
+   At one time this function renamed files, but file permissions are
122
+   tricky to update given the number of different schemes used by
123
+   various systems.  So now we just copy.  */
124
 
125
 int
126
 smart_rename (const char *from, const char *to,
127
-	      struct stat *target_stat ATTRIBUTE_UNUSED)
128
+	      struct stat *target_stat)
129
 {
130
-  int ret = 0;
131
-  struct stat to_stat;
132
-  bfd_boolean exists;
133
-
134
-  exists = lstat (to, &to_stat) == 0;
135
-
136
-#if defined (_WIN32) && !defined (__CYGWIN32__)
137
-  /* Win32, unlike unix, will not erase `to' in `rename(from, to)' but
138
-     fail instead.  Also, chown is not present.  */
139
-
140
-  if (exists)
141
-    remove (to);
142
+  int ret;
143
 
144
-  ret = rename (from, to);
145
+  ret = simple_copy (from, to);
146
   if (ret != 0)
147
-    {
148
-      /* We have to clean up here.  */
149
-      non_fatal (_("unable to rename '%s'; reason: %s"), to, strerror (errno));
150
-      unlink (from);
151
-    }
152
-#else
153
-  /* Avoid a full copy and use rename if TO does not exist.  */
154
-  if (!exists)
155
-    {
156
-      if ((ret = rename (from, to)) != 0)
157
-	{
158
-	  /* We have to clean up here.  */
159
-	  non_fatal (_("unable to rename '%s'; reason: %s"), to, strerror (errno));
160
-	  unlink (from);
161
-	}
162
-    }
163
-  else
164
-    {
165
-      ret = simple_copy (from, to);
166
-      if (ret != 0)
167
-	non_fatal (_("unable to copy file '%s'; reason: %s"), to, strerror (errno));
168
+    non_fatal (_("unable to copy file '%s'; reason: %s"),
169
+	       to, strerror (errno));
170
 
171
-      if (target_stat != NULL)
172
-	set_times (to, target_stat);
173
-      unlink (from);
174
-    }
175
-#endif /* _WIN32 && !__CYGWIN32__ */
176
+  if (target_stat != NULL)
177
+    set_times (to, target_stat);
178
+  unlink (from);
179
 
180
   return ret;
181
 }
182
-- 
183
2.32.0
184
(-)b/devel/binutils/files/patch-0028-08bdb5f4f98 (+354 lines)
Added Link Here
1
From 08bdb5f4f98b6a5e1a9bdc89e7d1889933859caf Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Tue, 23 Feb 2021 12:10:58 +1030
4
Subject: [PATCH 028/169] Use make_tempname file descriptor in smart_rename
5
6
This patch makes use of the temp file descriptor in smart_rename
7
rather than reopening the file.  I don't believe there is a security
8
issue in reopening the file, but this way is one less directory
9
operation.  The patch also attempts to preserve S_ISUID and S_ISGID.
10
11
	PR 27456
12
	* bucomm.h (smart_rename): Update prototype.
13
	* rename.c (smart_rename): Add fromfd and preserve_dates params.
14
	Pass fromfd and target_stat to simple_copy.  Call set_times
15
	when preserve_dates.
16
	(simple_copy): Accept fromfd rather than from filename.  Add
17
	target_stat param.  Rewind fromfd rather than opening.  Open
18
	"to" file without O_CREAT.  Try to preserve S_ISUID and S_ISGID.
19
	* ar.c (write_archive): Rename ofd to tmpfd.  Dup tmpfd before
20
	closing output temp file, and pass tmpfd to smart_rename.
21
	* arsup.c (temp_fd): Rename from real_fd.
22
	(ar_save): Dup temp_fd and pass to smart_rename.
23
	* objcopy.c (strip_main, copy_main): Likewise, and pass
24
	preserve_dates.
25
26
(cherry picked from commit c42c71a1527dd70417d3966dce7ba9edbcf4bdb4)
27
---
28
 binutils/ChangeLog | 17 +++++++++++++++++
29
 binutils/ar.c      | 11 ++++++-----
30
 binutils/arsup.c   |  9 +++++----
31
 binutils/bucomm.h  |  3 ++-
32
 binutils/objcopy.c | 42 +++++++++++++++++++++++++++++++-----------
33
 binutils/rename.c  | 35 +++++++++++++++++++++--------------
34
 6 files changed, 82 insertions(+), 35 deletions(-)
35
36
diff --git binutils/ChangeLog binutils/ChangeLog
37
index 03f71b767cc..3b9d95418b9 100644
38
--- binutils/ChangeLog
39
+++ binutils/ChangeLog
40
@@ -1,6 +1,23 @@
41
 2021-02-26  Alan Modra  <amodra@gmail.com>
42
 
43
 	Backport from mainline
44
+	2021-02-24  Alan Modra  <amodra@gmail.com>
45
+		    Siddhesh Poyarekar  <siddhesh@gotplt.org>
46
+	PR 27456
47
+	* bucomm.h (smart_rename): Update prototype.
48
+	* rename.c (smart_rename): Add fromfd and preserve_dates params.
49
+	Pass fromfd and target_stat to simple_copy.  Call set_times
50
+	when preserve_dates.
51
+	(simple_copy): Accept fromfd rather than from filename.  Add
52
+	target_stat param.  Rewind fromfd rather than opening.  Open
53
+	"to" file without O_CREAT.  Try to preserve S_ISUID and S_ISGID.
54
+	* ar.c (write_archive): Rename ofd to tmpfd.  Dup tmpfd before
55
+	closing output temp file, and pass tmpfd to smart_rename.
56
+	* arsup.c (temp_fd): Rename from real_fd.
57
+	(ar_save): Dup temp_fd and pass to smart_rename.
58
+	* objcopy.c (strip_main, copy_main): Likewise, and pass
59
+	preserve_dates.
60
+
61
 	2021-02-24  Alan Modra  <amodra@gmail.com>
62
 	PR 27456
63
 	* rename.c: Tidy throughout.
64
diff --git binutils/ar.c binutils/ar.c
65
index 44df48c5c67..fb19b14fec5 100644
66
--- binutils/ar.c
67
+++ binutils/ar.c
68
@@ -1252,21 +1252,21 @@ write_archive (bfd *iarch)
69
   bfd *obfd;
70
   char *old_name, *new_name;
71
   bfd *contents_head = iarch->archive_next;
72
-  int ofd = -1;
73
+  int tmpfd = -1;
74
 
75
   old_name = xstrdup (bfd_get_filename (iarch));
76
-  new_name = make_tempname (old_name, &ofd);
77
+  new_name = make_tempname (old_name, &tmpfd);
78
 
79
   if (new_name == NULL)
80
     bfd_fatal (_("could not create temporary file whilst writing archive"));
81
 
82
   output_filename = new_name;
83
 
84
-  obfd = bfd_fdopenw (new_name, bfd_get_target (iarch), ofd);
85
+  obfd = bfd_fdopenw (new_name, bfd_get_target (iarch), tmpfd);
86
 
87
   if (obfd == NULL)
88
     {
89
-      close (ofd);
90
+      close (tmpfd);
91
       bfd_fatal (old_name);
92
     }
93
 
94
@@ -1297,6 +1297,7 @@ write_archive (bfd *iarch)
95
   if (!bfd_set_archive_head (obfd, contents_head))
96
     bfd_fatal (old_name);
97
 
98
+  tmpfd = dup (tmpfd);
99
   if (!bfd_close (obfd))
100
     bfd_fatal (old_name);
101
 
102
@@ -1306,7 +1307,7 @@ write_archive (bfd *iarch)
103
   /* We don't care if this fails; we might be creating the archive.  */
104
   bfd_close (iarch);
105
 
106
-  if (smart_rename (new_name, old_name, NULL) != 0)
107
+  if (smart_rename (new_name, old_name, tmpfd, NULL, FALSE) != 0)
108
     xexit (1);
109
   free (old_name);
110
   free (new_name);
111
diff --git binutils/arsup.c binutils/arsup.c
112
index f7ce8f0bc82..9982484dbe0 100644
113
--- binutils/arsup.c
114
+++ binutils/arsup.c
115
@@ -43,7 +43,7 @@ extern int deterministic;
116
 static bfd *obfd;
117
 static char *real_name;
118
 static char *temp_name;
119
-static int real_ofd;
120
+static int temp_fd;
121
 static FILE *outfile;
122
 
123
 static void
124
@@ -152,7 +152,7 @@ void
125
 ar_open (char *name, int t)
126
 {
127
   real_name = xstrdup (name);
128
-  temp_name = make_tempname (real_name, &real_ofd);
129
+  temp_name = make_tempname (real_name, &temp_fd);
130
 
131
   if (temp_name == NULL)
132
     {
133
@@ -162,7 +162,7 @@ ar_open (char *name, int t)
134
       return;
135
     }
136
 
137
-  obfd = bfd_fdopenw (temp_name, NULL, real_ofd);
138
+  obfd = bfd_fdopenw (temp_name, NULL, temp_fd);
139
 
140
   if (!obfd)
141
     {
142
@@ -348,6 +348,7 @@ ar_save (void)
143
       if (deterministic > 0)
144
         obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
145
 
146
+      temp_fd = dup (temp_fd);
147
       bfd_close (obfd);
148
 
149
       if (stat (real_name, &target_stat) != 0)
150
@@ -363,7 +364,7 @@ ar_save (void)
151
 	    }
152
 	}
153
 
154
-      smart_rename (temp_name, real_name, NULL);
155
+      smart_rename (temp_name, real_name, temp_fd, NULL, FALSE);
156
       obfd = 0;
157
       free (temp_name);
158
       free (real_name);
159
diff --git binutils/bucomm.h binutils/bucomm.h
160
index aa7e33d8cd1..f1ae47fa1b5 100644
161
--- binutils/bucomm.h
162
+++ binutils/bucomm.h
163
@@ -71,7 +71,8 @@ extern void print_version (const char *);
164
 /* In rename.c.  */
165
 extern void set_times (const char *, const struct stat *);
166
 
167
-extern int smart_rename (const char *, const char *, struct stat *);
168
+extern int smart_rename (const char *, const char *, int,
169
+			 struct stat *, bfd_boolean);
170
 
171
 
172
 /* In libiberty.  */
173
diff --git binutils/objcopy.c binutils/objcopy.c
174
index 73aa8bc2514..620baee6dec 100644
175
--- binutils/objcopy.c
176
+++ binutils/objcopy.c
177
@@ -4834,6 +4834,7 @@ strip_main (int argc, char *argv[])
178
       struct stat statbuf;
179
       char *tmpname;
180
       int tmpfd = -1;
181
+      int copyfd = -1;
182
 
183
       if (get_file_size (argv[i]) < 1)
184
 	{
185
@@ -4843,7 +4844,11 @@ strip_main (int argc, char *argv[])
186
 
187
       if (output_file == NULL
188
 	  || filename_cmp (argv[i], output_file) == 0)
189
-	tmpname = make_tempname (argv[i], &tmpfd);
190
+	{
191
+	  tmpname = make_tempname (argv[i], &tmpfd);
192
+	  if (tmpfd >= 0)
193
+	    copyfd = dup (tmpfd);
194
+	}
195
       else
196
 	tmpname = output_file;
197
 
198
@@ -4861,14 +4866,18 @@ strip_main (int argc, char *argv[])
199
       if (status == 0)
200
 	{
201
 	  if (output_file != tmpname)
202
-	    status = (smart_rename (tmpname,
203
-				    output_file ? output_file : argv[i],
204
-				    preserve_dates ? &statbuf : NULL) != 0);
205
+	    status = smart_rename (tmpname,
206
+				   output_file ? output_file : argv[i],
207
+				   copyfd, &statbuf, preserve_dates) != 0;
208
 	  if (status == 0)
209
 	    status = hold_status;
210
 	}
211
       else
212
-	unlink_if_ordinary (tmpname);
213
+	{
214
+	  if (copyfd >= 0)
215
+	    close (copyfd);
216
+	  unlink_if_ordinary (tmpname);
217
+	}
218
       if (output_file != tmpname)
219
 	free (tmpname);
220
     }
221
@@ -5075,7 +5084,9 @@ copy_main (int argc, char *argv[])
222
   bfd_boolean formats_info = FALSE;
223
   bfd_boolean use_globalize = FALSE;
224
   bfd_boolean use_keep_global = FALSE;
225
-  int c, tmpfd = -1;
226
+  int c;
227
+  int tmpfd = -1;
228
+  int copyfd;
229
   struct stat statbuf;
230
   const bfd_arch_info_type *input_arch = NULL;
231
 
232
@@ -5913,10 +5924,15 @@ copy_main (int argc, char *argv[])
233
     }
234
 
235
   /* If there is no destination file, or the source and destination files
236
-     are the same, then create a temp and rename the result into the input.  */
237
+     are the same, then create a temp and copy the result into the input.  */
238
+  copyfd = -1;
239
   if (output_filename == NULL
240
       || filename_cmp (input_filename, output_filename) == 0)
241
-    tmpname = make_tempname (input_filename, &tmpfd);
242
+    {
243
+      tmpname = make_tempname (input_filename, &tmpfd);
244
+      if (tmpfd >= 0)
245
+	copyfd = dup (tmpfd);
246
+    }
247
   else
248
     tmpname = output_filename;
249
 
250
@@ -5929,11 +5945,15 @@ copy_main (int argc, char *argv[])
251
   if (status == 0)
252
     {
253
       if (tmpname != output_filename)
254
-	status = (smart_rename (tmpname, input_filename,
255
-				preserve_dates ? &statbuf : NULL) != 0);
256
+	status = smart_rename (tmpname, input_filename, copyfd,
257
+			       &statbuf, preserve_dates) != 0;
258
     }
259
   else
260
-    unlink_if_ordinary (tmpname);
261
+    {
262
+      if (copyfd >= 0)
263
+	close (copyfd);
264
+      unlink_if_ordinary (tmpname);
265
+    }
266
 
267
   if (tmpname != output_filename)
268
     free (tmpname);
269
diff --git binutils/rename.c binutils/rename.c
270
index 72a9323d72c..f688f350d51 100644
271
--- binutils/rename.c
272
+++ binutils/rename.c
273
@@ -31,24 +31,21 @@
274
 /* The number of bytes to copy at once.  */
275
 #define COPY_BUF 8192
276
 
277
-/* Copy file FROM to file TO, performing no translations.
278
+/* Copy file FROMFD to file TO, performing no translations.
279
    Return 0 if ok, -1 if error.  */
280
 
281
 static int
282
-simple_copy (const char *from, const char *to)
283
+simple_copy (int fromfd, const char *to, struct stat *target_stat)
284
 {
285
-  int fromfd, tofd, nread;
286
+  int tofd, nread;
287
   int saved;
288
   char buf[COPY_BUF];
289
 
290
-  fromfd = open (from, O_RDONLY | O_BINARY);
291
-  if (fromfd < 0)
292
+  if (fromfd < 0
293
+      || lseek (fromfd, 0, SEEK_SET) != 0)
294
     return -1;
295
-#ifdef O_CREAT
296
-  tofd = open (to, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0777);
297
-#else
298
-  tofd = creat (to, 0777);
299
-#endif
300
+
301
+  tofd = open (to, O_WRONLY | O_TRUNC | O_BINARY);
302
   if (tofd < 0)
303
     {
304
       saved = errno;
305
@@ -56,6 +53,7 @@ simple_copy (const char *from, const char *to)
306
       errno = saved;
307
       return -1;
308
     }
309
+
310
   while ((nread = read (fromfd, buf, sizeof buf)) > 0)
311
     {
312
       if (write (tofd, buf, nread) != nread)
313
@@ -67,7 +65,16 @@ simple_copy (const char *from, const char *to)
314
 	  return -1;
315
 	}
316
     }
317
+
318
   saved = errno;
319
+
320
+#if !defined (_WIN32) || defined (__CYGWIN32__)
321
+  /* Writing to a setuid/setgid file may clear S_ISUID and S_ISGID.
322
+     Try to restore them, ignoring failure.  */
323
+  if (target_stat != NULL)
324
+    fchmod (tofd, target_stat->st_mode);
325
+#endif
326
+
327
   close (fromfd);
328
   close (tofd);
329
   if (nread < 0)
330
@@ -118,17 +125,17 @@ set_times (const char *destination, const struct stat *statbuf)
331
    various systems.  So now we just copy.  */
332
 
333
 int
334
-smart_rename (const char *from, const char *to,
335
-	      struct stat *target_stat)
336
+smart_rename (const char *from, const char *to, int fromfd,
337
+	      struct stat *target_stat, bfd_boolean preserve_dates)
338
 {
339
   int ret;
340
 
341
-  ret = simple_copy (from, to);
342
+  ret = simple_copy (fromfd, to, target_stat);
343
   if (ret != 0)
344
     non_fatal (_("unable to copy file '%s'; reason: %s"),
345
 	       to, strerror (errno));
346
 
347
-  if (target_stat != NULL)
348
+  if (preserve_dates)
349
     set_times (to, target_stat);
350
   unlink (from);
351
 
352
-- 
353
2.32.0
354
(-)b/devel/binutils/files/patch-0029-1aad0a424af (+46 lines)
Added Link Here
1
From 1aad0a424af288cbd7f70ad5f932664a1abd5a79 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Thu, 25 Feb 2021 09:46:02 +1030
4
Subject: [PATCH 029/169] Re: Use make_tempname file descriptor in smart_rename
5
6
	PR 27456
7
	* rename.c (simple_copy): Mark target_stat ATTRIBUTE_UNUSED.
8
9
(cherry picked from commit 40b02646ec5b197e63ba904f95ea101d95a50cf4)
10
---
11
 binutils/ChangeLog | 4 ++++
12
 binutils/rename.c  | 3 ++-
13
 2 files changed, 6 insertions(+), 1 deletion(-)
14
15
diff --git binutils/ChangeLog binutils/ChangeLog
16
index 3b9d95418b9..57ee4bc8ab2 100644
17
--- binutils/ChangeLog
18
+++ binutils/ChangeLog
19
@@ -1,6 +1,10 @@
20
 2021-02-26  Alan Modra  <amodra@gmail.com>
21
 
22
 	Backport from mainline
23
+	2021-02-25  Alan Modra  <amodra@gmail.com>
24
+	PR 27456
25
+	* rename.c (simple_copy): Mark target_stat ATTRIBUTE_UNUSED.
26
+
27
 	2021-02-24  Alan Modra  <amodra@gmail.com>
28
 		    Siddhesh Poyarekar  <siddhesh@gotplt.org>
29
 	PR 27456
30
diff --git binutils/rename.c binutils/rename.c
31
index f688f350d51..861c2b56d18 100644
32
--- binutils/rename.c
33
+++ binutils/rename.c
34
@@ -35,7 +35,8 @@
35
    Return 0 if ok, -1 if error.  */
36
 
37
 static int
38
-simple_copy (int fromfd, const char *to, struct stat *target_stat)
39
+simple_copy (int fromfd, const char *to,
40
+	     struct stat *target_stat ATTRIBUTE_UNUSED)
41
 {
42
   int tofd, nread;
43
   int saved;
44
-- 
45
2.32.0
46
(-)b/devel/binutils/files/patch-0033-e3316baf921 (+86 lines)
Added Link Here
1
From e3316baf921523e884731f5c7b547bc9362039e5 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Wed, 24 Feb 2021 18:01:16 +1030
4
Subject: [PATCH 033/169] PR27441, inconsistency in weak definitions
5
6
This makes IR objects use the same logic as normal objects with
7
respect to what sort of ref/def makes an as-needed library needed.
8
Testing the binding of the definition is just plain wrong.  What
9
matters is the binding of the reference.
10
11
	PR 27441
12
	* elf-bfd.h (struct elf_link_hash_entry): Add ref_ir_nonweak.
13
	* elflink.c (elf_link_add_object_symbols): Set ref_ir_nonweak and
14
	use when deciding an as-needed library should be loaded instead
15
	of using the binding of the library definition.
16
17
(cherry picked from commit bbaddd4bbeba65200ee805d87c2e3a845842e3eb)
18
---
19
 bfd/ChangeLog | 10 ++++++++++
20
 bfd/elf-bfd.h |  2 ++
21
 bfd/elflink.c | 11 ++++++++---
22
 3 files changed, 20 insertions(+), 3 deletions(-)
23
24
diff --git bfd/ChangeLog bfd/ChangeLog
25
index 0c4631e15e6..d49efdb618a 100644
26
--- bfd/ChangeLog
27
+++ bfd/ChangeLog
28
@@ -1,3 +1,13 @@
29
+2021-03-01  Alan Modra  <amodra@gmail.com>
30
+
31
+	Apply from mainline
32
+	2021-02-25  Alan Modra  <amodra@gmail.com>
33
+	PR 27441
34
+	* elf-bfd.h (struct elf_link_hash_entry): Add ref_ir_nonweak.
35
+	* elflink.c (elf_link_add_object_symbols): Set ref_ir_nonweak and
36
+	use when deciding an as-needed library should be loaded instead
37
+	of using the binding of the library definition.
38
+
39
 2021-02-06  Nick Clifton  <nickc@redhat.com>
40
 
41
 	(development): Set to true.
42
diff --git bfd/elf-bfd.h bfd/elf-bfd.h
43
index 15206b4e876..2cff9f055c5 100644
44
--- bfd/elf-bfd.h
45
+++ bfd/elf-bfd.h
46
@@ -184,6 +184,8 @@ struct elf_link_hash_entry
47
   /* Symbol has a non-weak reference from a non-shared object (other than
48
      the object in which it is defined).  */
49
   unsigned int ref_regular_nonweak : 1;
50
+  /* Symbol has a non-weak reference from a LTO IR object file.  */
51
+  unsigned int ref_ir_nonweak : 1;
52
   /* Dynamic symbol has been adjustd.  */
53
   unsigned int dynamic_adjusted : 1;
54
   /* Symbol needs a copy reloc.  */
55
diff --git bfd/elflink.c bfd/elflink.c
56
index 7afbc5b1072..08f241d79a5 100644
57
--- bfd/elflink.c
58
+++ bfd/elflink.c
59
@@ -5029,7 +5029,12 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
60
 
61
 	  /* Plugin symbols aren't normal.  Don't set def/ref flags.  */
62
 	  if ((abfd->flags & BFD_PLUGIN) != 0)
63
-	    ;
64
+	    {
65
+	      /* Except for this flag to track nonweak references.  */
66
+	      if (!definition
67
+		  && bind != STB_WEAK)
68
+		h->ref_ir_nonweak = 1;
69
+	    }
70
 	  else if (!dynamic)
71
 	    {
72
 	      if (! definition)
73
@@ -5279,8 +5284,8 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
74
 		   && h->ref_regular_nonweak)
75
 		  || (old_bfd != NULL
76
 		      && (old_bfd->flags & BFD_PLUGIN) != 0
77
-		      && !info->lto_all_symbols_read
78
-		      && bind != STB_WEAK)
79
+		      && h->ref_ir_nonweak
80
+		      && !info->lto_all_symbols_read)
81
 		  || (h->ref_dynamic_nonweak
82
 		      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0
83
 		      && !on_needed_list (elf_dt_name (abfd),
84
-- 
85
2.32.0
86
(-)b/devel/binutils/files/patch-0035-e748f8e4076 (+242 lines)
Added Link Here
1
From e748f8e407692a59efe65bfe67240d1f773e7d61 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Tue, 2 Mar 2021 21:22:31 +1030
4
Subject: [PATCH 035/169] PowerPC64 undefined weak visibility vs GOT
5
 optimisation
6
7
Undefined weak symbols with non-default visibility are seen as local
8
by SYMBOL_REFERENCES_LOCAL.  This stops a got indirect to relative
9
optimisation for them, so that pies and dlls don't get non-zero values
10
when loading somewhere other than the address they are linked at
11
(which always happens).  The optimisation could be allowed for pdes,
12
but I thought it best not to allow it there too.
13
14
bfd/
15
	* elf64-ppc.c (ppc64_elf_relocate_section): Don't optimise got
16
	indirect to pc-relative or toc-relative for undefined symbols.
17
ld/
18
	* testsuite/ld-powerpc/weak1.d,
19
	* testsuite/ld-powerpc/weak1.r,
20
	* testsuite/ld-powerpc/weak1.s,
21
	* testsuite/ld-powerpc/weak1so.d,
22
	* testsuite/ld-powerpc/weak1so.r: New tests.
23
	* testsuite/ld-powerpc/powerpc.exp: Run them.
24
25
(cherry picked from commit f5b9c288a3057f0f04e74f00fdb0e79d171d54a8)
26
---
27
 bfd/ChangeLog                       |  5 +++++
28
 bfd/elf64-ppc.c                     |  9 +++++++++
29
 ld/ChangeLog                        |  9 +++++++++
30
 ld/testsuite/ld-powerpc/powerpc.exp |  6 ++++++
31
 ld/testsuite/ld-powerpc/weak1.d     | 26 ++++++++++++++++++++++++++
32
 ld/testsuite/ld-powerpc/weak1.r     |  5 +++++
33
 ld/testsuite/ld-powerpc/weak1.s     | 22 ++++++++++++++++++++++
34
 ld/testsuite/ld-powerpc/weak1so.d   | 26 ++++++++++++++++++++++++++
35
 ld/testsuite/ld-powerpc/weak1so.r   |  7 +++++++
36
 9 files changed, 115 insertions(+)
37
 create mode 100644 ld/testsuite/ld-powerpc/weak1.d
38
 create mode 100644 ld/testsuite/ld-powerpc/weak1.r
39
 create mode 100644 ld/testsuite/ld-powerpc/weak1.s
40
 create mode 100644 ld/testsuite/ld-powerpc/weak1so.d
41
 create mode 100644 ld/testsuite/ld-powerpc/weak1so.r
42
43
diff --git bfd/ChangeLog bfd/ChangeLog
44
index d49efdb618a..6b399753762 100644
45
--- bfd/ChangeLog
46
+++ bfd/ChangeLog
47
@@ -1,3 +1,8 @@
48
+2021-03-02  Alan Modra  <amodra@gmail.com>
49
+
50
+	* elf64-ppc.c (ppc64_elf_relocate_section): Don't optimise got
51
+	indirect to pc-relative or toc-relative for undefined symbols.
52
+
53
 2021-03-01  Alan Modra  <amodra@gmail.com>
54
 
55
 	Apply from mainline
56
diff --git bfd/elf64-ppc.c bfd/elf64-ppc.c
57
index 3119aaca84c..77f2c855864 100644
58
--- bfd/elf64-ppc.c
59
+++ bfd/elf64-ppc.c
60
@@ -16071,6 +16071,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
61
 	    break;
62
 	  from = TOCstart + htab->sec_info[input_section->id].toc_off;
63
 	  if (relocation + addend - from + 0x8000 < 0x10000
64
+	      && sec != NULL
65
+	      && sec->output_section != NULL
66
+	      && !discarded_section (sec)
67
 	      && (h == NULL || SYMBOL_REFERENCES_LOCAL (info, &h->elf)))
68
 	    {
69
 	      insn = bfd_get_32 (input_bfd, contents + (rel->r_offset & ~3));
70
@@ -16091,6 +16094,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
71
 	    break;
72
 	  from = TOCstart + htab->sec_info[input_section->id].toc_off;
73
 	  if (relocation + addend - from + 0x80008000ULL < 0x100000000ULL
74
+	      && sec != NULL
75
+	      && sec->output_section != NULL
76
+	      && !discarded_section (sec)
77
 	      && (h == NULL || SYMBOL_REFERENCES_LOCAL (info, &h->elf)))
78
 	    {
79
 	      insn = bfd_get_32 (input_bfd, contents + (rel->r_offset & ~3));
80
@@ -16119,6 +16125,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
81
 		  + input_section->output_section->vma
82
 		  + input_section->output_offset);
83
 	  if (!(relocation - from + (1ULL << 33) < 1ULL << 34
84
+		&& sec != NULL
85
+		&& sec->output_section != NULL
86
+		&& !discarded_section (sec)
87
 		&& (h == NULL || SYMBOL_REFERENCES_LOCAL (info, &h->elf))))
88
 	    break;
89
 
90
diff --git ld/ChangeLog ld/ChangeLog
91
index bb21b1b8ee6..094ca70ad0c 100644
92
--- ld/ChangeLog
93
+++ ld/ChangeLog
94
@@ -1,3 +1,12 @@
95
+2021-03-02  Alan Modra  <amodra@gmail.com>
96
+
97
+	* testsuite/ld-powerpc/weak1.d,
98
+	* testsuite/ld-powerpc/weak1.r,
99
+	* testsuite/ld-powerpc/weak1.s,
100
+	* testsuite/ld-powerpc/weak1so.d,
101
+	* testsuite/ld-powerpc/weak1so.r: New tests.
102
+	* testsuite/ld-powerpc/powerpc.exp: Run them.
103
+
104
 2021-02-07  H.J. Lu  <hongjiu.lu@intel.com>
105
 
106
 	PR ld/27358
107
diff --git ld/testsuite/ld-powerpc/powerpc.exp ld/testsuite/ld-powerpc/powerpc.exp
108
index 45485e6c5d1..8aa0eccfa0e 100644
109
--- ld/testsuite/ld-powerpc/powerpc.exp
110
+++ ld/testsuite/ld-powerpc/powerpc.exp
111
@@ -344,6 +344,12 @@ set ppc64elftests {
112
     {"group3" "-melf64ppc -e foo" "" "-a64" {group3.s group2.s group1.s}
113
 	{{objdump {-d} group2.d}
114
 	 {readelf {-s} group3.sym}} "group3"}
115
+    {"weak1" "-melf64ppc --hash-style=both" ""
116
+	"-a64 -mpower10" {weak1.s}
117
+	{{objdump -d weak1.d} {readelf {-srW} weak1.r}} "weak1"}
118
+    {"weak1.so" "-shared -melf64ppc --hash-style=both" ""
119
+	"-a64 -mpower10" {weak1.s}
120
+	{{objdump -d weak1so.d} {readelf {-srW} weak1so.r}} "weak1.so"}
121
 }
122
 
123
 set ppceabitests {
124
diff --git ld/testsuite/ld-powerpc/weak1.d ld/testsuite/ld-powerpc/weak1.d
125
new file mode 100644
126
index 00000000000..c0127539ddd
127
--- /dev/null
128
+++ ld/testsuite/ld-powerpc/weak1.d
129
@@ -0,0 +1,26 @@
130
+
131
+.*:     file format .*
132
+
133
+Disassembly of section \.text:
134
+
135
+.*0c0 <_start>:
136
+.*0c0:	(04 10 00 01|01 00 10 04) 	pld     r3,65888
137
+.*0c4:	(e4 60 01 60|60 01 60 e4) 
138
+.*0c8:	(04 10 00 01|01 00 10 04) 	pld     r3,65856
139
+.*0cc:	(e4 60 01 40|40 01 60 e4) 
140
+.*0d0:	(04 10 00 01|01 00 10 04) 	pld     r3,65864
141
+.*0d4:	(e4 60 01 48|48 01 60 e4) 
142
+.*0d8:	(04 10 00 01|01 00 10 04) 	pld     r3,65848
143
+.*0dc:	(e4 60 01 38|38 01 60 e4) 
144
+.*0e0:	(e8 62 80 20|20 80 62 e8) 	ld      r3,-32736\(r2\)
145
+.*0e4:	(e8 62 80 08|08 80 62 e8) 	ld      r3,-32760\(r2\)
146
+.*0e8:	(e8 62 80 18|18 80 62 e8) 	ld      r3,-32744\(r2\)
147
+.*0ec:	(e8 62 80 10|10 80 62 e8) 	ld      r3,-32752\(r2\)
148
+.*0f0:	(60 00 00 00|00 00 00 60) 	nop
149
+.*0f4:	(e8 62 80 20|20 80 62 e8) 	ld      r3,-32736\(r2\)
150
+.*0f8:	(60 00 00 00|00 00 00 60) 	nop
151
+.*0fc:	(e8 62 80 08|08 80 62 e8) 	ld      r3,-32760\(r2\)
152
+.*100:	(60 00 00 00|00 00 00 60) 	nop
153
+.*104:	(e8 62 80 18|18 80 62 e8) 	ld      r3,-32744\(r2\)
154
+.*108:	(60 00 00 00|00 00 00 60) 	nop
155
+.*10c:	(e8 62 80 10|10 80 62 e8) 	ld      r3,-32752\(r2\)
156
diff --git ld/testsuite/ld-powerpc/weak1.r ld/testsuite/ld-powerpc/weak1.r
157
new file mode 100644
158
index 00000000000..7d73f38cbb3
159
--- /dev/null
160
+++ ld/testsuite/ld-powerpc/weak1.r
161
@@ -0,0 +1,5 @@
162
+
163
+There are no relocations in this file.
164
+
165
+Symbol table '\.symtab' .*
166
+#pass
167
diff --git ld/testsuite/ld-powerpc/weak1.s ld/testsuite/ld-powerpc/weak1.s
168
new file mode 100644
169
index 00000000000..0f370d974ba
170
--- /dev/null
171
+++ ld/testsuite/ld-powerpc/weak1.s
172
@@ -0,0 +1,22 @@
173
+ .weak x1, x2, x3, x4
174
+ .protected x2
175
+ .hidden x3
176
+ .internal x4
177
+ .global _start
178
+_start:
179
+ pld 3,x1@got@pcrel
180
+ pld 3,x2@got@pcrel
181
+ pld 3,x3@got@pcrel
182
+ pld 3,x4@got@pcrel
183
+ ld 3,x1@got(2)
184
+ ld 3,x2@got(2)
185
+ ld 3,x3@got(2)
186
+ ld 3,x4@got(2)
187
+ addis 9,2,x1@got@ha
188
+ ld 3,x1@got@l(9)
189
+ addis 9,2,x2@got@ha
190
+ ld 3,x2@got@l(9)
191
+ addis 9,2,x3@got@ha
192
+ ld 3,x3@got@l(9)
193
+ addis 9,2,x4@got@ha
194
+ ld 3,x4@got@l(9)
195
diff --git ld/testsuite/ld-powerpc/weak1so.d ld/testsuite/ld-powerpc/weak1so.d
196
new file mode 100644
197
index 00000000000..0d34b3b4840
198
--- /dev/null
199
+++ ld/testsuite/ld-powerpc/weak1so.d
200
@@ -0,0 +1,26 @@
201
+
202
+.*:     file format .*
203
+
204
+Disassembly of section \.text:
205
+
206
+0+1c0 <_start>:
207
+ 1c0:	(04 10 00 01|01 00 10 04) 	pld     r3,66144
208
+ 1c4:	(e4 60 02 60|60 02 60 e4) 
209
+ 1c8:	(04 10 00 01|01 00 10 04) 	pld     r3,66112
210
+ 1cc:	(e4 60 02 40|40 02 60 e4) 
211
+ 1d0:	(04 10 00 01|01 00 10 04) 	pld     r3,66120
212
+ 1d4:	(e4 60 02 48|48 02 60 e4) 
213
+ 1d8:	(04 10 00 01|01 00 10 04) 	pld     r3,66104
214
+ 1dc:	(e4 60 02 38|38 02 60 e4) 
215
+ 1e0:	(e8 62 80 20|20 80 62 e8) 	ld      r3,-32736\(r2\)
216
+ 1e4:	(e8 62 80 08|08 80 62 e8) 	ld      r3,-32760\(r2\)
217
+ 1e8:	(e8 62 80 18|18 80 62 e8) 	ld      r3,-32744\(r2\)
218
+ 1ec:	(e8 62 80 10|10 80 62 e8) 	ld      r3,-32752\(r2\)
219
+ 1f0:	(60 00 00 00|00 00 00 60) 	nop
220
+ 1f4:	(e8 62 80 20|20 80 62 e8) 	ld      r3,-32736\(r2\)
221
+ 1f8:	(60 00 00 00|00 00 00 60) 	nop
222
+ 1fc:	(e8 62 80 08|08 80 62 e8) 	ld      r3,-32760\(r2\)
223
+ 200:	(60 00 00 00|00 00 00 60) 	nop
224
+ 204:	(e8 62 80 18|18 80 62 e8) 	ld      r3,-32744\(r2\)
225
+ 208:	(60 00 00 00|00 00 00 60) 	nop
226
+ 20c:	(e8 62 80 10|10 80 62 e8) 	ld      r3,-32752\(r2\)
227
diff --git ld/testsuite/ld-powerpc/weak1so.r ld/testsuite/ld-powerpc/weak1so.r
228
new file mode 100644
229
index 00000000000..dcc91f1879a
230
--- /dev/null
231
+++ ld/testsuite/ld-powerpc/weak1so.r
232
@@ -0,0 +1,7 @@
233
+#...
234
+.* R_PPC64_GLOB_DAT +0+ x1 \+ 0
235
+#...
236
+.* 0+ +0 NOTYPE +WEAK +DEFAULT +UND x1
237
+#...
238
+.* 0+ +0 NOTYPE +WEAK +DEFAULT +UND x1
239
+#pass
240
-- 
241
2.32.0
242
(-)b/devel/binutils/files/patch-0053-26952c7e3c5 (+92 lines)
Added Link Here
1
From 26952c7e3c5342266a2c32ebe1cd96c8795ca7f2 Mon Sep 17 00:00:00 2001
2
From: Nick Alcock <nick.alcock@oracle.com>
3
Date: Thu, 18 Mar 2021 12:37:52 +0000
4
Subject: [PATCH 053/169] Add install dependencies for ld -> bfd and libctf ->
5
 bfd
6
7
This stops problems parallel-installing if a relink of libctf is needed.
8
9
Also adds corresponding install-strip dependencies.
10
11
ChangeLog
12
2021-03-18  Nick Alcock  <nick.alcock@oracle.com>
13
14
	PR libctf/27482
15
	* Makefile.def: Add install-bfd dependencies for install-libctf and
16
	install-ld, and install-strip-bfd dependencies for
17
	install-strip-libctf and install-strip-ld; move the install-ld
18
	dependency on install-libctf to join it.
19
	* Makefile.in: Regenerated.
20
---
21
 ChangeLog    | 9 +++++++++
22
 Makefile.def | 9 ++++++++-
23
 Makefile.in  | 7 ++++++-
24
 3 files changed, 23 insertions(+), 2 deletions(-)
25
26
diff --git ChangeLog ChangeLog
27
index 8420c77ff49..1a00154ef51 100644
28
--- ChangeLog
29
+++ ChangeLog
30
@@ -1,3 +1,12 @@
31
+2021-03-18  Nick Alcock  <nick.alcock@oracle.com>
32
+
33
+	PR libctf/27482
34
+	* Makefile.def: Add install-bfd dependencies for install-libctf and
35
+	install-ld, and install-strip-bfd dependencies for
36
+	install-strip-libctf and install-strip-ld; move the install-ld
37
+	dependency on install-libctf to join it.
38
+	* Makefile.in: Regenerated.
39
+
40
 2021-01-26  Nick Alcock  <nick.alcock@oracle.com>
41
 
42
 	* Makefile.def: Add install-libctf dependency to install-ld.
43
diff --git Makefile.def Makefile.def
44
index b45e580da5b..eb15489390e 100644
45
--- Makefile.def
46
+++ Makefile.def
47
@@ -448,7 +448,6 @@ dependencies = { module=all-binutils; on=all-intl; };
48
 dependencies = { module=all-binutils; on=all-gas; };
49
 dependencies = { module=all-binutils; on=all-libctf; };
50
 dependencies = { module=all-ld; on=all-libctf; };
51
-dependencies = { module=install-ld; on=install-libctf; };
52
 
53
 // We put install-opcodes before install-binutils because the installed
54
 // binutils might be on PATH, and they might need the shared opcodes
55
@@ -456,6 +455,14 @@ dependencies = { module=install-ld; on=install-libctf; };
56
 dependencies = { module=install-binutils; on=install-opcodes; };
57
 dependencies = { module=install-strip-binutils; on=install-strip-opcodes; };
58
 
59
+// Likewise for ld, libctf, and bfd.
60
+dependencies = { module=install-libctf; on=install-bfd; };
61
+dependencies = { module=install-ld; on=install-bfd; };
62
+dependencies = { module=install-ld; on=install-libctf; };
63
+dependencies = { module=install-strip-libctf; on=install-strip-bfd; };
64
+dependencies = { module=install-strip-ld; on=install-strip-bfd; };
65
+dependencies = { module=install-strip-ld; on=install-strip-libctf; };
66
+
67
 // libopcodes depends on libbfd
68
 dependencies = { module=install-opcodes; on=install-bfd; };
69
 dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
70
diff --git Makefile.in Makefile.in
71
index c2c852c5660..a63050cd3e6 100644
72
--- Makefile.in
73
+++ Makefile.in
74
@@ -52111,9 +52111,14 @@ all-stage3-ld: maybe-all-stage3-libctf
75
 all-stage4-ld: maybe-all-stage4-libctf
76
 all-stageprofile-ld: maybe-all-stageprofile-libctf
77
 all-stagefeedback-ld: maybe-all-stagefeedback-libctf
78
-install-ld: maybe-install-libctf
79
 install-binutils: maybe-install-opcodes
80
 install-strip-binutils: maybe-install-strip-opcodes
81
+install-libctf: maybe-install-bfd
82
+install-ld: maybe-install-bfd
83
+install-ld: maybe-install-libctf
84
+install-strip-libctf: maybe-install-strip-bfd
85
+install-strip-ld: maybe-install-strip-bfd
86
+install-strip-ld: maybe-install-strip-libctf
87
 install-opcodes: maybe-install-bfd
88
 install-strip-opcodes: maybe-install-strip-bfd
89
 configure-gas: maybe-configure-intl
90
-- 
91
2.32.0
92
(-)b/devel/binutils/files/patch-0057-70d985a00d5 (+168 lines)
Added Link Here
1
From 70d985a00d512ad0c985b8d6db0846c14a192795 Mon Sep 17 00:00:00 2001
2
From: "H.J. Lu" <hjl.tools@gmail.com>
3
Date: Thu, 18 Mar 2021 18:34:38 -0700
4
Subject: [PATCH 057/169] DWARF: Check version >= 3 for DW_FORM_ref_addr
5
6
Check version >= 3, instead of version == 3 || version == 4, for
7
DW_FORM_ref_addr.
8
9
bfd/
10
11
	PR ld/27587
12
	* dwarf2.c (read_attribute_value): Check version >= 3 for
13
	DW_FORM_ref_addr.
14
15
ld/
16
17
	PR ld/27587
18
	* testsuite/ld-x86-64/pr27587.err: New file.
19
	* testsuite/ld-x86-64/pr27587a.obj.bz2: Likewise.
20
	* testsuite/ld-x86-64/pr27587b.obj.bz2: Likewise.
21
	* testsuite/ld-x86-64/x86-64.exp: Run PR ld/27587 test.
22
23
(cherry picked from commit 51f6e7a9f4210aed0f8156c1d2e348de6f96f37d)
24
---
25
 bfd/ChangeLog                           |   6 ++++++
26
 bfd/dwarf2.c                            |   2 +-
27
 ld/ChangeLog                            |   8 ++++++++
28
 ld/testsuite/ld-x86-64/pr27587.err      |   3 +++
29
 ld/testsuite/ld-x86-64/pr27587a.obj.bz2 | Bin 0 -> 1265 bytes
30
 ld/testsuite/ld-x86-64/pr27587b.obj.bz2 | Bin 0 -> 913 bytes
31
 ld/testsuite/ld-x86-64/x86-64.exp       |   5 +++++
32
 7 files changed, 23 insertions(+), 1 deletion(-)
33
 create mode 100644 ld/testsuite/ld-x86-64/pr27587.err
34
 create mode 100644 ld/testsuite/ld-x86-64/pr27587a.obj.bz2
35
 create mode 100644 ld/testsuite/ld-x86-64/pr27587b.obj.bz2
36
37
diff --git bfd/ChangeLog bfd/ChangeLog
38
index 6b399753762..24d25dc1a46 100644
39
--- bfd/ChangeLog
40
+++ bfd/ChangeLog
41
@@ -1,3 +1,9 @@
42
+2021-03-22  H.J. Lu  <hongjiu.lu@intel.com>
43
+
44
+	PR ld/27587
45
+	* dwarf2.c (read_attribute_value): Check version >= 3 for
46
+	DW_FORM_ref_addr.
47
+
48
 2021-03-02  Alan Modra  <amodra@gmail.com>
49
 
50
 	* elf64-ppc.c (ppc64_elf_relocate_section): Don't optimise got
51
diff --git bfd/dwarf2.c bfd/dwarf2.c
52
index 240138d5982..5651696c0f7 100644
53
--- bfd/dwarf2.c
54
+++ bfd/dwarf2.c
55
@@ -1195,7 +1195,7 @@ read_attribute_value (struct attribute *  attr,
56
     case DW_FORM_ref_addr:
57
       /* DW_FORM_ref_addr is an address in DWARF2, and an offset in
58
 	 DWARF3.  */
59
-      if (unit->version == 3 || unit->version == 4)
60
+      if (unit->version >= 3)
61
 	{
62
 	  if (unit->offset_size == 4)
63
 	    attr->u.val = read_4_bytes (unit->abfd, info_ptr, info_ptr_end);
64
diff --git ld/ChangeLog ld/ChangeLog
65
index 094ca70ad0c..7c5237a73df 100644
66
--- ld/ChangeLog
67
+++ ld/ChangeLog
68
@@ -1,3 +1,11 @@
69
+2021-03-22  H.J. Lu  <hongjiu.lu@intel.com>
70
+
71
+	PR ld/27587
72
+	* testsuite/ld-x86-64/pr27587.err: New file.
73
+	* testsuite/ld-x86-64/pr27587a.obj.bz2: Likewise.
74
+	* testsuite/ld-x86-64/pr27587b.obj.bz2: Likewise.
75
+	* testsuite/ld-x86-64/x86-64.exp: Run PR ld/27587 test.
76
+
77
 2021-03-02  Alan Modra  <amodra@gmail.com>
78
 
79
 	* testsuite/ld-powerpc/weak1.d,
80
diff --git ld/testsuite/ld-x86-64/pr27587.err ld/testsuite/ld-x86-64/pr27587.err
81
new file mode 100644
82
index 00000000000..fa870790813
83
--- /dev/null
84
+++ ld/testsuite/ld-x86-64/pr27587.err
85
@@ -0,0 +1,3 @@
86
+#...
87
+.*pr27587.i:4: undefined reference to `stack_size'
88
+#...
89
diff --git ld/testsuite/ld-x86-64/pr27587a.obj.bz2 ld/testsuite/ld-x86-64/pr27587a.obj.bz2
90
new file mode 100644
91
index 0000000000000000000000000000000000000000..eebcf54d44d7709431a4f7d1a9dfd2970588373e
92
GIT binary patch
93
literal 1265
94
zcmV<N1P=Q`T4*^jL0KkKStHq+PXGkDfB*mg|Nis;|NmS6+kpS?-}CtZQS5+-5E;=(
95
z3T#yYXiCrn`d5Oe+q;>exM)Na(duZ@Z48Ep(S*iNQh6F0hK7So8VDFhBMIs-O);Po
96
zCPPe`4H{vR5usD?srq7#Jfzy2BmfN>7>%R=000dQ00000000^SCMlyPq{1;1*(iE}
97
z>JL$&f?|4&q|;3r4^Vm|1jzL;4MFNMVK5LhG&Iv81^|o`5vEKdA&6lZOaP1{A(Kpo
98
zjEq5{fS8yQ5u*VaGGG!V36&m%^){xOX{LZ09*Lj^fuIcrfN0QY&;S4c0002fKvAu!
99
ztZeGO<3RugVnl`kiJ6eo=<Avm6sR)&>C!B&xRVtoAfKv;@}j03Xz%lKqu{#5-7NQ@
100
z-w{qjuCUR08bWVm%*-Am0_fC6RyD4w#Y={{)rMBbPAx*jQ)#C{s07aEf)&c}x%)m`
101
zS9*dAU|Fg!j(V_aNw&?y6h<b9j9Lesw_{-FfQrA(HCFtIbDLBUfc+5+$MaJ6e!kE3
102
z-P4>uP8(;vCs0AHI0h6zf|3!zp<sa!3Id4qw*6PQeJWHHuXr5!RZ2t=_nt%r<-Kbu
103
z<g=u3<%UrNA)zAAQ!U)nDIr1(3s^IaE9R%4brMY$Do0-^q^ThRgwj(qiuQm;DWonl
104
zL62!R8U`eTWYS2Tf;){1oWyJyWcx3#nxa8=7#&t6BNf|75ZEjDgp+9nlSpieZ~{=$
105
zZ6w-kBBF?d9MQDEz)1@D>`T`hesrNH3)_5zyV?a2M=`(rN3fbPwEAUnTR$OPMh*q7
106
z-@`%_7Ws6sd6*`+8Z&dEQL(gGLQmr(a}NzfW@jQ&Ko`6g4K~FyOY5WGPWpozynk&@
107
zdza0E;+jDz+BH>zy<$;Rv}lnCU#D!qT?(JR%%W@&$lOO?=@fpsUpz{MAzx(Wkp}gk
108
z&pBG8&{%^cd&h}17OY^{CPPVFun~i}?o3KpT|jNvSAV>dT}*<AWQ&NxLb7mSh_`Ft
109
z<1w@$#t<)_G|VDEF7Si}I*||tPc;JuK>1{&a@=M5(UsRMepp(KAh@{SKJff!_(YWC
110
z;F8L)#}$$Cr$>ESDk!w(8K6IKF(ABs@2?^N4-~ElTPeU8)kp?0L`N3aGM{z^1t{OR
111
zr&YBgt9)h8?Lv8J85kunr!3ErIr;+#!Mzq*(6pi-UQgY~OG2lllwm3$6Ujt(n2+!7
112
zu`%of7v;e@XpG<(AVE*dYK*Bca^_7@U921zcK9#NN==Z9wTWGA7E*vLg}wR3iV=@(
113
z3f3^i;u{Ijy;e#{s?j-64ZpNPC-Fza5{GOc(;M>RKYrrvu?%2!FQg||6PDvySasQ%
114
zpJpl(M6+0Gr8N*^Y*LpMj26C|rl^G^wTZ~9nXgPJ$U%6PBw@^0U*({$)^IGvQTk0O
115
zV7nKhvlRwJ0@gdkMhoJ+Zsvszrs!C?Ocz+Rg%whkk50HvHN%WDS#~1y$pYdFP)KC;
116
zNHGF7v7S}7d!tFo&a`MbWl&&aOQFCVjcTT|UVbRpz=JtDv$H=Uq!dh%heA$Y3^xop
117
zL@i)!q|7F@bAd(MfJ_^a68ox-B)Uw>6u2E=J8ubcD~S!h9HQPD4Z#blfJ};(PHEj%
118
bmOJBb*p#WT$|IAX{(*NSQ-uivJ(;BNi;*>p
119
120
literal 0
121
HcmV?d00001
122
123
diff --git ld/testsuite/ld-x86-64/pr27587b.obj.bz2 ld/testsuite/ld-x86-64/pr27587b.obj.bz2
124
new file mode 100644
125
index 0000000000000000000000000000000000000000..8506e4eccdb35862be83beb5bf09365c89683453
126
GIT binary patch
127
literal 913
128
zcmV;C18)36T4*^jL0KkKSq3Q^QUC)hfA#<W{rmR+|NqP7$H2e;-}1ynVZcBTKmY)M
129
zF#*5>6yOBXq8but6Df)6VrqVqLF%4_c_*mQ@)OZEq3Sd+5MTl_1{pFZrh`*Vrjts4
130
zsKPZd9*TKJnJ_daL(oh|qyt6?f?y_0nr5R+m<|8{00000$N&HU0000041fYei8Ry<
131
zrf7^n)6_BpKzf>J2AT~$Kr#R{XlP_;038oJ*B340bY76UAc)318n%+r99Qh*`D9MB
132
zhx)N55>>s<>54f^pnuM$7?s9hAwz2u!8q(26qjbG>a||wO$hIz1a(Rm=7&J!7&U|!
133
zl_MdQ!4*zcF<Ym<k@j~)$g<zJw`E|7cRLgWMv_!(!MiE2%)CeoO&Q;w#aX$r_+V{n
134
z#@ji7yKDj&?2@5bqJqt6*)=g0m<K(i0i4iu+%PI=Gu(zFC80w}7T6ueEhZxspuoz%
135
zlJu}fQ$jn;NQQ(q4WwbPrIfL;A5O{FkOih?utp2n=11CEx1TD~)iQPJ3)hEk5qX1i
136
zGh+IUYD^0^^03Q#HZ5CN>QJ;9k6c%DVHYtg)^ih+fMa{yk|@2=#wSSK^Ww06xSKXi
137
z7K05clp>1o0PmC~4GQZiV`_$#$dA{)5yBd>&899DfA$u|C2AnAUOZaYWuDS0!N`&=
138
zUPXsl&8dkpaq82U6S!^U1r2Hjph}`{APS!8&-(=4oCM?}BN7zd+bNeCQ?W8qdAWg?
139
z;f9_xtni|y3OpXMXG+C;F$Q>tyJg8zd1=5TQ7*JMU~phAwu@kzdA&#cl19*@U7={q
140
z$v@<Sw8&+4%2PHNmWs<2gwc2mEEtS)4tIaZCkozAafZo8&8J{`7&RER#Hi038VFuc
141
z8DL975VX^p2(YxEHV~!FcGcT#mtG9V<46pt^!TdVz)fwlxCIq7<vzn9;`(iUVO=3e
142
zn=!f!PfN7G()+qZn3dsRr#;oFPsA-gCf7k>N+yR~QT8c3LI;kU0Tm@FdefuKTsh(}
143
zs>sAQl>Frk5QP|d{A--t_rrqh;I~SA6_tjj1j^DNSlUAZkyL8KC<hG)fj9}~iUKI7
144
z&?=P1Abg~@wu(3I9~7EQ7VC{jsf-64GN70%(VAh%$$_OjLQw+`f}=1X3}b>I1Tq{|
145
npr}<*RRpHFPO9iG{#qFrlxqoo33rsc-Qw;@rwS4P#UpA!hwz$H
146
147
literal 0
148
HcmV?d00001
149
150
diff --git ld/testsuite/ld-x86-64/x86-64.exp ld/testsuite/ld-x86-64/x86-64.exp
151
index da0d2a76f3b..d2ec1ddc328 100644
152
--- ld/testsuite/ld-x86-64/x86-64.exp
153
+++ ld/testsuite/ld-x86-64/x86-64.exp
154
@@ -221,6 +221,11 @@ set x86_64tests {
155
      "-melf_x86_64 -pie -z notext tmpdir/pr20550a.o tmpdir/pr20550b.so"
156
      ""
157
      "--64" { dummy.s } {} "pr20550"}
158
+    {"Build pr27587"
159
+     "-melf_x86_64 -e main"
160
+     "" ""
161
+     { pr27587a.obj.bz2 pr27587b.obj.bz2 }
162
+     {{ld "pr27587.err"}} "pr27587"}
163
 }
164
 
165
 run_ld_link_tests $x86_64tests
166
-- 
167
2.32.0
168
(-)b/devel/binutils/files/patch-0068-0ff9fad8bf7 (+225 lines)
Added Link Here
1
From 0ff9fad8bf790eebb21a1c1ee378f1c2dd1971af Mon Sep 17 00:00:00 2001
2
From: Tamar Christina <tamar.christina@arm.com>
3
Date: Thu, 1 Apr 2021 17:10:38 +0100
4
Subject: [PATCH 068/169] PE/Windows x86_64: Fix weak undef symbols after image
5
 base change
6
7
The change in PR19011 changed the image load address from being in the lower
8
32-bit address space to the higher 64-bit address space.
9
10
However when you have a weak undef symbol which stays undef at the end of
11
linking the linker has to resolve this (Windows loader does not support undef
12
symbols).  As such typically these would resolve to 0.
13
14
The relocation used for these weak symbols are the normal 32-bit PC_REL call
15
relocs.  So when doing the overflow check LD checks if the distance between the
16
symbol and the call is within range.  However now that the load address is
17
> 32-bits and the symbol val is 0 this overflow check will always fail.
18
19
As such the linker gives a bogus error.  This patch makes the linker not emit
20
the overflow failure but chooses to still let the check be performed (as it's
21
mid-end code).
22
23
One down side of this is that it does break the common convention that the call
24
be to sym at 0x0. i.e. before you'd get
25
26
      401015:   74 05                   je     40101c
27
      401017:   e8 e4 ef bf ff          callq  0
28
29
and now you get
30
31
   140001015:   74 05                   je     14000101c
32
   140001017:   e8 e4 ef ff bf          call   100000000
33
34
since the call is PC_REL there's no way to get the range large enough to
35
resolve to 0.  As such I have chosen to leave it as the furthest simple range
36
that we can still represent.
37
38
By only ignoring the error we leave the symbol value itself to still be 0
39
such that the if(<symbol>) checks still work correctly.
40
41
bfd/ChangeLog:
42
43
2021-04-01  Tamar Christina  <tamar.christina@arm.com>
44
45
	PR ld/26659
46
	* cofflink.c (_bfd_coff_generic_relocate_section): Ignore overflow.
47
48
ld/ChangeLog:
49
50
2021-04-01  Tamar Christina  <tamar.christina@arm.com>
51
52
	PR ld/26659
53
	* testsuite/ld-pe/pe.exp: Add test.
54
	* testsuite/ld-pe/pr26659-weak-undef-sym.d: New test.
55
	* testsuite/ld-pe/pr26659-weak-undef-sym.s: New test.
56
57
(cherry picked from commit 74edb473c9ecf5e2053ecf8e429ee608feafb9e1)
58
---
59
 bfd/ChangeLog                               |  8 +++++
60
 bfd/cofflink.c                              | 15 ++++++++
61
 ld/ChangeLog                                | 10 ++++++
62
 ld/testsuite/ld-pe/pe.exp                   |  1 +
63
 ld/testsuite/ld-pe/pr26659-weak-undef-sym.d | 32 +++++++++++++++++
64
 ld/testsuite/ld-pe/pr26659-weak-undef-sym.s | 38 +++++++++++++++++++++
65
 6 files changed, 104 insertions(+)
66
 create mode 100644 ld/testsuite/ld-pe/pr26659-weak-undef-sym.d
67
 create mode 100644 ld/testsuite/ld-pe/pr26659-weak-undef-sym.s
68
69
diff --git bfd/ChangeLog bfd/ChangeLog
70
index 24d25dc1a46..ea9d22e13bb 100644
71
--- bfd/ChangeLog
72
+++ bfd/ChangeLog
73
@@ -1,3 +1,11 @@
74
+2021-04-01  Tamar Christina  <tamar.christina@arm.com>
75
+
76
+	Backported from mainline.
77
+	2021-04-01  Tamar Christina  <tamar.christina@arm.com>
78
+
79
+	PR ld/26659
80
+	* cofflink.c (_bfd_coff_generic_relocate_section): Ignore overflow.
81
+
82
 2021-03-22  H.J. Lu  <hongjiu.lu@intel.com>
83
 
84
 	PR ld/27587
85
diff --git bfd/cofflink.c bfd/cofflink.c
86
index 4b0aab2a4ce..d0c027f2dce 100644
87
--- bfd/cofflink.c
88
+++ bfd/cofflink.c
89
@@ -3118,6 +3118,21 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd,
90
 	  return FALSE;
91
 	case bfd_reloc_overflow:
92
 	  {
93
+
94
+	    /* Ignore any weak undef symbols that may have overflowed.  Due to
95
+	       PR ld/19011 the base address is now in the upper 64-bit address
96
+	       range.  This means that when _bfd_final_link_relocate calculates
97
+	       the overlow it takes the distance between the symbol and the VMA
98
+	       which will now always overflow as 0 - 64-bit addr > 32-bit range
99
+	       of the relocation.  This ends up creating PR ld/26659.  */
100
+	    if (val == 0
101
+		/* Reverse the hack where 4 is subtracted from the addend.  */
102
+		&& (addend + 4) == 0
103
+		&& sym->n_sclass == C_NT_WEAK
104
+		&& bfd_coff_classify_symbol (output_bfd, sym)
105
+		     == COFF_SYMBOL_UNDEFINED)
106
+	      break;
107
+
108
 	    const char *name;
109
 	    char buf[SYMNMLEN + 1];
110
 
111
diff --git ld/ChangeLog ld/ChangeLog
112
index 7c5237a73df..8156b6d9260 100644
113
--- ld/ChangeLog
114
+++ ld/ChangeLog
115
@@ -1,3 +1,13 @@
116
+2021-04-01  Tamar Christina  <tamar.christina@arm.com>
117
+
118
+	Backported from mainline
119
+	2021-04-01  Tamar Christina  <tamar.christina@arm.com>
120
+
121
+	PR ld/26659
122
+	* testsuite/ld-pe/pe.exp:
123
+	* testsuite/ld-pe/pr26659-weak-undef-sym.d: New test.
124
+	* testsuite/ld-pe/pr26659-weak-undef-sym.s: New test.
125
+
126
 2021-03-22  H.J. Lu  <hongjiu.lu@intel.com>
127
 
128
 	PR ld/27587
129
diff --git ld/testsuite/ld-pe/pe.exp ld/testsuite/ld-pe/pe.exp
130
index de9e104f0f6..5b04b6b8075 100644
131
--- ld/testsuite/ld-pe/pe.exp
132
+++ ld/testsuite/ld-pe/pe.exp
133
@@ -79,6 +79,7 @@ run_dump_test "orphan_nu"
134
 run_dump_test "weakdef-1"
135
 
136
 run_dump_test "pr19803"
137
+run_dump_test "pr26659-weak-undef-sym"
138
 set pr19803_dll {
139
     {   "PR 19803: not exporting swept symbols"
140
 	"-shared --out-implib dx.dll --gc-sections"
141
diff --git ld/testsuite/ld-pe/pr26659-weak-undef-sym.d ld/testsuite/ld-pe/pr26659-weak-undef-sym.d
142
new file mode 100644
143
index 00000000000..0b48994877d
144
--- /dev/null
145
+++ ld/testsuite/ld-pe/pr26659-weak-undef-sym.d
146
@@ -0,0 +1,32 @@
147
+#source: pr26659-weak-undef-sym.s
148
+#target: x86_64-*-cygwin* x86_64-*-pe x86_64-*-mingw*
149
+#ld: -e0
150
+#objdump: -d
151
+
152
+#...
153
+0000000140001000 <foo>:
154
+   140001000:	55                   	push   %rbp
155
+   140001001:	48 89 e5             	mov    %rsp,%rbp
156
+   140001004:	48 83 ec 20          	sub    \$0x20,%rsp
157
+   140001008:	89 4d 10             	mov    %ecx,0x10\(%rbp\)
158
+   14000100b:	48 8b 05 ee 0f 00 00 	mov    0xfee\(%rip\),%rax        # 140002000 <__data_end__>
159
+   140001012:	48 85 c0             	test   %rax,%rax
160
+   140001015:	74 05                	je     14000101c <foo\+0x1c>
161
+   140001017:	e8 e4 ef ff bf       	call   100000000 <__size_of_stack_reserve__\+0xffe00000>
162
+   14000101c:	48 8b 05 ed 0f 00 00 	mov    0xfed\(%rip\),%rax        # 140002010 <.refptr.bar2>
163
+   140001023:	48 85 c0             	test   %rax,%rax
164
+   140001026:	74 05                	je     14000102d <foo\+0x2d>
165
+   140001028:	e8 d3 ef ff bf       	call   100000000 <__size_of_stack_reserve__\+0xffe00000>
166
+   14000102d:	8b 45 10             	mov    0x10\(%rbp\),%eax
167
+   140001030:	0f af c0             	imul   %eax,%eax
168
+   140001033:	48 83 c4 20          	add    \$0x20,%rsp
169
+   140001037:	5d                   	pop    %rbp
170
+   140001038:	c3                   	ret    
171
+   140001039:	90                   	nop
172
+   14000103a:	90                   	nop
173
+   14000103b:	90                   	nop
174
+   14000103c:	90                   	nop
175
+   14000103d:	90                   	nop
176
+   14000103e:	90                   	nop
177
+   14000103f:	90                   	nop
178
+#pass
179
diff --git ld/testsuite/ld-pe/pr26659-weak-undef-sym.s ld/testsuite/ld-pe/pr26659-weak-undef-sym.s
180
new file mode 100644
181
index 00000000000..7a42759e752
182
--- /dev/null
183
+++ ld/testsuite/ld-pe/pr26659-weak-undef-sym.s
184
@@ -0,0 +1,38 @@
185
+        .text
186
+        .globl  foo
187
+        .def    foo;    .scl    2;      .type   32;     .endef
188
+foo:
189
+        pushq   %rbp
190
+        movq    %rsp, %rbp
191
+        subq    $32, %rsp
192
+        movl    %ecx, 16(%rbp)
193
+        movq    .refptr.bar1(%rip), %rax
194
+        testq   %rax, %rax
195
+        je      .L2
196
+        call    bar1
197
+.L2:
198
+        movq    .refptr.bar2(%rip), %rax
199
+        testq   %rax, %rax
200
+        je      .L3
201
+        call    bar2
202
+.L3:
203
+        movl    16(%rbp), %eax
204
+        imull   %eax, %eax
205
+        addq    $32, %rsp
206
+        popq    %rbp
207
+        ret
208
+        .weak   bar2
209
+        .weak   bar1
210
+        .def    bar1;   .scl    2;      .type   32;     .endef
211
+        .def    bar2;   .scl    2;      .type   32;     .endef
212
+        .section        .rdata$.refptr.bar2, "dr"
213
+        .globl  .refptr.bar2
214
+        .linkonce       discard
215
+.refptr.bar2:
216
+        .quad   bar2
217
+        .section        .rdata$.refptr.bar1, "dr"
218
+        .globl  .refptr.bar1
219
+        .linkonce       discard
220
+.refptr.bar1:
221
+        .quad   bar1
222
+
223
-- 
224
2.32.0
225
(-)b/devel/binutils/files/patch-0077-c1d97fe5456 (+141 lines)
Added Link Here
1
From c1d97fe5456e4ee8bf6c9f04e6c73347bacae12c Mon Sep 17 00:00:00 2001
2
From: Tejas Belagod <tejas.belagod@arm.com>
3
Date: Fri, 9 Apr 2021 12:21:38 +0100
4
Subject: [PATCH 077/169] AArch64: Fix Atomic LD64/ST64 classification.
5
6
Patch 1: Fix diagnostics for exclusive load/stores and reclassify
7
	 Armv8.7-A ST/LD64 Atomics.
8
9
Following upstream pointing out some inconsistencies in diagnostics,
10
11
https://sourceware.org/pipermail/binutils/2021-February/115356.html
12
13
attached is a patch set that fixes the issues. I believe a combination
14
of two patches mainly contributed to these bugs:
15
16
https://sourceware.org/pipermail/binutils/2020-November/113961.html
17
https://sourceware.org/pipermail/binutils/2018-June/103322.html
18
19
A summary of what this patch set fixes:
20
21
For instructions
22
23
	STXR w0,x2,[x0]
24
	STLXR w0,x2,[x0]
25
26
The warning we emit currently is misleading:
27
28
Warning: unpredictable: identical transfer and status registers --`stlxr w0,x2,[x0]'
29
Warning: unpredictable: identical transfer and status registers --`stxr w0,x2,[x0]'
30
31
it ought to be:
32
33
Warning: unpredictable: identical base and status registers --`stlxr w0,x2,[x0]'
34
Warning: unpredictable: identical base and status registers --`stxr w0,x2,[x0]'
35
36
For instructions:
37
38
	ldaxp x0,x0,[x0]
39
	ldxp x0,x0,[x0]
40
41
The warning we emit is incorrect
42
43
Warning: unpredictable: identical transfer and status registers --`ldaxp x0,x0,[x0]'
44
Warning: unpredictable: identical transfer and status registers --`ldxp x0,x0,[x0]'
45
46
it ought to be:
47
48
Warning: unpredictable load of register pair -- `ldaxp x0,x0,[x0]'
49
Warning: unpredictable load of register pair -- `ldxp x0,x0,[x0]'
50
51
For instructions
52
53
	stlxp   w0, x2, x2, [x0]
54
	stxp    w0, x2, x2, [x0]
55
56
We don't emit any warning when it ought to be:
57
58
Warning: unpredictable: identical base and status registers --`stlxp w0,x2,x2,[x0]'
59
Warning: unpredictable: identical base and status registers --`stxp w0,x2,x2,[x0]'
60
61
For instructions:
62
63
	st64bv  x0, x2, [x0]
64
	st64bv  x2, x0, [x0]
65
66
We incorrectly warn when its not necessary. This is because we classify them
67
incorrectly as ldstexcl when it should be lse_atomics in the opcode table.
68
The incorrect classification makes it pick up the warnings from warning on
69
exclusive load/stores.
70
71
Patch 2: Reclassify Armv8.7-A ST/LD64 Atomics.
72
73
This patch reclassifies ST64B{V,V0}, LD64B as lse_atomics rather than ldstexcl
74
according to their encoding class as specified in the architecture. This also
75
has the fortunate side-effect of spurious unpredictable warnings getting
76
eliminated.
77
78
For eg. For instruction:
79
80
	st64bv  x0, x2, [x0]
81
82
We incorrectly warn when its not necessary:
83
84
Warning: unpredictable: identical transfer and status registers --`st64bv x0,x2,[x0]'
85
86
This is because we classify them incorrectly as ldstexcl when it should be
87
lse_atomics in the opcode table. The incorrect classification makes it pick
88
up the warnings from warning on exclusive load/stores. This patch fixes it
89
by reclassifying it and no warnings are issued for this instruction.
90
91
opcodes/ChangeLog:
92
93
2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
94
95
	* aarch64-tbl.h (struct aarch64_opcode aarch64_opcode_table): Reclassify
96
	LD64/ST64 instructions to lse_atomic instead of ldstexcl.
97
98
(cherry picked from commit 52efda8266cb1f8ade0193f45801fdd6e42165ac)
99
---
100
 opcodes/ChangeLog     | 8 ++++++++
101
 opcodes/aarch64-tbl.h | 8 ++++----
102
 2 files changed, 12 insertions(+), 4 deletions(-)
103
104
diff --git opcodes/ChangeLog opcodes/ChangeLog
105
index 162fd742369..ca9dff38798 100644
106
--- opcodes/ChangeLog
107
+++ opcodes/ChangeLog
108
@@ -1,3 +1,11 @@
109
+2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
110
+
111
+	Backported from mainline.
112
+	021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
113
+
114
+	* aarch64-tbl.h (struct aarch64_opcode aarch64_opcode_table): Reclassify
115
+	LD64/ST64 instructions to lse_atomic instead of ldstexcl.
116
+
117
 2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
118
 
119
 	* s390-mkopc.c (main): Accept arch14 as cpu string.
120
diff --git opcodes/aarch64-tbl.h opcodes/aarch64-tbl.h
121
index f5c313138ea..4192e54d188 100644
122
--- opcodes/aarch64-tbl.h
123
+++ opcodes/aarch64-tbl.h
124
@@ -3646,10 +3646,10 @@ struct aarch64_opcode aarch64_opcode_table[] =
125
   CORE_INSN ("ldrsw", 0x98000000, 0xff000000, loadlit, OP_LDRSW_LIT, OP2 (Rt, ADDR_PCREL19),    QL_X_PCREL, 0),
126
   CORE_INSN ("prfm",  0xd8000000, 0xff000000, loadlit, OP_PRFM_LIT,  OP2 (PRFOP, ADDR_PCREL19), QL_PRFM_PCREL, 0),
127
   /* Atomic 64-byte load/store in Armv8.7.  */
128
-  _LS64_INSN ("ld64b",   0xf83fd000, 0xfffffc00, ldstexcl, OP2 (Rt_LS64, ADDR_SIMPLE), QL_X1NIL, 0),
129
-  _LS64_INSN ("st64b",   0xf83f9000, 0xfffffc00, ldstexcl, OP2 (Rt_LS64, ADDR_SIMPLE), QL_X1NIL, 0),
130
-  _LS64_INSN ("st64bv",  0xf820b000, 0xffe0fc00, ldstexcl, OP3 (Rs, Rt_LS64, ADDR_SIMPLE), QL_X2NIL, 0),
131
-  _LS64_INSN ("st64bv0", 0xf820a000, 0xffe0fc00, ldstexcl, OP3 (Rs, Rt_LS64, ADDR_SIMPLE), QL_X2NIL, 0),
132
+  _LS64_INSN ("ld64b",   0xf83fd000, 0xfffffc00, lse_atomic, OP2 (Rt_LS64, ADDR_SIMPLE), QL_X1NIL, 0),
133
+  _LS64_INSN ("st64b",   0xf83f9000, 0xfffffc00, lse_atomic, OP2 (Rt_LS64, ADDR_SIMPLE), QL_X1NIL, 0),
134
+  _LS64_INSN ("st64bv",  0xf820b000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt_LS64, ADDR_SIMPLE), QL_X2NIL, 0),
135
+  _LS64_INSN ("st64bv0", 0xf820a000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt_LS64, ADDR_SIMPLE), QL_X2NIL, 0),
136
   /* Logical (immediate).  */
137
   CORE_INSN ("and", 0x12000000, 0x7f800000, log_imm, 0, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
138
   CORE_INSN ("bic", 0x12000000, 0x7f800000, log_imm, OP_BIC, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_ALIAS | F_PSEUDO | F_SF),
139
-- 
140
2.32.0
141
(-)b/devel/binutils/files/patch-0078-d6af793d41d (+179 lines)
Added Link Here
1
From d6af793d41da15d10f219c437f16346475efb4d5 Mon Sep 17 00:00:00 2001
2
From: Tejas Belagod <tejas.belagod@arm.com>
3
Date: Fri, 9 Apr 2021 12:29:32 +0100
4
Subject: [PATCH 078/169] AArch64: Fix Diagnostic messaging for LD/ST
5
 Exclusive.
6
7
A summary of what this patch set fixes:
8
9
For instructions
10
11
	STXR w0,x2,[x0]
12
	STLXR w0,x2,[x0]
13
14
The warning we emit currently is misleading:
15
16
Warning: unpredictable: identical transfer and status registers --`stlxr w0,x2,[x0]'
17
Warning: unpredictable: identical transfer and status registers --`stxr w0,x2,[x0]'
18
19
it ought to be:
20
21
Warning: unpredictable: identical base and status registers --`stlxr w0,x2,[x0]'
22
Warning: unpredictable: identical base and status registers --`stxr w0,x2,[x0]'
23
24
For instructions:
25
26
	ldaxp x0,x0,[x0]
27
	ldxp x0,x0,[x0]
28
29
The warning we emit is incorrect
30
31
Warning: unpredictable: identical transfer and status registers --`ldaxp x0,x0,[x0]'
32
Warning: unpredictable: identical transfer and status registers --`ldxp x0,x0,[x0]'
33
34
it ought to be:
35
36
Warning: unpredictable load of register pair -- `ldaxp x0,x0,[x0]'
37
Warning: unpredictable load of register pair -- `ldxp x0,x0,[x0]'
38
39
For instructions
40
41
	stlxp   w0, x2, x2, [x0]
42
	stxp    w0, x2, x2, [x0]
43
44
We don't emit any warning when it ought to be:
45
46
Warning: unpredictable: identical base and status registers --`stlxp w0,x2,x2,[x0]'
47
Warning: unpredictable: identical base and status registers --`stxp w0,x2,x2,[x0]'
48
49
gas/ChangeLog:
50
51
2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
52
53
	* config/tc-aarch64.c (warn_unpredictable_ldst): Clean-up diagnostic messages
54
	for LD/ST Exclusive instructions.
55
	* testsuite/gas/aarch64/diagnostic.s: Add a diagnostic test for STLXP.
56
	* testsuite/gas/aarch64/diagnostic.l: Fix-up test after message clean-up.
57
58
(cherry picked from commit dd17020328b4ebf45be26eed156fba3d269096f6)
59
---
60
 gas/ChangeLog                          | 10 ++++++
61
 gas/config/tc-aarch64.c                | 47 +++++++++++++++++++++-----
62
 gas/testsuite/gas/aarch64/diagnostic.l | 12 +++----
63
 gas/testsuite/gas/aarch64/diagnostic.s |  1 +
64
 4 files changed, 56 insertions(+), 14 deletions(-)
65
66
diff --git gas/ChangeLog gas/ChangeLog
67
index ed383a970e0..057943ce68d 100644
68
--- gas/ChangeLog
69
+++ gas/ChangeLog
70
@@ -1,3 +1,13 @@
71
+2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
72
+
73
+	Backported from mainline.
74
+	2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
75
+
76
+	* config/tc-aarch64.c (warn_unpredictable_ldst): Clean-up diagnostic messages
77
+	for LD/ST Exclusive instructions.
78
+	* testsuite/gas/aarch64/diagnostic.s: Add a diagnostic test for STLXP.
79
+	* testsuite/gas/aarch64/diagnostic.l: Fix-up test after message clean-up.
80
+
81
 2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
82
 
83
 	* config/tc-s390.c (s390_parse_cpu): New entry for arch14.
84
diff --git gas/config/tc-aarch64.c gas/config/tc-aarch64.c
85
index 6f782d057f8..e852e38dfb4 100644
86
--- gas/config/tc-aarch64.c
87
+++ gas/config/tc-aarch64.c
88
@@ -7020,18 +7020,49 @@ warn_unpredictable_ldst (aarch64_instruction *instr, char *str)
89
       break;
90
 
91
     case ldstexcl:
92
-      /* It is unpredictable if the destination and status registers are the
93
-	 same.  */
94
       if ((aarch64_get_operand_class (opnds[0].type)
95
 	   == AARCH64_OPND_CLASS_INT_REG)
96
 	  && (aarch64_get_operand_class (opnds[1].type)
97
-	      == AARCH64_OPND_CLASS_INT_REG)
98
-	  && (opnds[0].reg.regno == opnds[1].reg.regno
99
-	      || opnds[0].reg.regno == opnds[2].reg.regno))
100
-	as_warn (_("unpredictable: identical transfer and status registers"
101
-		   " --`%s'"),
102
-		 str);
103
+	      == AARCH64_OPND_CLASS_INT_REG))
104
+	{
105
+          if ((opcode->opcode & (1 << 22)))
106
+	    {
107
+	      /* It is unpredictable if load-exclusive pair with Rt == Rt2.  */
108
+	      if ((opcode->opcode & (1 << 21))
109
+		  && opnds[0].reg.regno == opnds[1].reg.regno)
110
+		as_warn (_("unpredictable load of register pair -- `%s'"), str);
111
+	    }
112
+	  else
113
+	    {
114
+	      /*  Store-Exclusive is unpredictable if Rt == Rs.  */
115
+	      if (opnds[0].reg.regno == opnds[1].reg.regno)
116
+		as_warn
117
+		  (_("unpredictable: identical transfer and status registers"
118
+		     " --`%s'"),str);
119
 
120
+	      if (opnds[0].reg.regno == opnds[2].reg.regno)
121
+		{
122
+		  if (!(opcode->opcode & (1 << 21)))
123
+	            /*  Store-Exclusive is unpredictable if Rn == Rs.  */
124
+		    as_warn
125
+		      (_("unpredictable: identical base and status registers"
126
+			 " --`%s'"),str);
127
+		  else
128
+	            /*  Store-Exclusive pair is unpredictable if Rt2 == Rs.  */
129
+		    as_warn
130
+		      (_("unpredictable: "
131
+			 "identical transfer and status registers"
132
+			 " --`%s'"),str);
133
+		}
134
+
135
+	      /* Store-Exclusive pair is unpredictable if Rn == Rs.  */
136
+	      if ((opcode->opcode & (1 << 21))
137
+		  && opnds[0].reg.regno == opnds[3].reg.regno
138
+		  && opnds[3].reg.regno != REG_SP)
139
+		as_warn (_("unpredictable: identical base and status registers"
140
+			   " --`%s'"),str);
141
+	    }
142
+	}
143
       break;
144
 
145
     default:
146
diff --git gas/testsuite/gas/aarch64/diagnostic.l gas/testsuite/gas/aarch64/diagnostic.l
147
index b5f304af70b..5158d41cd43 100644
148
--- gas/testsuite/gas/aarch64/diagnostic.l
149
+++ gas/testsuite/gas/aarch64/diagnostic.l
150
@@ -175,11 +175,11 @@
151
 [^:]*:304: Warning: unpredictable: identical transfer and status registers --`stlxrb w26,w26,\[x0\]'
152
 [^:]*:305: Warning: unpredictable: identical transfer and status registers --`stlxrh w26,w26,\[x1\]'
153
 [^:]*:306: Warning: unpredictable: identical transfer and status registers --`stlxr w26,w26,\[x2\]'
154
-[^:]*:307: Warning: unpredictable: identical transfer and status registers --`stlxrb w26,w27,\[x26\]'
155
-[^:]*:308: Warning: unpredictable: identical transfer and status registers --`stlxrh w26,w27,\[x26\]'
156
-[^:]*:309: Warning: unpredictable: identical transfer and status registers --`stlxr w26,w27,\[x26\]'
157
-[^:]*:310: Warning: unpredictable: identical transfer and status registers --`stlxr w26,x27,\[x26\]'
158
+[^:]*:307: Warning: unpredictable: identical base and status registers --`stlxrb w26,w27,\[x26\]'
159
+[^:]*:308: Warning: unpredictable: identical base and status registers --`stlxrh w26,w27,\[x26\]'
160
+[^:]*:309: Warning: unpredictable: identical base and status registers --`stlxr w26,w27,\[x26\]'
161
+[^:]*:310: Warning: unpredictable: identical base and status registers --`stlxr w26,x27,\[x26\]'
162
 [^:]*:311: Warning: unpredictable: identical transfer and status registers --`stlxr w26,x26,\[x3\]'
163
-[^:]*:312: Warning: unpredictable: identical transfer and status registers --`ldxp x26,x26,\[x5\]'
164
-[^:]*:313: Warning: unpredictable: identical transfer and status registers --`ldxp x26,x1,\[x26\]'
165
+[^:]*:312: Warning: unpredictable load of register pair -- `ldxp x26,x26,\[x5\]'
166
 [^:]*:314: Error: expected element type rather than vector type at operand 1 -- `st4 {v0\.16b-v3\.16b}\[4\],\[x0\]'
167
+[^:]*:315: Warning: unpredictable: identical base and status registers --`stlxp w3,w26,w26,\[x3\]'
168
diff --git gas/testsuite/gas/aarch64/diagnostic.s gas/testsuite/gas/aarch64/diagnostic.s
169
index 21cbc53d897..0ebe85ac59d 100644
170
--- gas/testsuite/gas/aarch64/diagnostic.s
171
+++ gas/testsuite/gas/aarch64/diagnostic.s
172
@@ -312,3 +312,4 @@
173
 	ldxp	x26, x26, [x5]
174
 	ldxp	x26, x1, [x26]
175
 	st4	{v0.16b-v3.16b}[4], [x0]
176
+	stlxp	w3, w26, w26, [x3]
177
-- 
178
2.32.0
179
(-)b/devel/binutils/files/patch-0085-e4454ee1896 (+98 lines)
Added Link Here
1
From e4454ee18960b092ba10e43100d43fef12f65b26 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Thu, 15 Apr 2021 01:33:13 +0930
4
Subject: [PATCH 085/169] Make objcopy -p work when an output file is specified
5
6
More fallout from the PR27456 fixes.
7
8
	PR 27456
9
	* rename.c (smart_rename): When TO and FROM are equal, just set
10
	file timestamp.
11
	* objcopy.c (strip_main, copy_main): Always call smart_rename.
12
13
(cherry picked from commit d0ecdcddc363ad7f05fc50cf1eee4028fa7f8964)
14
---
15
 binutils/ChangeLog |  7 +++++++
16
 binutils/objcopy.c | 13 ++++++-------
17
 binutils/rename.c  | 15 +++++++++------
18
 3 files changed, 22 insertions(+), 13 deletions(-)
19
20
diff --git binutils/ChangeLog binutils/ChangeLog
21
index 57ee4bc8ab2..11ff778cc35 100644
22
--- binutils/ChangeLog
23
+++ binutils/ChangeLog
24
@@ -1,3 +1,10 @@
25
+2021-04-15  Alan Modra  <amodra@gmail.com>
26
+
27
+	PR 27456
28
+	* rename.c (smart_rename): When TO and FROM are equal, just set
29
+	file timestamp.
30
+	* objcopy.c (strip_main, copy_main): Always call smart_rename.
31
+
32
 2021-02-26  Alan Modra  <amodra@gmail.com>
33
 
34
 	Backport from mainline
35
diff --git binutils/objcopy.c binutils/objcopy.c
36
index 620baee6dec..00ef851dc5d 100644
37
--- binutils/objcopy.c
38
+++ binutils/objcopy.c
39
@@ -4865,10 +4865,9 @@ strip_main (int argc, char *argv[])
40
 		 output_target, NULL);
41
       if (status == 0)
42
 	{
43
-	  if (output_file != tmpname)
44
-	    status = smart_rename (tmpname,
45
-				   output_file ? output_file : argv[i],
46
-				   copyfd, &statbuf, preserve_dates) != 0;
47
+	  const char *oname = output_file ? output_file : argv[i];
48
+	  status = smart_rename (tmpname, oname, copyfd,
49
+				 &statbuf, preserve_dates) != 0;
50
 	  if (status == 0)
51
 	    status = hold_status;
52
 	}
53
@@ -5944,9 +5943,9 @@ copy_main (int argc, char *argv[])
54
 	     output_target, input_arch);
55
   if (status == 0)
56
     {
57
-      if (tmpname != output_filename)
58
-	status = smart_rename (tmpname, input_filename, copyfd,
59
-			       &statbuf, preserve_dates) != 0;
60
+      const char *oname = output_filename ? output_filename : input_filename;
61
+      status = smart_rename (tmpname, oname, copyfd,
62
+			     &statbuf, preserve_dates) != 0;
63
     }
64
   else
65
     {
66
diff --git binutils/rename.c binutils/rename.c
67
index 861c2b56d18..0427348df5b 100644
68
--- binutils/rename.c
69
+++ binutils/rename.c
70
@@ -129,16 +129,19 @@ int
71
 smart_rename (const char *from, const char *to, int fromfd,
72
 	      struct stat *target_stat, bfd_boolean preserve_dates)
73
 {
74
-  int ret;
75
+  int ret = 0;
76
 
77
-  ret = simple_copy (fromfd, to, target_stat);
78
-  if (ret != 0)
79
-    non_fatal (_("unable to copy file '%s'; reason: %s"),
80
-	       to, strerror (errno));
81
+  if (to != from)
82
+    {
83
+      ret = simple_copy (fromfd, to, target_stat);
84
+      if (ret != 0)
85
+	non_fatal (_("unable to copy file '%s'; reason: %s"),
86
+		   to, strerror (errno));
87
+      unlink (from);
88
+    }
89
 
90
   if (preserve_dates)
91
     set_times (to, target_stat);
92
-  unlink (from);
93
 
94
   return ret;
95
 }
96
-- 
97
2.32.0
98
(-)b/devel/binutils/files/patch-0094-602ed821f59 (+122 lines)
Added Link Here
1
From 602ed821f597705848e3862b04445c86eb4e7d37 Mon Sep 17 00:00:00 2001
2
From: Eric Botcazou <ebotcazou@gcc.gnu.org>
3
Date: Fri, 23 Apr 2021 19:07:59 +0200
4
Subject: [PATCH 094/169] Fix type of .persistent.bss section
5
6
The change implementing the .persistent family of sections broke the
7
existing support for the .persistent.bss section in the compiler:
8
9
int a __attribute__ ((section (".persistent.bss")));
10
11
t.s: Assembler messages:
12
t.s:4: Warning: setting incorrect section type for .persistent.bss
13
14
The compiler encodes it as @nobits but the assembler expects @progbits.
15
The assembler is incorrect and should treat the section like the compiler.
16
17
bfd/
18
	* elf.c (special_sections_p): Add .persistent.bss.
19
gas/
20
	* testsuite/gas/elf/section25.d: Run it everywhere.
21
	* testsuite/gas/elf/section26.d: Likewise.
22
	* testsuite/gas/elf/section26.s: Add test for .persistent.bss.
23
---
24
 bfd/ChangeLog                     | 4 ++++
25
 bfd/elf.c                         | 1 +
26
 gas/ChangeLog                     | 6 ++++++
27
 gas/testsuite/gas/elf/section25.d | 4 +++-
28
 gas/testsuite/gas/elf/section26.d | 6 +++++-
29
 gas/testsuite/gas/elf/section26.s | 3 +++
30
 6 files changed, 22 insertions(+), 2 deletions(-)
31
32
diff --git bfd/ChangeLog bfd/ChangeLog
33
index ea9d22e13bb..e97150b6202 100644
34
--- bfd/ChangeLog
35
+++ bfd/ChangeLog
36
@@ -1,3 +1,7 @@
37
+2021-04-23  Eric Botcazou  <ebotcazou@adacore.com>
38
+
39
+	* elf.c (special_sections_p): Add .persistent.bss.
40
+
41
 2021-04-01  Tamar Christina  <tamar.christina@arm.com>
42
 
43
 	Backported from mainline.
44
diff --git bfd/elf.c bfd/elf.c
45
index 84a5d942817..36733e080dd 100644
46
--- bfd/elf.c
47
+++ bfd/elf.c
48
@@ -2712,6 +2712,7 @@ static const struct bfd_elf_special_section special_sections_n[] =
49
 
50
 static const struct bfd_elf_special_section special_sections_p[] =
51
 {
52
+  { STRING_COMMA_LEN (".persistent.bss"), 0, SHT_NOBITS,	SHF_ALLOC + SHF_WRITE },
53
   { STRING_COMMA_LEN (".persistent"),	 -2, SHT_PROGBITS,	SHF_ALLOC + SHF_WRITE },
54
   { STRING_COMMA_LEN (".preinit_array"), -2, SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
55
   { STRING_COMMA_LEN (".plt"),		  0, SHT_PROGBITS,	SHF_ALLOC + SHF_EXECINSTR },
56
diff --git gas/ChangeLog gas/ChangeLog
57
index 057943ce68d..bd87aca2525 100644
58
--- gas/ChangeLog
59
+++ gas/ChangeLog
60
@@ -1,3 +1,9 @@
61
+2021-04-23  Eric Botcazou<ebotcazou@adacore.com>
62
+
63
+	* testsuite/gas/elf/section25.d: Run it everywhere.
64
+	* testsuite/gas/elf/section26.d: Likewise.
65
+	* testsuite/gas/elf/section26.s: Add test for .persistent.bss.
66
+
67
 2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
68
 
69
 	Backported from mainline.
70
diff --git gas/testsuite/gas/elf/section25.d gas/testsuite/gas/elf/section25.d
71
index 09353849e5b..fa09b85074f 100644
72
--- gas/testsuite/gas/elf/section25.d
73
+++ gas/testsuite/gas/elf/section25.d
74
@@ -1,7 +1,9 @@
75
 #name: sections 25 (.noinit)
76
-#target: [supports_noinit_section]
77
 #source: section25.s
78
 #readelf: -S --wide
79
+# The h8300 port issues a warning message for
80
+# new sections created without atrributes.
81
+#xfail: h8300-*
82
 
83
 #...
84
   \[..\] .noinit[ 	]+NOBITS[ 	]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00  WA .*
85
diff --git gas/testsuite/gas/elf/section26.d gas/testsuite/gas/elf/section26.d
86
index 15d85bdca9d..f08f444e9c9 100644
87
--- gas/testsuite/gas/elf/section26.d
88
+++ gas/testsuite/gas/elf/section26.d
89
@@ -1,12 +1,16 @@
90
 #name: sections 26 (.persistent)
91
-#target: [supports_persistent_section]
92
 #source: section26.s
93
 #readelf: -S --wide
94
+# The h8300 port issues a warning message for
95
+# new sections created without atrributes.
96
+#xfail: h8300-*
97
 
98
 #...
99
   \[..\] .persistent[ 	]+PROGBITS[ 	]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00  WA .*
100
 #...
101
   \[..\] .persistent.foo[ 	]+PROGBITS[ 	]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00  WA .*
102
+#...
103
+  \[..\] .persistent.bss[ 	]+NOBITS[ 	]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00  WA .*
104
 #...
105
   \[..\] .gnu.linkonce.p.bar[ 	]+PROGBITS[ 	]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00  WA .*
106
 #pass
107
diff --git gas/testsuite/gas/elf/section26.s gas/testsuite/gas/elf/section26.s
108
index 7f986454229..aefe15d4c2c 100644
109
--- gas/testsuite/gas/elf/section26.s
110
+++ gas/testsuite/gas/elf/section26.s
111
@@ -4,5 +4,8 @@
112
 .section .persistent.foo
113
 .word 0
114
 
115
+.section .persistent.bss
116
+.word 0
117
+
118
 .section .gnu.linkonce.p.bar
119
 .word 0
120
-- 
121
2.32.0
122
(-)b/devel/binutils/files/patch-0105-ec2451f91e2 (+43 lines)
Added Link Here
1
From ec2451f91e2f786a819f94ab6aa8704869c48a54 Mon Sep 17 00:00:00 2001
2
From: Alan Modra <amodra@gmail.com>
3
Date: Mon, 3 May 2021 13:37:00 +0930
4
Subject: [PATCH 105/169] PR27755, powerpc-ld infinite loop
5
6
	PR 27755
7
	* elf32-ppc.c (ppc_elf_inline_plt): Do increment rel in loop.
8
9
(cherry picked from commit 337d0bf887a3ed6b6b2123fecfec0736640edcaf)
10
---
11
 bfd/ChangeLog   | 5 +++++
12
 bfd/elf32-ppc.c | 2 +-
13
 2 files changed, 6 insertions(+), 1 deletion(-)
14
15
diff --git bfd/ChangeLog bfd/ChangeLog
16
index e97150b6202..a8b7415fadc 100644
17
--- bfd/ChangeLog
18
+++ bfd/ChangeLog
19
@@ -1,3 +1,8 @@
20
+2021-05-03  Alan Modra  <amodra@gmail.com>
21
+
22
+	PR 27755
23
+	* elf32-ppc.c (ppc_elf_inline_plt): Do increment rel in loop.
24
+
25
 2021-04-23  Eric Botcazou  <ebotcazou@adacore.com>
26
 
27
 	* elf.c (special_sections_p): Add .persistent.bss.
28
diff --git bfd/elf32-ppc.c bfd/elf32-ppc.c
29
index fd88f3d718e..d278a1ab8fa 100644
30
--- bfd/elf32-ppc.c
31
+++ bfd/elf32-ppc.c
32
@@ -4245,7 +4245,7 @@ ppc_elf_inline_plt (struct bfd_link_info *info)
33
 	      return FALSE;
34
 
35
 	    relend = relstart + sec->reloc_count;
36
-	    for (rel = relstart; rel < relend; )
37
+	    for (rel = relstart; rel < relend; rel++)
38
 	      {
39
 		enum elf_ppc_reloc_type r_type;
40
 		unsigned long r_symndx;
41
-- 
42
2.32.0
43
(-)b/devel/binutils/files/patch-0122-b8f4b69aaaa (+499 lines)
Added Link Here
1
From b8f4b69aaaade0e3872597f1597506824f25434d Mon Sep 17 00:00:00 2001
2
From: Alex Coplan <alex.coplan@arm.com>
3
Date: Wed, 19 May 2021 10:38:23 +0100
4
Subject: [PATCH 122/169] arm: Fix bugs with MVE vmov from two GPRs to vector
5
 lanes
6
7
The initial problem I wanted to fix here is that GAS was rejecting MVE
8
instructions such as:
9
10
vmov q3[2], q3[0], r2, r2
11
12
with:
13
14
Error: General purpose registers may not be the same -- `vmov q3[2],q3[0],r2,r2'
15
16
which is incorrect; such instructions are valid. Note that for moves in
17
the other direction, e.g.:
18
19
vmov r2, r2, q3[2], q3[0]
20
21
GAS is correct in rejecting this as it does not make sense to move both
22
lanes into the same register (the Arm ARM says this is CONSTRAINED
23
UNPREDICTABLE).
24
25
After fixing this issue, I added assembly/disassembly tests for these
26
vmovs. This revealed several disassembly issues, including incorrectly
27
marking the moves into vector lanes as UNPREDICTABLE, and disassembling
28
many of the vmovs as vector loads. These are now fixed.
29
30
Regtested on arm-eabi, no regressions.
31
32
OK for trunk? What about backports?
33
34
Thanks,
35
Alex
36
37
gas/ChangeLog:
38
39
	* config/tc-arm.c (do_mve_mov): Only reject vmov if we're moving
40
	into the same GPR twice.
41
	* testsuite/gas/arm/mve-vmov-bad-2.l: Tweak error message.
42
	* testsuite/gas/arm/mve-vmov-3.d: New test.
43
	* testsuite/gas/arm/mve-vmov-3.s: New test.
44
45
opcodes/ChangeLog:
46
47
	* arm-dis.c (mve_opcodes): Fix disassembly of
48
	MVE_VMOV2_GP_TO_VEC_LANE when idx == 1.
49
	(is_mve_encoding_conflict): MVE vector loads should not match
50
	when P = W = 0.
51
	(is_mve_unpredictable): It's not unpredictable to use the same
52
	source register twice (for MVE_VMOV2_GP_TO_VEC_LANE).
53
---
54
 gas/ChangeLog                          |   8 ++
55
 gas/config/tc-arm.c                    |   4 +-
56
 gas/testsuite/gas/arm/mve-vmov-3.d     | 169 +++++++++++++++++++++++++
57
 gas/testsuite/gas/arm/mve-vmov-3.s     | 160 +++++++++++++++++++++++
58
 gas/testsuite/gas/arm/mve-vmov-bad-2.l |   2 +-
59
 opcodes/ChangeLog                      |   9 ++
60
 opcodes/arm-dis.c                      |   7 +-
61
 7 files changed, 354 insertions(+), 5 deletions(-)
62
 create mode 100644 gas/testsuite/gas/arm/mve-vmov-3.d
63
 create mode 100644 gas/testsuite/gas/arm/mve-vmov-3.s
64
65
diff --git gas/ChangeLog gas/ChangeLog
66
index bd87aca2525..e747d7dd8a9 100644
67
--- gas/ChangeLog
68
+++ gas/ChangeLog
69
@@ -1,3 +1,11 @@
70
+2021-05-19  Alex Coplan  <alex.coplan@arm.com>
71
+
72
+	* config/tc-arm.c (do_mve_mov): Only reject vmov if we're moving
73
+	into the same GPR twice.
74
+	* testsuite/gas/arm/mve-vmov-bad-2.l: Tweak error message.
75
+	* testsuite/gas/arm/mve-vmov-3.d: New test.
76
+	* testsuite/gas/arm/mve-vmov-3.s: New test.
77
+
78
 2021-04-23  Eric Botcazou<ebotcazou@adacore.com>
79
 
80
 	* testsuite/gas/elf/section25.d: Run it everywhere.
81
diff --git gas/config/tc-arm.c gas/config/tc-arm.c
82
index ff962daf749..d59e14930c3 100644
83
--- gas/config/tc-arm.c
84
+++ gas/config/tc-arm.c
85
@@ -20013,8 +20013,8 @@ do_mve_mov (int toQ)
86
   constraint (inst.operands[Q0].reg != inst.operands[Q1].reg + 2,
87
 	      _("Index one must be [2,3] and index two must be two less than"
88
 		" index one."));
89
-  constraint (inst.operands[Rt].reg == inst.operands[Rt2].reg,
90
-	      _("General purpose registers may not be the same"));
91
+  constraint (!toQ && inst.operands[Rt].reg == inst.operands[Rt2].reg,
92
+	      _("Destination registers may not be the same"));
93
   constraint (inst.operands[Rt].reg == REG_SP
94
 	      || inst.operands[Rt2].reg == REG_SP,
95
 	      BAD_SP);
96
diff --git gas/testsuite/gas/arm/mve-vmov-3.d gas/testsuite/gas/arm/mve-vmov-3.d
97
new file mode 100644
98
index 00000000000..5355b4ac4cb
99
--- /dev/null
100
+++ gas/testsuite/gas/arm/mve-vmov-3.d
101
@@ -0,0 +1,169 @@
102
+# name: MVE vmov (between two 32-bit vector lanes and two GPRs)
103
+# as: -march=armv8.1-m.main+mve
104
+# objdump: -dr -marmv8.1-m.main
105
+
106
+.*: +file format .*arm.*
107
+
108
+Disassembly of section .text:
109
+
110
+0+ <.*>:
111
+.*:	ec01 2f00 	vmov	r0, r1, q1\[2\], q1\[0\]
112
+.*:	ec01 4f00 	vmov	r0, r1, q2\[2\], q2\[0\]
113
+.*:	ec01 6f00 	vmov	r0, r1, q3\[2\], q3\[0\]
114
+.*:	ec01 8f00 	vmov	r0, r1, q4\[2\], q4\[0\]
115
+.*:	ec01 af00 	vmov	r0, r1, q5\[2\], q5\[0\]
116
+.*:	ec01 cf00 	vmov	r0, r1, q6\[2\], q6\[0\]
117
+.*:	ec01 ef00 	vmov	r0, r1, q7\[2\], q7\[0\]
118
+.*:	ec00 0f01 	vmov	r1, r0, q0\[2\], q0\[0\]
119
+.*:	ec00 0f02 	vmov	r2, r0, q0\[2\], q0\[0\]
120
+.*:	ec00 0f03 	vmov	r3, r0, q0\[2\], q0\[0\]
121
+.*:	ec00 0f04 	vmov	r4, r0, q0\[2\], q0\[0\]
122
+.*:	ec00 0f05 	vmov	r5, r0, q0\[2\], q0\[0\]
123
+.*:	ec00 0f06 	vmov	r6, r0, q0\[2\], q0\[0\]
124
+.*:	ec00 0f07 	vmov	r7, r0, q0\[2\], q0\[0\]
125
+.*:	ec00 0f08 	vmov	r8, r0, q0\[2\], q0\[0\]
126
+.*:	ec00 0f09 	vmov	r9, r0, q0\[2\], q0\[0\]
127
+.*:	ec00 0f0a 	vmov	sl, r0, q0\[2\], q0\[0\]
128
+.*:	ec00 0f0b 	vmov	fp, r0, q0\[2\], q0\[0\]
129
+.*:	ec00 0f0c 	vmov	ip, r0, q0\[2\], q0\[0\]
130
+.*:	ec00 0f0e 	vmov	lr, r0, q0\[2\], q0\[0\]
131
+.*:	ec01 0f00 	vmov	r0, r1, q0\[2\], q0\[0\]
132
+.*:	ec02 0f00 	vmov	r0, r2, q0\[2\], q0\[0\]
133
+.*:	ec03 0f00 	vmov	r0, r3, q0\[2\], q0\[0\]
134
+.*:	ec04 0f00 	vmov	r0, r4, q0\[2\], q0\[0\]
135
+.*:	ec05 0f00 	vmov	r0, r5, q0\[2\], q0\[0\]
136
+.*:	ec06 0f00 	vmov	r0, r6, q0\[2\], q0\[0\]
137
+.*:	ec07 0f00 	vmov	r0, r7, q0\[2\], q0\[0\]
138
+.*:	ec08 0f00 	vmov	r0, r8, q0\[2\], q0\[0\]
139
+.*:	ec09 0f00 	vmov	r0, r9, q0\[2\], q0\[0\]
140
+.*:	ec0a 0f00 	vmov	r0, sl, q0\[2\], q0\[0\]
141
+.*:	ec0b 0f00 	vmov	r0, fp, q0\[2\], q0\[0\]
142
+.*:	ec0c 0f00 	vmov	r0, ip, q0\[2\], q0\[0\]
143
+.*:	ec0e 0f00 	vmov	r0, lr, q0\[2\], q0\[0\]
144
+.*:	ec01 2f10 	vmov	r0, r1, q1\[3\], q1\[1\]
145
+.*:	ec01 4f10 	vmov	r0, r1, q2\[3\], q2\[1\]
146
+.*:	ec01 6f10 	vmov	r0, r1, q3\[3\], q3\[1\]
147
+.*:	ec01 8f10 	vmov	r0, r1, q4\[3\], q4\[1\]
148
+.*:	ec01 af10 	vmov	r0, r1, q5\[3\], q5\[1\]
149
+.*:	ec01 cf10 	vmov	r0, r1, q6\[3\], q6\[1\]
150
+.*:	ec01 ef10 	vmov	r0, r1, q7\[3\], q7\[1\]
151
+.*:	ec00 0f11 	vmov	r1, r0, q0\[3\], q0\[1\]
152
+.*:	ec00 0f12 	vmov	r2, r0, q0\[3\], q0\[1\]
153
+.*:	ec00 0f13 	vmov	r3, r0, q0\[3\], q0\[1\]
154
+.*:	ec00 0f14 	vmov	r4, r0, q0\[3\], q0\[1\]
155
+.*:	ec00 0f15 	vmov	r5, r0, q0\[3\], q0\[1\]
156
+.*:	ec00 0f16 	vmov	r6, r0, q0\[3\], q0\[1\]
157
+.*:	ec00 0f17 	vmov	r7, r0, q0\[3\], q0\[1\]
158
+.*:	ec00 0f18 	vmov	r8, r0, q0\[3\], q0\[1\]
159
+.*:	ec00 0f19 	vmov	r9, r0, q0\[3\], q0\[1\]
160
+.*:	ec00 0f1a 	vmov	sl, r0, q0\[3\], q0\[1\]
161
+.*:	ec00 0f1b 	vmov	fp, r0, q0\[3\], q0\[1\]
162
+.*:	ec00 0f1c 	vmov	ip, r0, q0\[3\], q0\[1\]
163
+.*:	ec00 0f1e 	vmov	lr, r0, q0\[3\], q0\[1\]
164
+.*:	ec01 0f10 	vmov	r0, r1, q0\[3\], q0\[1\]
165
+.*:	ec02 0f10 	vmov	r0, r2, q0\[3\], q0\[1\]
166
+.*:	ec03 0f10 	vmov	r0, r3, q0\[3\], q0\[1\]
167
+.*:	ec04 0f10 	vmov	r0, r4, q0\[3\], q0\[1\]
168
+.*:	ec05 0f10 	vmov	r0, r5, q0\[3\], q0\[1\]
169
+.*:	ec06 0f10 	vmov	r0, r6, q0\[3\], q0\[1\]
170
+.*:	ec07 0f10 	vmov	r0, r7, q0\[3\], q0\[1\]
171
+.*:	ec08 0f10 	vmov	r0, r8, q0\[3\], q0\[1\]
172
+.*:	ec09 0f10 	vmov	r0, r9, q0\[3\], q0\[1\]
173
+.*:	ec0a 0f10 	vmov	r0, sl, q0\[3\], q0\[1\]
174
+.*:	ec0b 0f10 	vmov	r0, fp, q0\[3\], q0\[1\]
175
+.*:	ec0c 0f10 	vmov	r0, ip, q0\[3\], q0\[1\]
176
+.*:	ec0e 0f10 	vmov	r0, lr, q0\[3\], q0\[1\]
177
+.*:	ec11 2f00 	vmov	q1\[2\], q1\[0\], r0, r1
178
+.*:	ec11 4f00 	vmov	q2\[2\], q2\[0\], r0, r1
179
+.*:	ec11 6f00 	vmov	q3\[2\], q3\[0\], r0, r1
180
+.*:	ec11 8f00 	vmov	q4\[2\], q4\[0\], r0, r1
181
+.*:	ec11 af00 	vmov	q5\[2\], q5\[0\], r0, r1
182
+.*:	ec11 cf00 	vmov	q6\[2\], q6\[0\], r0, r1
183
+.*:	ec11 ef00 	vmov	q7\[2\], q7\[0\], r0, r1
184
+.*:	ec10 0f00 	vmov	q0\[2\], q0\[0\], r0, r0
185
+.*:	ec10 0f01 	vmov	q0\[2\], q0\[0\], r1, r0
186
+.*:	ec10 0f02 	vmov	q0\[2\], q0\[0\], r2, r0
187
+.*:	ec10 0f03 	vmov	q0\[2\], q0\[0\], r3, r0
188
+.*:	ec10 0f04 	vmov	q0\[2\], q0\[0\], r4, r0
189
+.*:	ec10 0f05 	vmov	q0\[2\], q0\[0\], r5, r0
190
+.*:	ec10 0f06 	vmov	q0\[2\], q0\[0\], r6, r0
191
+.*:	ec10 0f07 	vmov	q0\[2\], q0\[0\], r7, r0
192
+.*:	ec10 0f08 	vmov	q0\[2\], q0\[0\], r8, r0
193
+.*:	ec10 0f09 	vmov	q0\[2\], q0\[0\], r9, r0
194
+.*:	ec10 0f0a 	vmov	q0\[2\], q0\[0\], sl, r0
195
+.*:	ec10 0f0b 	vmov	q0\[2\], q0\[0\], fp, r0
196
+.*:	ec10 0f0c 	vmov	q0\[2\], q0\[0\], ip, r0
197
+.*:	ec10 0f0e 	vmov	q0\[2\], q0\[0\], lr, r0
198
+.*:	ec11 0f00 	vmov	q0\[2\], q0\[0\], r0, r1
199
+.*:	ec12 0f00 	vmov	q0\[2\], q0\[0\], r0, r2
200
+.*:	ec13 0f00 	vmov	q0\[2\], q0\[0\], r0, r3
201
+.*:	ec14 0f00 	vmov	q0\[2\], q0\[0\], r0, r4
202
+.*:	ec15 0f00 	vmov	q0\[2\], q0\[0\], r0, r5
203
+.*:	ec16 0f00 	vmov	q0\[2\], q0\[0\], r0, r6
204
+.*:	ec17 0f00 	vmov	q0\[2\], q0\[0\], r0, r7
205
+.*:	ec18 0f00 	vmov	q0\[2\], q0\[0\], r0, r8
206
+.*:	ec19 0f00 	vmov	q0\[2\], q0\[0\], r0, r9
207
+.*:	ec1a 0f00 	vmov	q0\[2\], q0\[0\], r0, sl
208
+.*:	ec1b 0f00 	vmov	q0\[2\], q0\[0\], r0, fp
209
+.*:	ec1c 0f00 	vmov	q0\[2\], q0\[0\], r0, ip
210
+.*:	ec1e 0f00 	vmov	q0\[2\], q0\[0\], r0, lr
211
+.*:	ec11 0f01 	vmov	q0\[2\], q0\[0\], r1, r1
212
+.*:	ec12 0f02 	vmov	q0\[2\], q0\[0\], r2, r2
213
+.*:	ec13 0f03 	vmov	q0\[2\], q0\[0\], r3, r3
214
+.*:	ec14 0f04 	vmov	q0\[2\], q0\[0\], r4, r4
215
+.*:	ec15 0f05 	vmov	q0\[2\], q0\[0\], r5, r5
216
+.*:	ec16 0f06 	vmov	q0\[2\], q0\[0\], r6, r6
217
+.*:	ec17 0f07 	vmov	q0\[2\], q0\[0\], r7, r7
218
+.*:	ec18 0f08 	vmov	q0\[2\], q0\[0\], r8, r8
219
+.*:	ec19 0f09 	vmov	q0\[2\], q0\[0\], r9, r9
220
+.*:	ec1a 0f0a 	vmov	q0\[2\], q0\[0\], sl, sl
221
+.*:	ec1b 0f0b 	vmov	q0\[2\], q0\[0\], fp, fp
222
+.*:	ec1c 0f0c 	vmov	q0\[2\], q0\[0\], ip, ip
223
+.*:	ec1e 0f0e 	vmov	q0\[2\], q0\[0\], lr, lr
224
+.*:	ec11 2f10 	vmov	q1\[3\], q1\[1\], r0, r1
225
+.*:	ec11 4f10 	vmov	q2\[3\], q2\[1\], r0, r1
226
+.*:	ec11 6f10 	vmov	q3\[3\], q3\[1\], r0, r1
227
+.*:	ec11 8f10 	vmov	q4\[3\], q4\[1\], r0, r1
228
+.*:	ec11 af10 	vmov	q5\[3\], q5\[1\], r0, r1
229
+.*:	ec11 cf10 	vmov	q6\[3\], q6\[1\], r0, r1
230
+.*:	ec11 ef10 	vmov	q7\[3\], q7\[1\], r0, r1
231
+.*:	ec10 0f10 	vmov	q0\[3\], q0\[1\], r0, r0
232
+.*:	ec10 0f11 	vmov	q0\[3\], q0\[1\], r1, r0
233
+.*:	ec10 0f12 	vmov	q0\[3\], q0\[1\], r2, r0
234
+.*:	ec10 0f13 	vmov	q0\[3\], q0\[1\], r3, r0
235
+.*:	ec10 0f14 	vmov	q0\[3\], q0\[1\], r4, r0
236
+.*:	ec10 0f15 	vmov	q0\[3\], q0\[1\], r5, r0
237
+.*:	ec10 0f16 	vmov	q0\[3\], q0\[1\], r6, r0
238
+.*:	ec10 0f17 	vmov	q0\[3\], q0\[1\], r7, r0
239
+.*:	ec10 0f18 	vmov	q0\[3\], q0\[1\], r8, r0
240
+.*:	ec10 0f19 	vmov	q0\[3\], q0\[1\], r9, r0
241
+.*:	ec10 0f1a 	vmov	q0\[3\], q0\[1\], sl, r0
242
+.*:	ec10 0f1b 	vmov	q0\[3\], q0\[1\], fp, r0
243
+.*:	ec10 0f1c 	vmov	q0\[3\], q0\[1\], ip, r0
244
+.*:	ec10 0f1e 	vmov	q0\[3\], q0\[1\], lr, r0
245
+.*:	ec11 0f10 	vmov	q0\[3\], q0\[1\], r0, r1
246
+.*:	ec12 0f10 	vmov	q0\[3\], q0\[1\], r0, r2
247
+.*:	ec13 0f10 	vmov	q0\[3\], q0\[1\], r0, r3
248
+.*:	ec14 0f10 	vmov	q0\[3\], q0\[1\], r0, r4
249
+.*:	ec15 0f10 	vmov	q0\[3\], q0\[1\], r0, r5
250
+.*:	ec16 0f10 	vmov	q0\[3\], q0\[1\], r0, r6
251
+.*:	ec17 0f10 	vmov	q0\[3\], q0\[1\], r0, r7
252
+.*:	ec18 0f10 	vmov	q0\[3\], q0\[1\], r0, r8
253
+.*:	ec19 0f10 	vmov	q0\[3\], q0\[1\], r0, r9
254
+.*:	ec1a 0f10 	vmov	q0\[3\], q0\[1\], r0, sl
255
+.*:	ec1b 0f10 	vmov	q0\[3\], q0\[1\], r0, fp
256
+.*:	ec1c 0f10 	vmov	q0\[3\], q0\[1\], r0, ip
257
+.*:	ec1e 0f10 	vmov	q0\[3\], q0\[1\], r0, lr
258
+.*:	ec11 0f11 	vmov	q0\[3\], q0\[1\], r1, r1
259
+.*:	ec12 0f12 	vmov	q0\[3\], q0\[1\], r2, r2
260
+.*:	ec13 0f13 	vmov	q0\[3\], q0\[1\], r3, r3
261
+.*:	ec14 0f14 	vmov	q0\[3\], q0\[1\], r4, r4
262
+.*:	ec15 0f15 	vmov	q0\[3\], q0\[1\], r5, r5
263
+.*:	ec16 0f16 	vmov	q0\[3\], q0\[1\], r6, r6
264
+.*:	ec17 0f17 	vmov	q0\[3\], q0\[1\], r7, r7
265
+.*:	ec18 0f18 	vmov	q0\[3\], q0\[1\], r8, r8
266
+.*:	ec19 0f19 	vmov	q0\[3\], q0\[1\], r9, r9
267
+.*:	ec1a 0f1a 	vmov	q0\[3\], q0\[1\], sl, sl
268
+.*:	ec1b 0f1b 	vmov	q0\[3\], q0\[1\], fp, fp
269
+.*:	ec1c 0f1c 	vmov	q0\[3\], q0\[1\], ip, ip
270
+.*:	ec1e 0f1e 	vmov	q0\[3\], q0\[1\], lr, lr
271
diff --git gas/testsuite/gas/arm/mve-vmov-3.s gas/testsuite/gas/arm/mve-vmov-3.s
272
new file mode 100644
273
index 00000000000..caf09576acd
274
--- /dev/null
275
+++ gas/testsuite/gas/arm/mve-vmov-3.s
276
@@ -0,0 +1,160 @@
277
+vmov	r0, r1, q1[2], q1[0]
278
+vmov	r0, r1, q2[2], q2[0]
279
+vmov	r0, r1, q3[2], q3[0]
280
+vmov	r0, r1, q4[2], q4[0]
281
+vmov	r0, r1, q5[2], q5[0]
282
+vmov	r0, r1, q6[2], q6[0]
283
+vmov	r0, r1, q7[2], q7[0]
284
+vmov	r1, r0, q0[2], q0[0]
285
+vmov	r2, r0, q0[2], q0[0]
286
+vmov	r3, r0, q0[2], q0[0]
287
+vmov	r4, r0, q0[2], q0[0]
288
+vmov	r5, r0, q0[2], q0[0]
289
+vmov	r6, r0, q0[2], q0[0]
290
+vmov	r7, r0, q0[2], q0[0]
291
+vmov	r8, r0, q0[2], q0[0]
292
+vmov	r9, r0, q0[2], q0[0]
293
+vmov	sl, r0, q0[2], q0[0]
294
+vmov	fp, r0, q0[2], q0[0]
295
+vmov	ip, r0, q0[2], q0[0]
296
+vmov	lr, r0, q0[2], q0[0]
297
+vmov	r0, r1, q0[2], q0[0]
298
+vmov	r0, r2, q0[2], q0[0]
299
+vmov	r0, r3, q0[2], q0[0]
300
+vmov	r0, r4, q0[2], q0[0]
301
+vmov	r0, r5, q0[2], q0[0]
302
+vmov	r0, r6, q0[2], q0[0]
303
+vmov	r0, r7, q0[2], q0[0]
304
+vmov	r0, r8, q0[2], q0[0]
305
+vmov	r0, r9, q0[2], q0[0]
306
+vmov	r0, sl, q0[2], q0[0]
307
+vmov	r0, fp, q0[2], q0[0]
308
+vmov	r0, ip, q0[2], q0[0]
309
+vmov	r0, lr, q0[2], q0[0]
310
+vmov	r0, r1, q1[3], q1[1]
311
+vmov	r0, r1, q2[3], q2[1]
312
+vmov	r0, r1, q3[3], q3[1]
313
+vmov	r0, r1, q4[3], q4[1]
314
+vmov	r0, r1, q5[3], q5[1]
315
+vmov	r0, r1, q6[3], q6[1]
316
+vmov	r0, r1, q7[3], q7[1]
317
+vmov	r1, r0, q0[3], q0[1]
318
+vmov	r2, r0, q0[3], q0[1]
319
+vmov	r3, r0, q0[3], q0[1]
320
+vmov	r4, r0, q0[3], q0[1]
321
+vmov	r5, r0, q0[3], q0[1]
322
+vmov	r6, r0, q0[3], q0[1]
323
+vmov	r7, r0, q0[3], q0[1]
324
+vmov	r8, r0, q0[3], q0[1]
325
+vmov	r9, r0, q0[3], q0[1]
326
+vmov	sl, r0, q0[3], q0[1]
327
+vmov	fp, r0, q0[3], q0[1]
328
+vmov	ip, r0, q0[3], q0[1]
329
+vmov	lr, r0, q0[3], q0[1]
330
+vmov	r0, r1, q0[3], q0[1]
331
+vmov	r0, r2, q0[3], q0[1]
332
+vmov	r0, r3, q0[3], q0[1]
333
+vmov	r0, r4, q0[3], q0[1]
334
+vmov	r0, r5, q0[3], q0[1]
335
+vmov	r0, r6, q0[3], q0[1]
336
+vmov	r0, r7, q0[3], q0[1]
337
+vmov	r0, r8, q0[3], q0[1]
338
+vmov	r0, r9, q0[3], q0[1]
339
+vmov	r0, sl, q0[3], q0[1]
340
+vmov	r0, fp, q0[3], q0[1]
341
+vmov	r0, ip, q0[3], q0[1]
342
+vmov	r0, lr, q0[3], q0[1]
343
+vmov	q1[2], q1[0], r0, r1
344
+vmov	q2[2], q2[0], r0, r1
345
+vmov	q3[2], q3[0], r0, r1
346
+vmov	q4[2], q4[0], r0, r1
347
+vmov	q5[2], q5[0], r0, r1
348
+vmov	q6[2], q6[0], r0, r1
349
+vmov	q7[2], q7[0], r0, r1
350
+vmov	q0[2], q0[0], r0, r0
351
+vmov	q0[2], q0[0], r1, r0
352
+vmov	q0[2], q0[0], r2, r0
353
+vmov	q0[2], q0[0], r3, r0
354
+vmov	q0[2], q0[0], r4, r0
355
+vmov	q0[2], q0[0], r5, r0
356
+vmov	q0[2], q0[0], r6, r0
357
+vmov	q0[2], q0[0], r7, r0
358
+vmov	q0[2], q0[0], r8, r0
359
+vmov	q0[2], q0[0], r9, r0
360
+vmov	q0[2], q0[0], sl, r0
361
+vmov	q0[2], q0[0], fp, r0
362
+vmov	q0[2], q0[0], ip, r0
363
+vmov	q0[2], q0[0], lr, r0
364
+vmov	q0[2], q0[0], r0, r1
365
+vmov	q0[2], q0[0], r0, r2
366
+vmov	q0[2], q0[0], r0, r3
367
+vmov	q0[2], q0[0], r0, r4
368
+vmov	q0[2], q0[0], r0, r5
369
+vmov	q0[2], q0[0], r0, r6
370
+vmov	q0[2], q0[0], r0, r7
371
+vmov	q0[2], q0[0], r0, r8
372
+vmov	q0[2], q0[0], r0, r9
373
+vmov	q0[2], q0[0], r0, sl
374
+vmov	q0[2], q0[0], r0, fp
375
+vmov	q0[2], q0[0], r0, ip
376
+vmov	q0[2], q0[0], r0, lr
377
+vmov	q0[2], q0[0], r1, r1
378
+vmov	q0[2], q0[0], r2, r2
379
+vmov	q0[2], q0[0], r3, r3
380
+vmov	q0[2], q0[0], r4, r4
381
+vmov	q0[2], q0[0], r5, r5
382
+vmov	q0[2], q0[0], r6, r6
383
+vmov	q0[2], q0[0], r7, r7
384
+vmov	q0[2], q0[0], r8, r8
385
+vmov	q0[2], q0[0], r9, r9
386
+vmov	q0[2], q0[0], sl, sl
387
+vmov	q0[2], q0[0], fp, fp
388
+vmov	q0[2], q0[0], ip, ip
389
+vmov	q0[2], q0[0], lr, lr
390
+vmov	q1[3], q1[1], r0, r1
391
+vmov	q2[3], q2[1], r0, r1
392
+vmov	q3[3], q3[1], r0, r1
393
+vmov	q4[3], q4[1], r0, r1
394
+vmov	q5[3], q5[1], r0, r1
395
+vmov	q6[3], q6[1], r0, r1
396
+vmov	q7[3], q7[1], r0, r1
397
+vmov	q0[3], q0[1], r0, r0
398
+vmov	q0[3], q0[1], r1, r0
399
+vmov	q0[3], q0[1], r2, r0
400
+vmov	q0[3], q0[1], r3, r0
401
+vmov	q0[3], q0[1], r4, r0
402
+vmov	q0[3], q0[1], r5, r0
403
+vmov	q0[3], q0[1], r6, r0
404
+vmov	q0[3], q0[1], r7, r0
405
+vmov	q0[3], q0[1], r8, r0
406
+vmov	q0[3], q0[1], r9, r0
407
+vmov	q0[3], q0[1], sl, r0
408
+vmov	q0[3], q0[1], fp, r0
409
+vmov	q0[3], q0[1], ip, r0
410
+vmov	q0[3], q0[1], lr, r0
411
+vmov	q0[3], q0[1], r0, r1
412
+vmov	q0[3], q0[1], r0, r2
413
+vmov	q0[3], q0[1], r0, r3
414
+vmov	q0[3], q0[1], r0, r4
415
+vmov	q0[3], q0[1], r0, r5
416
+vmov	q0[3], q0[1], r0, r6
417
+vmov	q0[3], q0[1], r0, r7
418
+vmov	q0[3], q0[1], r0, r8
419
+vmov	q0[3], q0[1], r0, r9
420
+vmov	q0[3], q0[1], r0, sl
421
+vmov	q0[3], q0[1], r0, fp
422
+vmov	q0[3], q0[1], r0, ip
423
+vmov	q0[3], q0[1], r0, lr
424
+vmov	q0[3], q0[1], r1, r1
425
+vmov	q0[3], q0[1], r2, r2
426
+vmov	q0[3], q0[1], r3, r3
427
+vmov	q0[3], q0[1], r4, r4
428
+vmov	q0[3], q0[1], r5, r5
429
+vmov	q0[3], q0[1], r6, r6
430
+vmov	q0[3], q0[1], r7, r7
431
+vmov	q0[3], q0[1], r8, r8
432
+vmov	q0[3], q0[1], r9, r9
433
+vmov	q0[3], q0[1], sl, sl
434
+vmov	q0[3], q0[1], fp, fp
435
+vmov	q0[3], q0[1], ip, ip
436
+vmov	q0[3], q0[1], lr, lr
437
diff --git gas/testsuite/gas/arm/mve-vmov-bad-2.l gas/testsuite/gas/arm/mve-vmov-bad-2.l
438
index 2f4bdc8293a..7c9226cf8ea 100644
439
--- gas/testsuite/gas/arm/mve-vmov-bad-2.l
440
+++ gas/testsuite/gas/arm/mve-vmov-bad-2.l
441
@@ -1,5 +1,5 @@
442
 [^:]*: Assembler messages:
443
-[^:]*:3: Error: General purpose registers may not be the same -- `vmov r0,r0,q0\[2\],q0\[0\]'
444
+[^:]*:3: Error: Destination registers may not be the same -- `vmov r0,r0,q0\[2\],q0\[0\]'
445
 [^:]*:4: Error: r13 not allowed here -- `vmov sp,r0,q0\[2\],q0\[0\]'
446
 [^:]*:5: Error: r13 not allowed here -- `vmov r0,sp,q0\[2\],q0\[0\]'
447
 [^:]*:6: Error: r15 not allowed here -- `vmov pc,r0,q0\[2\],q0\[0\]'
448
diff --git opcodes/ChangeLog opcodes/ChangeLog
449
index ca9dff38798..43cd9bef661 100644
450
--- opcodes/ChangeLog
451
+++ opcodes/ChangeLog
452
@@ -1,3 +1,12 @@
453
+2021-05-19  Alex Coplan  <alex.coplan@arm.com>
454
+
455
+	* arm-dis.c (mve_opcodes): Fix disassembly of
456
+	MVE_VMOV2_GP_TO_VEC_LANE when idx == 1.
457
+	(is_mve_encoding_conflict): MVE vector loads should not match
458
+	when P = W = 0.
459
+	(is_mve_unpredictable): It's not unpredictable to use the same
460
+	source register twice (for MVE_VMOV2_GP_TO_VEC_LANE).
461
+
462
 2021-04-09  Tejas Belagod  <tejas.belagod@arm.com>
463
 
464
 	Backported from mainline.
465
diff --git opcodes/arm-dis.c opcodes/arm-dis.c
466
index f16a5902479..97632693803 100644
467
--- opcodes/arm-dis.c
468
+++ opcodes/arm-dis.c
469
@@ -2959,7 +2959,7 @@ static const struct mopcode32 mve_opcodes[] =
470
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE),
471
    MVE_VMOV2_GP_TO_VEC_LANE,
472
    0xec100f10, 0xffb01ff0,
473
-   "vmov%c\t%13-15,22Q[2], %13-15,22Q[0], %0-3r, %16-19r"},
474
+   "vmov%c\t%13-15,22Q[3], %13-15,22Q[1], %0-3r, %16-19r"},
475
 
476
   /* Vector VMOV Vector lane to gpr.  */
477
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE_FP),
478
@@ -5727,6 +5727,9 @@ is_mve_encoding_conflict (unsigned long given,
479
       else
480
 	return FALSE;
481
 
482
+    case MVE_VLDRB_T1:
483
+    case MVE_VLDRH_T2:
484
+    case MVE_VLDRW_T7:
485
     case MVE_VSTRB_T5:
486
     case MVE_VSTRH_T6:
487
     case MVE_VSTRW_T7:
488
@@ -6661,7 +6664,7 @@ is_mve_unpredictable (unsigned long given, enum mve_instructions matched_insn,
489
 	    *unpredictable_code = UNPRED_R15;
490
 	    return TRUE;
491
 	  }
492
-	else if (rt == rt2)
493
+	else if (rt == rt2 && matched_insn != MVE_VMOV2_GP_TO_VEC_LANE)
494
 	  {
495
 	    *unpredictable_code = UNPRED_GP_REGS_EQUAL;
496
 	    return TRUE;
497
-- 
498
2.32.0
499
(-)b/devel/binutils/files/patch-0129-eaf6d3b360d (+139 lines)
Added Link Here
1
From eaf6d3b360d2d4bd68acaebb80e40d5bb69a734d Mon Sep 17 00:00:00 2001
2
From: Tamar Christina <tamar.christina@arm.com>
3
Date: Tue, 25 May 2021 16:04:04 +0100
4
Subject: [PATCH 129/169] Arm: Fix forward thumb references [PR gas/25235]
5
6
When assembling a forward reference the symbol will be unknown and so during
7
do_t_adr we cannot set the thumb bit.  The bit it set so early to prevent
8
relaxations that are invalid. i.e. relaxing a Thumb2 to Thumb1 insn when the
9
symbol is Thumb.
10
11
But because it's done so early we miss the case for forward references.
12
This patch changes it so that we additionally check the thumb bit during the
13
internal relocation processing.
14
15
In principle we should be able to only set the bit during reloc processing but
16
that would require changes to the other relocations that the instruction could
17
be relaxed to.
18
19
This approach still allows early relaxations (which means that we have less
20
iteration of internal reloc processing) while still fixing the forward reference
21
case.
22
23
gas/ChangeLog:
24
25
2021-05-24  Tamar Christina  <tamar.christina@arm.com>
26
27
	PR gas/25235
28
	* config/tc-arm.c (md_convert_frag): Set LSB when Thumb symbol.
29
	(relax_adr): Thumb symbols 4 bytes.
30
	* testsuite/gas/arm/pr25235.d: New test.
31
	* testsuite/gas/arm/pr25235.s: New test.
32
33
(cherry picked from commit d3e52e120b68bf19552743fbc078e0a759f48cb7)
34
---
35
 gas/config/tc-arm.c             | 11 ++++++++++-
36
 gas/testsuite/gas/arm/pr25235.d | 24 ++++++++++++++++++++++++
37
 gas/testsuite/gas/arm/pr25235.s | 30 ++++++++++++++++++++++++++++++
38
 3 files changed, 64 insertions(+), 1 deletion(-)
39
 create mode 100644 gas/testsuite/gas/arm/pr25235.d
40
 create mode 100644 gas/testsuite/gas/arm/pr25235.s
41
42
diff --git gas/config/tc-arm.c gas/config/tc-arm.c
43
index d59e14930c3..1280921d890 100644
44
--- gas/config/tc-arm.c
45
+++ gas/config/tc-arm.c
46
@@ -26827,6 +26827,14 @@ md_convert_frag (bfd *abfd, segT asec ATTRIBUTE_UNUSED, fragS *fragp)
47
       pc_rel = (opcode == T_MNEM_ldr_pc2);
48
       break;
49
     case T_MNEM_adr:
50
+      /* Thumb bits should be set in the frag handling so we process them
51
+	 after all symbols have been seen.  PR gas/25235.  */
52
+      if (exp.X_op == O_symbol
53
+	  && exp.X_add_symbol != NULL
54
+	  && S_IS_DEFINED (exp.X_add_symbol)
55
+	  && THUMB_IS_FUNC (exp.X_add_symbol))
56
+	exp.X_add_number |= 1;
57
+
58
       if (fragp->fr_var == 4)
59
 	{
60
 	  insn = THUMB_OP32 (opcode);
61
@@ -27024,7 +27032,8 @@ relax_adr (fragS *fragp, asection *sec, long stretch)
62
   if (fragp->fr_symbol == NULL
63
       || !S_IS_DEFINED (fragp->fr_symbol)
64
       || sec != S_GET_SEGMENT (fragp->fr_symbol)
65
-      || S_IS_WEAK (fragp->fr_symbol))
66
+      || S_IS_WEAK (fragp->fr_symbol)
67
+      || THUMB_IS_FUNC (fragp->fr_symbol))
68
     return 4;
69
 
70
   val = relaxed_symbol_addr (fragp, stretch);
71
diff --git gas/testsuite/gas/arm/pr25235.d gas/testsuite/gas/arm/pr25235.d
72
new file mode 100644
73
index 00000000000..12695038701
74
--- /dev/null
75
+++ gas/testsuite/gas/arm/pr25235.d
76
@@ -0,0 +1,24 @@
77
+#skip: *-*-pe *-*-wince *-*-vxworks
78
+#objdump: -dr
79
+#name: PR25235: Thumb forward references error
80
+
81
+.*: +file format .*arm.*
82
+
83
+Disassembly of section .text:
84
+
85
+00000000 <f1>:
86
+   0:	46c0      	nop			; \(mov r8, r8\)
87
+   2:	46c0      	nop			; \(mov r8, r8\)
88
+
89
+00000004 <f2>:
90
+   4:	f2af 0107 	subw	r1, pc, #7
91
+   8:	f20f 0305 	addw	r3, pc, #5
92
+   c:	a401      	add	r4, pc, #4	; \(adr r4, 14 <f4>\)
93
+   e:	46c0      	nop			; \(mov r8, r8\)
94
+
95
+00000010 <f3>:
96
+  10:	46c0      	nop			; \(mov r8, r8\)
97
+  12:	46c0      	nop			; \(mov r8, r8\)
98
+
99
+00000014 <f4>:
100
+  14:	e1a00000 	nop			; \(mov r0, r0\)
101
diff --git gas/testsuite/gas/arm/pr25235.s gas/testsuite/gas/arm/pr25235.s
102
new file mode 100644
103
index 00000000000..77637392f1c
104
--- /dev/null
105
+++ gas/testsuite/gas/arm/pr25235.s
106
@@ -0,0 +1,30 @@
107
+    .syntax unified
108
+    .thumb
109
+
110
+    .align 2
111
+    .type f1, %function
112
+    .thumb_func
113
+    f1:
114
+        nop
115
+
116
+    .align 2
117
+    .type f2, %function
118
+    .thumb_func
119
+    f2:
120
+        adr r1, f1
121
+        adr r3, f3
122
+        adr r4, f4
123
+
124
+
125
+    .align 2
126
+    .type f3, %function
127
+    .thumb_func
128
+    f3:
129
+        nop
130
+
131
+    .align 2
132
+    .type f3, %function
133
+    .arm
134
+    f4:
135
+        nop
136
+
137
-- 
138
2.32.0
139
(-)b/devel/binutils/files/patch-0168-687dd74c9ba (+53 lines)
Added Link Here
1
From 687dd74c9bac7b746ea69e4ea070adff05226b13 Mon Sep 17 00:00:00 2001
2
From: Richard Earnshaw <rearnsha@arm.com>
3
Date: Thu, 1 Jul 2021 11:37:13 +0100
4
Subject: [PATCH 168/169] arm: don't treat XScale features as part of the FPU
5
 [PR 28031]
6
7
Although the XScale and its iwMMX extensions are implemented in the
8
Arm co-processor space, they are not considered to be part of the FPU
9
specification.  In particular, they cannot be enabled or disabled via
10
a .fpu directive.  It's therefore incorrect to strip these properties
11
when a new .fpu directive is encountered.
12
13
Note that the legacy Maverick co-processor is considered to be a FPU
14
and it is possible to control this via the .fpu directive.
15
16
include:
17
18
	PR gas/28031
19
	* opcode/arm.h (FPU_ANY): Exclude XScale-related features.
20
---
21
 include/ChangeLog    | 5 +++++
22
 include/opcode/arm.h | 2 +-
23
 2 files changed, 6 insertions(+), 1 deletion(-)
24
25
diff --git include/ChangeLog include/ChangeLog
26
index f692e379026..b4276ec5af0 100644
27
--- include/ChangeLog
28
+++ include/ChangeLog
29
@@ -1,3 +1,8 @@
30
+2021-07-01  Richard Earnshaw  <rearnsha@arm.com>
31
+
32
+	PR gas/28031
33
+	* opcode/arm.h (FPU_ANY): Exclude XScale-related features.
34
+
35
 2021-02-19  Andreas Krebbel  <krebbel@linux.ibm.com>
36
 
37
 	* opcode/s390.h (enum s390_opcode_cpu_val): Add
38
diff --git include/opcode/arm.h include/opcode/arm.h
39
index 03a80712c0a..90c09a70658 100644
40
--- include/opcode/arm.h
41
+++ include/opcode/arm.h
42
@@ -383,7 +383,7 @@
43
 #define ARM_ARCH_NONE	ARM_FEATURE_LOW (0, 0)
44
 #define FPU_NONE	ARM_FEATURE_LOW (0, 0)
45
 #define ARM_ANY		ARM_FEATURE (-1, -1 & ~ (ARM_EXT2_MVE | ARM_EXT2_MVE_FP), 0)	/* Any basic core.  */
46
-#define FPU_ANY		ARM_FEATURE_COPROC (-1) /* Any FPU.  */
47
+#define FPU_ANY		ARM_FEATURE_COPROC (-1 & ~(ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT | ARM_CEXT_IWMMXT2)) /* Any FPU.  */
48
 #define FPU_ANY_HARD	ARM_FEATURE_COPROC (FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
49
 /* Extensions containing some Thumb-2 instructions.  If any is present, Thumb
50
    ISA is Thumb-2.  */
51
-- 
52
2.32.0
53
(-)a/devel/binutils/files/patch-0b398d6.diff (-65 lines)
Removed Link Here
1
commit 0b398d69acde3377dfbbeb8a4cfe87ae8c8562fa
2
Author: Sergei Trofimovich <siarheit@google.com>
3
Date:   Sat Feb 1 23:16:11 2020 +0000
4
5
    binutils: drop redundant 'program_name' definition (-fno-common)
6
    
7
            * coffdump.c (program_name): Drop redundant definition.
8
            * srconv.c (program_name): Likewise
9
            * sysdump.c (program_name): Likewise
10
    
11
    Signed-off-by: Sergei Trofimovich <siarheit@google.com>
12
13
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
14
index a7fd43176b..2caa7e950f 100644
15
--- binutils/ChangeLog
16
+++ binutils/ChangeLog
17
@@ -1,3 +1,9 @@
18
+2020-02-03  Sergei Trofimovich  <siarheit@google.com>
19
+
20
+	* coffdump.c (program_name): Drop redundant definition.
21
+	* srconv.c (program_name): Likewise
22
+	* sysdump.c (program_name): Likewise
23
+
24
 2020-02-02  H.J. Lu  <hongjiu.lu@intel.com>
25
 
26
 	PR gas/25380
27
diff --git a/binutils/coffdump.c b/binutils/coffdump.c
28
index 531a4e46c3..336da57ca2 100644
29
--- binutils/coffdump.c
30
+++ binutils/coffdump.c
31
@@ -456,8 +456,6 @@ coff_dump (struct coff_ofile *ptr)
32
     dump_coff_section (ptr->sections + i);
33
 }
34
 
35
-char * program_name;
36
-
37
 static void
38
 show_usage (FILE *file, int status)
39
 {
40
diff --git a/binutils/srconv.c b/binutils/srconv.c
41
index 5742b16759..f071794f0a 100644
42
--- binutils/srconv.c
43
+++ binutils/srconv.c
44
@@ -1687,8 +1687,6 @@ prescan (struct coff_ofile *otree)
45
     }
46
 }
47
 
48
-char *program_name;
49
-
50
 ATTRIBUTE_NORETURN static void
51
 show_usage (FILE *ffile, int status)
52
 {
53
diff --git a/binutils/sysdump.c b/binutils/sysdump.c
54
index d433e71ed9..7eebbd61d3 100644
55
--- binutils/sysdump.c
56
+++ binutils/sysdump.c
57
@@ -633,8 +633,6 @@ module (void)
58
     }
59
 }
60
 
61
-char *program_name;
62
-
63
 ATTRIBUTE_NORETURN static void
64
 show_usage (FILE *ffile, int status)
65
 {
(-)a/devel/binutils/files/patch-gas-configure.tgt (-12 lines)
Removed Link Here
1
--- gas/configure.tgt.orig	2020-01-07 16:52:58.735417000 +0100
2
+++ gas/configure.tgt	2020-01-07 16:54:02.168703000 +0100
3
@@ -392,7 +392,8 @@
4
 
5
   sparc-*-linux-*)			fmt=elf em=linux ;;
6
   sparc-*-solaris*)			fmt=elf em=solaris ;;
7
-  sparc-*-*bsd*)			fmt=elf em=nbsd ;;
8
+  sparc-*-freebsd*)                     fmt=elf em=freebsd ;;
9
+  sparc-*-netbsd* | sparc-*-openbsd*)   fmt=elf em=nbsd ;;
10
 
11
   spu-*-elf)				fmt=elf ;;
12
 
(-)b/devel/binutils/files/patch-gold_testsuite_Makefile.in (+14 lines)
Added Link Here
1
--- gold/testsuite/Makefile.in.orig	2021-07-02 07:48:07 UTC
2
+++ gold/testsuite/Makefile.in
3
@@ -9585,9 +9585,9 @@ uninstall-am:
4
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v3.o incr_comdat_test_1_tmp.o
5
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
6
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_1.o: exception_test_1.cc gcctestdir/as
7
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -Wa,-madd-bnd-prefix -o $@ $<
8
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
9
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_2.o: exception_test_2.cc gcctestdir/as
10
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -Wa,-madd-bnd-prefix -o $@ $<
11
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
12
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@gnu_property_test.stdout: gnu_property_test
13
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -lhSWn $< >$@
14
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@gnu_property_test: gcctestdir/ld gnu_property_a.o gnu_property_b.o gnu_property_c.o
(-)a/devel/binutils/files/patch-libctf_swap.h (-34 lines)
Removed Link Here
1
--- libctf/swap.h.orig	2019-09-09 13:19:45 UTC
2
+++ libctf/swap.h
3
@@ -28,13 +28,13 @@
4
 #else
5
 
6
 /* Provide our own versions of the byteswap functions.  */
7
-inline uint16_t
8
+static inline uint16_t
9
 bswap_16 (uint16_t v)
10
 {
11
   return ((v >> 8) & 0xff) | ((v & 0xff) << 8);
12
 }
13
 
14
-inline uint32_t
15
+static inline uint32_t
16
 bswap_32 (uint32_t v)
17
 {
18
   return (  ((v & 0xff000000) >> 24)
19
@@ -43,13 +43,13 @@ bswap_32 (uint32_t v)
20
 	  | ((v & 0x000000ff) << 24));
21
 }
22
 
23
-inline uint64_t
24
+static inline uint64_t
25
 bswap_identity_64 (uint64_t v)
26
 {
27
   return v;
28
 }
29
 
30
-inline uint64_t
31
+static inline uint64_t
32
 bswap_64 (uint64_t v)
33
 {
34
   return (  ((v & 0xff00000000000000ULL) >> 56)
(-)b/devel/binutils/files/patch-mips64.diff (-8 / +10 lines)
Lines 20-41 Link Here
20
     # Generic vectors
20
     # Generic vectors
21
     targ_selvecs="${targ_selvecs} mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
21
     targ_selvecs="${targ_selvecs} mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
22
     ;;
22
     ;;
23
--- ld/configure.tgt.orig	2015-07-17 20:52:58.728911150 +0000
23
24
+++ ld/configure.tgt	2015-07-17 21:03:29.559869219 +0000
24
--- ./ld/configure.tgt.orig	2021-01-09 19:47:34.000000000 +0900
25
@@ -491,12 +491,12 @@
25
+++ ./ld/configure.tgt	2021-05-13 16:24:16.129568000 +0900
26
 			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
26
@@ -548,13 +548,13 @@
27
 			targ_extra_libpath=$targ_extra_emuls ;;
27
 			targ_extra_libpath=$targ_extra_emuls
28
 			;;
28
 mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
29
 mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
29
-			targ_emul=elf32ltsmipn32_fbsd
30
-			targ_emul=elf32ltsmipn32_fbsd
30
-			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
31
-			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
31
+			targ_emul=elf64ltsmip_fbsd
32
+			targ_emul=elf64ltsmip_fbsd
32
+			targ_extra_emuls="elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip"
33
+			targ_extra_emuls="elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip"
33
 			targ_extra_libpath=$targ_extra_emuls ;;
34
 			targ_extra_libpath=$targ_extra_emuls
35
 			;;
34
 mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
36
 mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
35
-			targ_emul=elf32btsmipn32_fbsd
37
-			targ_emul=elf32btsmipn32_fbsd
36
-			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
38
-			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
37
+			targ_emul=elf64btsmip_fbsd
39
+			targ_emul=elf64btsmip_fbsd
38
+			targ_extra_emuls="elf32btsmip_fbsd elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64btsmip_fbsd elf64ltsmip_fbsd elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip"
40
+			targ_extra_emuls="elf32btsmip_fbsd elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64btsmip_fbsd elf64ltsmip_fbsd elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip"
39
 			targ_extra_libpath=$targ_extra_emuls ;;
41
 			targ_extra_libpath=$targ_extra_emuls
42
 			;;
40
 mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
43
 mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
41
 			targ_emul=elf32ltsmip_fbsd
(-)b/devel/binutils/files/patch-powerpc64le.patch (-126 lines)
Lines 1-129 Link Here
1
--- bfd/configure.orig	2019-10-12 13:58:20 UTC
2
+++ bfd/configure
3
@@ -14860,6 +14860,7 @@ do
4
     powerpc_elf64_vec)		 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
5
     powerpc_elf64_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
6
     powerpc_elf64_fbsd_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
7
+    powerpc_elf64_fbsd_le_vec)   tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
8
     powerpc_pe_vec)		 tb="$tb pe-ppc.lo peigen.lo $coff" ;;
9
     powerpc_pe_le_vec)		 tb="$tb pe-ppc.lo peigen.lo $coff" ;;
10
     powerpc_pei_vec)		 tb="$tb pei-ppc.lo peigen.lo $coff" ;;
11
--- bfd/configure.ac.orig	2019-09-09 13:19:43 UTC
12
+++ bfd/configure.ac
13
@@ -596,6 +596,7 @@ do
14
     powerpc_elf64_vec)		 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
15
     powerpc_elf64_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
16
     powerpc_elf64_fbsd_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
17
+    powerpc_elf64_fbsd_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
18
     powerpc_pe_vec)		 tb="$tb pe-ppc.lo peigen.lo $coff" ;;
19
     powerpc_pe_le_vec)		 tb="$tb pe-ppc.lo peigen.lo $coff" ;;
20
     powerpc_pei_vec)		 tb="$tb pei-ppc.lo peigen.lo $coff" ;;
21
--- bfd/elf64-ppc.c.orig	2019-10-09 07:16:05 UTC
22
+++ bfd/elf64-ppc.c
23
@@ -16979,7 +16979,9 @@ ppc64_elf_finish_dynamic_sections (bfd *output_bfd,
24
 /* FreeBSD support */
25
 
26
 #undef  TARGET_LITTLE_SYM
27
+#define TARGET_LITTLE_SYM powerpc_elf64_fbsd_le_vec
28
 #undef  TARGET_LITTLE_NAME
29
+#define TARGET_LITTLE_NAME "elf64-powerpcle-freebsd"
30
 
31
 #undef  TARGET_BIG_SYM
32
 #define TARGET_BIG_SYM	powerpc_elf64_fbsd_vec
33
--- bfd/targets.c.orig	2019-09-09 13:19:43 UTC
34
+++ bfd/targets.c
35
@@ -764,6 +764,7 @@ extern const bfd_target powerpc_elf32_vxworks_vec;
36
 extern const bfd_target powerpc_elf64_vec;
37
 extern const bfd_target powerpc_elf64_le_vec;
38
 extern const bfd_target powerpc_elf64_fbsd_vec;
39
+extern const bfd_target powerpc_elf64_fbsd_le_vec;
40
 extern const bfd_target powerpc_pe_vec;
41
 extern const bfd_target powerpc_pe_le_vec;
42
 extern const bfd_target powerpc_pei_vec;
43
@@ -1158,6 +1159,7 @@ static const bfd_target * const _bfd_target_vector[] =
44
 	&powerpc_elf64_vec,
45
 	&powerpc_elf64_le_vec,
46
 	&powerpc_elf64_fbsd_vec,
47
+	&powerpc_elf64_fbsd_le_vec,
48
 #endif
49
 	&powerpc_pe_vec,
50
 	&powerpc_pe_le_vec,
51
--- ld/Makefile.am.orig	2019-09-09 13:19:44 UTC
52
+++ ld/Makefile.am
53
@@ -439,6 +439,7 @@ ALL_64_EMULATION_SOURCES = \
54
 	eelf64btsmip_fbsd.c \
55
 	eelf64hppa.c \
56
 	eelf64lppc.c \
57
+	eelf64lppc_fbsd.c \
58
 	eelf64lriscv.c \
59
 	eelf64lriscv_lp64f.c \
60
 	eelf64lriscv_lp64.c \
61
@@ -924,6 +925,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): 
62
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Pc@am__quote@
63
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Pc@am__quote@
64
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Pc@am__quote@
65
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Pc@am__quote@
66
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Pc@am__quote@
67
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Pc@am__quote@
68
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Pc@am__quote@
69
--- ld/Makefile.in.orig	2019-10-12 13:59:42 UTC
70
+++ ld/Makefile.in
71
@@ -925,6 +925,7 @@ ALL_64_EMULATION_SOURCES = \
72
 	eelf64btsmip_fbsd.c \
73
 	eelf64hppa.c \
74
 	eelf64lppc.c \
75
+	eelf64lppc_fbsd.c \
76
 	eelf64lriscv.c \
77
 	eelf64lriscv_lp64f.c \
78
 	eelf64lriscv_lp64.c \
79
@@ -1365,6 +1366,7 @@ distclean-compile:
80
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Po@am__quote@
81
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Po@am__quote@
82
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Po@am__quote@
83
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Po@am__quote@
84
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Po@am__quote@
85
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Po@am__quote@
86
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Po@am__quote@
87
@@ -2525,6 +2527,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): 
88
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Pc@am__quote@
89
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Pc@am__quote@
90
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Pc@am__quote@
91
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Pc@am__quote@
92
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Pc@am__quote@
93
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Pc@am__quote@
94
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Pc@am__quote@
95
--- ld/emulparams/elf64lppc_fbsd.sh.orig	2020-11-02 22:40:06 UTC
96
+++ ld/emulparams/elf64lppc_fbsd.sh
97
@@ -0,0 +1,6 @@
98
+source_sh ${srcdir}/emulparams/elf64lppc.sh
99
+source_sh ${srcdir}/emulparams/elf_fbsd.sh
100
+
101
+OUTPUT_FORMAT="elf64-powerpcle-freebsd"
102
+DEFAULT_PLT_STATIC_CHAIN=1
103
+
104
--- ld/po/BLD-POTFILES.in.orig	2019-10-12 14:01:44 UTC
105
+++ ld/po/BLD-POTFILES.in
106
@@ -179,6 +179,7 @@ eelf64btsmip.c
107
 eelf64btsmip_fbsd.c
108
 eelf64hppa.c
109
 eelf64lppc.c
110
+eelf64lppc_fbsd.c
111
 eelf64lriscv.c
112
 eelf64lriscv_lp64.c
113
 eelf64lriscv_lp64f.c
114
--- ld/configure.tgt.orig	2020-11-02 23:58:35.109766000 +0100
115
+++ ld/configure.tgt	2020-11-02 23:59:34.659606000 +0100
116
@@ -544,6 +544,10 @@
117
 			tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
118
 			tdir_elf32ppc_fbsd=$tdir_elf32ppc
119
 			;;
120
+powerpc64le-*-freebsd*)
121
+			targ_emul=elf64lppc_fbsd
122
+			targ_extra_emuls="elf64ppc"
123
+			;;
124
 powerpc-*-vxworks*)
125
 			targ_emul=elf32ppcvxworks
126
 			targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
127
--- gas/config/tc-ppc.c.orig	2020-11-03 12:21:04.587127000 +0100
1
--- gas/config/tc-ppc.c.orig	2020-11-03 12:21:04.587127000 +0100
128
+++ gas/config/tc-ppc.c	2020-11-03 12:21:33.039193000 +0100
2
+++ gas/config/tc-ppc.c	2020-11-03 12:21:33.039193000 +0100
129
@@ -1554,7 +1554,9 @@
3
@@ -1554,7 +1554,9 @@
(-)b/devel/binutils/files/patch-s390x.diff (-5 / +5 lines)
Lines 1-9 Link Here
1
--- ./ld/configure.tgt.orig	2019-01-19 16:01:33.000000000 +0000
1
--- ./ld/configure.tgt.orig	2021-05-13 08:26:36.765168000 +0900
2
+++ ./ld/configure.tgt	2019-08-07 20:41:31.800693000 +0000
2
+++ ./ld/configure.tgt	2021-05-13 08:40:35.679397000 +0900
3
@@ -651,6 +651,10 @@ rs6000-*-aix*)		targ_emul=aixrs6
3
@@ -787,6 +787,10 @@
4
 s12z-*-*)		targ_emul=m9s12zelf
5
 			targ_extra_ofiles=ldelfgen.o
4
 			;;
6
 			;;
5
 rl78-*-*)		targ_emul=elf32rl78 ;;
6
 rx-*-*)			targ_emul=elf32rx ;;
7
+s390x-*-freebsd*)	targ_emul=elf64_s390
7
+s390x-*-freebsd*)	targ_emul=elf64_s390
8
+			targ_extra_emuls=elf_s390
8
+			targ_extra_emuls=elf_s390
9
+			targ_extra_libpath=$targ_extra_emuls
9
+			targ_extra_libpath=$targ_extra_emuls
(-)b/devel/binutils/pkg-plist (+7 lines)
Lines 19-29 bin/strip Link Here
19
include/bfd.h
19
include/bfd.h
20
include/bfdlink.h
20
include/bfdlink.h
21
include/bfd_stdint.h
21
include/bfd_stdint.h
22
include/ctf-api.h
23
include/ctf.h
22
include/diagnostics.h
24
include/diagnostics.h
23
include/dis-asm.h
25
include/dis-asm.h
24
%%GOLD%%include/plugin-api.h
26
%%GOLD%%include/plugin-api.h
25
include/symcat.h
27
include/symcat.h
28
%%STATIC%%lib/bfd-plugins/libdep.a
29
%%NO_STATIC%%lib/bfd-plugins/libdep.so
26
lib/libbfd.a
30
lib/libbfd.a
31
lib/libctf-nobfd.a
32
lib/libctf.a
27
lib/libopcodes.a
33
lib/libopcodes.a
28
man/man1/addr2line.1.gz
34
man/man1/addr2line.1.gz
29
man/man1/ar.1.gz
35
man/man1/ar.1.gz
Lines 117-122 man/man1/strip.1.gz Link Here
117
%%NLS%%share/locale/rw/LC_MESSAGES/gprof.mo
123
%%NLS%%share/locale/rw/LC_MESSAGES/gprof.mo
118
%%NLS%%share/locale/sk/LC_MESSAGES/binutils.mo
124
%%NLS%%share/locale/sk/LC_MESSAGES/binutils.mo
119
%%NLS%%share/locale/sr/LC_MESSAGES/bfd.mo
125
%%NLS%%share/locale/sr/LC_MESSAGES/bfd.mo
126
%%NLS%%%%GOLD%%share/locale/sr/LC_MESSAGES/gold.mo
120
%%NLS%%share/locale/sr/LC_MESSAGES/gprof.mo
127
%%NLS%%share/locale/sr/LC_MESSAGES/gprof.mo
121
%%NLS%%share/locale/sr/LC_MESSAGES/binutils.mo
128
%%NLS%%share/locale/sr/LC_MESSAGES/binutils.mo
122
%%NLS%%share/locale/sv/LC_MESSAGES/bfd.mo
129
%%NLS%%share/locale/sv/LC_MESSAGES/bfd.mo
(-)b/devel/binutils/pkg-plist-aarch64 (+1 lines)
Lines 91-96 bin/%%BUTARGET%%-readelf Link Here
91
bin/%%BUTARGET%%-size
91
bin/%%BUTARGET%%-size
92
bin/%%BUTARGET%%-strings
92
bin/%%BUTARGET%%-strings
93
bin/%%BUTARGET%%-strip
93
bin/%%BUTARGET%%-strip
94
lib/bfd-plugins/libdep.a
94
man/man1/%%BUTARGET%%-addr2line.1.gz
95
man/man1/%%BUTARGET%%-addr2line.1.gz
95
man/man1/%%BUTARGET%%-ar.1.gz
96
man/man1/%%BUTARGET%%-ar.1.gz
96
man/man1/%%BUTARGET%%-as.1.gz
97
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-aarch64-none-elf (+1 lines)
Lines 157-162 bin/%%BUTARGET%%-readelf Link Here
157
bin/%%BUTARGET%%-size
157
bin/%%BUTARGET%%-size
158
bin/%%BUTARGET%%-strings
158
bin/%%BUTARGET%%-strings
159
bin/%%BUTARGET%%-strip
159
bin/%%BUTARGET%%-strip
160
lib/bfd-plugins/libdep.a
160
man/man1/%%BUTARGET%%-addr2line.1.gz
161
man/man1/%%BUTARGET%%-addr2line.1.gz
161
man/man1/%%BUTARGET%%-ar.1.gz
162
man/man1/%%BUTARGET%%-ar.1.gz
162
man/man1/%%BUTARGET%%-as.1.gz
163
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-amd64 (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-arm-gnueabi (+1 lines)
Lines 91-96 bin/%%BUTARGET%%-readelf Link Here
91
bin/%%BUTARGET%%-size
91
bin/%%BUTARGET%%-size
92
bin/%%BUTARGET%%-strings
92
bin/%%BUTARGET%%-strings
93
bin/%%BUTARGET%%-strip
93
bin/%%BUTARGET%%-strip
94
lib/bfd-plugins/libdep.a
94
man/man1/%%BUTARGET%%-addr2line.1.gz
95
man/man1/%%BUTARGET%%-addr2line.1.gz
95
man/man1/%%BUTARGET%%-ar.1.gz
96
man/man1/%%BUTARGET%%-ar.1.gz
96
man/man1/%%BUTARGET%%-as.1.gz
97
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-arm-none-eabi (+1 lines)
Lines 47-52 bin/%%BUTARGET%%-readelf Link Here
47
bin/%%BUTARGET%%-size
47
bin/%%BUTARGET%%-size
48
bin/%%BUTARGET%%-strings
48
bin/%%BUTARGET%%-strings
49
bin/%%BUTARGET%%-strip
49
bin/%%BUTARGET%%-strip
50
lib/bfd-plugins/libdep.a
50
man/man1/%%BUTARGET%%-addr2line.1.gz
51
man/man1/%%BUTARGET%%-addr2line.1.gz
51
man/man1/%%BUTARGET%%-ar.1.gz
52
man/man1/%%BUTARGET%%-ar.1.gz
52
man/man1/%%BUTARGET%%-as.1.gz
53
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-avr (+1 lines)
Lines 133-138 bin/avr-readelf Link Here
133
bin/avr-size
133
bin/avr-size
134
bin/avr-strings
134
bin/avr-strings
135
bin/avr-strip
135
bin/avr-strip
136
lib/bfd-plugins/libdep.a
136
man/man1/avr-addr2line.1.gz
137
man/man1/avr-addr2line.1.gz
137
man/man1/avr-ar.1.gz
138
man/man1/avr-ar.1.gz
138
man/man1/avr-as.1.gz
139
man/man1/avr-as.1.gz
(-)b/devel/binutils/pkg-plist-i386 (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-mingw32 (+1 lines)
Lines 18-23 bin/%%BUTARGET%%-strings Link Here
18
bin/%%BUTARGET%%-strip
18
bin/%%BUTARGET%%-strip
19
bin/%%BUTARGET%%-windmc
19
bin/%%BUTARGET%%-windmc
20
bin/%%BUTARGET%%-windres
20
bin/%%BUTARGET%%-windres
21
lib/bfd-plugins/libdep.a
21
man/man1/%%BUTARGET%%-addr2line.1.gz
22
man/man1/%%BUTARGET%%-addr2line.1.gz
22
man/man1/%%BUTARGET%%-ar.1.gz
23
man/man1/%%BUTARGET%%-ar.1.gz
23
man/man1/%%BUTARGET%%-as.1.gz
24
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-mips (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-mips64 (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-powerpc (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-powerpc64 (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-powerpc64le (-22 / +23 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
Lines 65-89 man/man1/%%BUTARGET%%-windres.1.gz Link Here
65
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xu
66
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xu
66
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xw
67
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xw
67
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xwe
68
%%BUTARGET%%/lib/ldscripts/elf64lppc_fbsd.xwe
68
%%BUTARGET%%/lib/ldscripts/elf64ppc.x
69
%%BUTARGET%%/lib/ldscripts/elf64lppc.x
69
%%BUTARGET%%/lib/ldscripts/elf64ppc.xbn
70
%%BUTARGET%%/lib/ldscripts/elf64lppc.xbn
70
%%BUTARGET%%/lib/ldscripts/elf64ppc.xc
71
%%BUTARGET%%/lib/ldscripts/elf64lppc.xc
71
%%BUTARGET%%/lib/ldscripts/elf64ppc.xce
72
%%BUTARGET%%/lib/ldscripts/elf64lppc.xce
72
%%BUTARGET%%/lib/ldscripts/elf64ppc.xd
73
%%BUTARGET%%/lib/ldscripts/elf64lppc.xd
73
%%BUTARGET%%/lib/ldscripts/elf64ppc.xdc
74
%%BUTARGET%%/lib/ldscripts/elf64lppc.xdc
74
%%BUTARGET%%/lib/ldscripts/elf64ppc.xdce
75
%%BUTARGET%%/lib/ldscripts/elf64lppc.xdce
75
%%BUTARGET%%/lib/ldscripts/elf64ppc.xde
76
%%BUTARGET%%/lib/ldscripts/elf64lppc.xde
76
%%BUTARGET%%/lib/ldscripts/elf64ppc.xdw
77
%%BUTARGET%%/lib/ldscripts/elf64lppc.xdw
77
%%BUTARGET%%/lib/ldscripts/elf64ppc.xdwe
78
%%BUTARGET%%/lib/ldscripts/elf64lppc.xdwe
78
%%BUTARGET%%/lib/ldscripts/elf64ppc.xe
79
%%BUTARGET%%/lib/ldscripts/elf64lppc.xe
79
%%BUTARGET%%/lib/ldscripts/elf64ppc.xn
80
%%BUTARGET%%/lib/ldscripts/elf64lppc.xn
80
%%BUTARGET%%/lib/ldscripts/elf64ppc.xr
81
%%BUTARGET%%/lib/ldscripts/elf64lppc.xr
81
%%BUTARGET%%/lib/ldscripts/elf64ppc.xs
82
%%BUTARGET%%/lib/ldscripts/elf64lppc.xs
82
%%BUTARGET%%/lib/ldscripts/elf64ppc.xsc
83
%%BUTARGET%%/lib/ldscripts/elf64lppc.xsc
83
%%BUTARGET%%/lib/ldscripts/elf64ppc.xsce
84
%%BUTARGET%%/lib/ldscripts/elf64lppc.xsce
84
%%BUTARGET%%/lib/ldscripts/elf64ppc.xse
85
%%BUTARGET%%/lib/ldscripts/elf64lppc.xse
85
%%BUTARGET%%/lib/ldscripts/elf64ppc.xsw
86
%%BUTARGET%%/lib/ldscripts/elf64lppc.xsw
86
%%BUTARGET%%/lib/ldscripts/elf64ppc.xswe
87
%%BUTARGET%%/lib/ldscripts/elf64lppc.xswe
87
%%BUTARGET%%/lib/ldscripts/elf64ppc.xu
88
%%BUTARGET%%/lib/ldscripts/elf64lppc.xu
88
%%BUTARGET%%/lib/ldscripts/elf64ppc.xw
89
%%BUTARGET%%/lib/ldscripts/elf64lppc.xw
89
%%BUTARGET%%/lib/ldscripts/elf64ppc.xwe
90
%%BUTARGET%%/lib/ldscripts/elf64lppc.xwe
(-)b/devel/binutils/pkg-plist-riscv32-unknown-elf (+79 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
Lines 43-55 man/man1/%%BUTARGET%%-windres.1.gz Link Here
43
%%BUTARGET%%/bin/readelf
44
%%BUTARGET%%/bin/readelf
44
%%BUTARGET%%/bin/size
45
%%BUTARGET%%/bin/size
45
%%BUTARGET%%/bin/strip
46
%%BUTARGET%%/bin/strip
47
%%BUTARGET%%/lib/ldscripts/elf32briscv.x
48
%%BUTARGET%%/lib/ldscripts/elf32briscv.xbn
49
%%BUTARGET%%/lib/ldscripts/elf32briscv.xc
50
%%BUTARGET%%/lib/ldscripts/elf32briscv.xce
51
%%BUTARGET%%/lib/ldscripts/elf32briscv.xd
52
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdc
53
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdce
54
%%BUTARGET%%/lib/ldscripts/elf32briscv.xde
55
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdw
56
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdwe
57
%%BUTARGET%%/lib/ldscripts/elf32briscv.xe
58
%%BUTARGET%%/lib/ldscripts/elf32briscv.xn
59
%%BUTARGET%%/lib/ldscripts/elf32briscv.xr
60
%%BUTARGET%%/lib/ldscripts/elf32briscv.xs
61
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsc
62
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsce
63
%%BUTARGET%%/lib/ldscripts/elf32briscv.xse
64
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsw
65
%%BUTARGET%%/lib/ldscripts/elf32briscv.xswe
66
%%BUTARGET%%/lib/ldscripts/elf32briscv.xu
67
%%BUTARGET%%/lib/ldscripts/elf32briscv.xw
68
%%BUTARGET%%/lib/ldscripts/elf32briscv.xwe
46
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
69
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
47
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
70
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
48
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
71
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
49
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xce
72
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xce
73
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xd
74
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdc
75
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdce
76
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xde
77
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdw
78
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdwe
50
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xe
79
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xe
51
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xn
80
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xn
52
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xr
81
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xr
82
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xs
83
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsc
84
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsce
85
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xse
86
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsw
87
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xswe
53
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
88
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
54
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
89
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
55
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
90
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
91
%%BUTARGET%%/lib/ldscripts/elf64briscv.x
92
%%BUTARGET%%/lib/ldscripts/elf64briscv.xbn
93
%%BUTARGET%%/lib/ldscripts/elf64briscv.xc
94
%%BUTARGET%%/lib/ldscripts/elf64briscv.xce
95
%%BUTARGET%%/lib/ldscripts/elf64briscv.xd
96
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdc
97
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdce
98
%%BUTARGET%%/lib/ldscripts/elf64briscv.xde
99
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdw
100
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdwe
101
%%BUTARGET%%/lib/ldscripts/elf64briscv.xe
102
%%BUTARGET%%/lib/ldscripts/elf64briscv.xn
103
%%BUTARGET%%/lib/ldscripts/elf64briscv.xr
104
%%BUTARGET%%/lib/ldscripts/elf64briscv.xs
105
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsc
106
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsce
107
%%BUTARGET%%/lib/ldscripts/elf64briscv.xse
108
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsw
109
%%BUTARGET%%/lib/ldscripts/elf64briscv.xswe
110
%%BUTARGET%%/lib/ldscripts/elf64briscv.xu
111
%%BUTARGET%%/lib/ldscripts/elf64briscv.xw
112
%%BUTARGET%%/lib/ldscripts/elf64briscv.xwe
113
%%BUTARGET%%/lib/ldscripts/elf64lriscv.x
114
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xbn
115
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xc
116
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xce
117
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xd
118
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdc
119
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdce
120
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xde
121
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdw
122
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdwe
123
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xe
124
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xn
125
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xr
126
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xs
127
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsc
128
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsce
129
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xse
130
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsw
131
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xswe
132
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xu
133
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xw
134
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xwe
(-)b/devel/binutils/pkg-plist-riscv64 (+45 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
Lines 43-48 man/man1/%%BUTARGET%%-windres.1.gz Link Here
43
%%BUTARGET%%/bin/readelf
44
%%BUTARGET%%/bin/readelf
44
%%BUTARGET%%/bin/size
45
%%BUTARGET%%/bin/size
45
%%BUTARGET%%/bin/strip
46
%%BUTARGET%%/bin/strip
47
%%BUTARGET%%/lib/ldscripts/elf32briscv.x
48
%%BUTARGET%%/lib/ldscripts/elf32briscv.xbn
49
%%BUTARGET%%/lib/ldscripts/elf32briscv.xc
50
%%BUTARGET%%/lib/ldscripts/elf32briscv.xce
51
%%BUTARGET%%/lib/ldscripts/elf32briscv.xd
52
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdc
53
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdce
54
%%BUTARGET%%/lib/ldscripts/elf32briscv.xde
55
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdw
56
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdwe
57
%%BUTARGET%%/lib/ldscripts/elf32briscv.xe
58
%%BUTARGET%%/lib/ldscripts/elf32briscv.xn
59
%%BUTARGET%%/lib/ldscripts/elf32briscv.xr
60
%%BUTARGET%%/lib/ldscripts/elf32briscv.xs
61
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsc
62
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsce
63
%%BUTARGET%%/lib/ldscripts/elf32briscv.xse
64
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsw
65
%%BUTARGET%%/lib/ldscripts/elf32briscv.xswe
66
%%BUTARGET%%/lib/ldscripts/elf32briscv.xu
67
%%BUTARGET%%/lib/ldscripts/elf32briscv.xw
68
%%BUTARGET%%/lib/ldscripts/elf32briscv.xwe
46
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
69
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
47
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
70
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
48
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
71
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
Lines 65-70 man/man1/%%BUTARGET%%-windres.1.gz Link Here
65
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
88
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
66
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
89
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
67
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
90
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
91
%%BUTARGET%%/lib/ldscripts/elf64briscv.x
92
%%BUTARGET%%/lib/ldscripts/elf64briscv.xbn
93
%%BUTARGET%%/lib/ldscripts/elf64briscv.xc
94
%%BUTARGET%%/lib/ldscripts/elf64briscv.xce
95
%%BUTARGET%%/lib/ldscripts/elf64briscv.xd
96
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdc
97
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdce
98
%%BUTARGET%%/lib/ldscripts/elf64briscv.xde
99
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdw
100
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdwe
101
%%BUTARGET%%/lib/ldscripts/elf64briscv.xe
102
%%BUTARGET%%/lib/ldscripts/elf64briscv.xn
103
%%BUTARGET%%/lib/ldscripts/elf64briscv.xr
104
%%BUTARGET%%/lib/ldscripts/elf64briscv.xs
105
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsc
106
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsce
107
%%BUTARGET%%/lib/ldscripts/elf64briscv.xse
108
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsw
109
%%BUTARGET%%/lib/ldscripts/elf64briscv.xswe
110
%%BUTARGET%%/lib/ldscripts/elf64briscv.xu
111
%%BUTARGET%%/lib/ldscripts/elf64briscv.xw
112
%%BUTARGET%%/lib/ldscripts/elf64briscv.xwe
68
%%BUTARGET%%/lib/ldscripts/elf64lriscv.x
113
%%BUTARGET%%/lib/ldscripts/elf64lriscv.x
69
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xbn
114
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xbn
70
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xc
115
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xc
(-)b/devel/binutils/pkg-plist-riscv64-none-elf (-12 / +81 lines)
Lines 9-34 Link Here
9
%%BUTARGET%%/bin/readelf
9
%%BUTARGET%%/bin/readelf
10
%%BUTARGET%%/bin/size
10
%%BUTARGET%%/bin/size
11
%%BUTARGET%%/bin/strip
11
%%BUTARGET%%/bin/strip
12
%%BUTARGET%%/lib/ldscripts/elf32briscv.x
13
%%BUTARGET%%/lib/ldscripts/elf32briscv.xbn
14
%%BUTARGET%%/lib/ldscripts/elf32briscv.xc
15
%%BUTARGET%%/lib/ldscripts/elf32briscv.xce
16
%%BUTARGET%%/lib/ldscripts/elf32briscv.xd
17
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdc
18
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdce
19
%%BUTARGET%%/lib/ldscripts/elf32briscv.xde
20
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdw
21
%%BUTARGET%%/lib/ldscripts/elf32briscv.xdwe
22
%%BUTARGET%%/lib/ldscripts/elf32briscv.xe
23
%%BUTARGET%%/lib/ldscripts/elf32briscv.xn
24
%%BUTARGET%%/lib/ldscripts/elf32briscv.xr
25
%%BUTARGET%%/lib/ldscripts/elf32briscv.xs
26
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsc
27
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsce
28
%%BUTARGET%%/lib/ldscripts/elf32briscv.xse
29
%%BUTARGET%%/lib/ldscripts/elf32briscv.xsw
30
%%BUTARGET%%/lib/ldscripts/elf32briscv.xswe
31
%%BUTARGET%%/lib/ldscripts/elf32briscv.xu
32
%%BUTARGET%%/lib/ldscripts/elf32briscv.xw
33
%%BUTARGET%%/lib/ldscripts/elf32briscv.xwe
34
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
35
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
36
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
37
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xce
38
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xd
39
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdc
40
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdce
41
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xde
42
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdw
43
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xdwe
12
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xe
44
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xe
13
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xr
45
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xn
14
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xce
15
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xu
16
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xr
46
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xr
17
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xe
47
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xs
18
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xce
48
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsc
49
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsce
50
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xse
51
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xsw
52
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xswe
19
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
53
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xu
20
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xbn
21
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
54
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xw
22
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
55
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xwe
23
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xc
56
%%BUTARGET%%/lib/ldscripts/elf64briscv.x
24
%%BUTARGET%%/lib/ldscripts/elf32lriscv.x
57
%%BUTARGET%%/lib/ldscripts/elf64briscv.xbn
25
%%BUTARGET%%/lib/ldscripts/elf32lriscv.xn
58
%%BUTARGET%%/lib/ldscripts/elf64briscv.xc
26
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xwe
59
%%BUTARGET%%/lib/ldscripts/elf64briscv.xce
60
%%BUTARGET%%/lib/ldscripts/elf64briscv.xd
61
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdc
62
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdce
63
%%BUTARGET%%/lib/ldscripts/elf64briscv.xde
64
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdw
65
%%BUTARGET%%/lib/ldscripts/elf64briscv.xdwe
66
%%BUTARGET%%/lib/ldscripts/elf64briscv.xe
67
%%BUTARGET%%/lib/ldscripts/elf64briscv.xn
68
%%BUTARGET%%/lib/ldscripts/elf64briscv.xr
69
%%BUTARGET%%/lib/ldscripts/elf64briscv.xs
70
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsc
71
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsce
72
%%BUTARGET%%/lib/ldscripts/elf64briscv.xse
73
%%BUTARGET%%/lib/ldscripts/elf64briscv.xsw
74
%%BUTARGET%%/lib/ldscripts/elf64briscv.xswe
75
%%BUTARGET%%/lib/ldscripts/elf64briscv.xu
76
%%BUTARGET%%/lib/ldscripts/elf64briscv.xw
77
%%BUTARGET%%/lib/ldscripts/elf64briscv.xwe
78
%%BUTARGET%%/lib/ldscripts/elf64lriscv.x
27
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xbn
79
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xbn
28
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xc
80
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xc
29
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xw
81
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xce
82
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xd
83
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdc
84
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdce
85
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xde
86
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdw
87
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xdwe
88
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xe
30
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xn
89
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xn
31
%%BUTARGET%%/lib/ldscripts/elf64lriscv.x
90
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xr
91
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xs
92
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsc
93
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsce
94
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xse
95
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xsw
96
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xswe
97
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xu
98
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xw
99
%%BUTARGET%%/lib/ldscripts/elf64lriscv.xwe
32
bin/%%BUTARGET%%-addr2line
100
bin/%%BUTARGET%%-addr2line
33
bin/%%BUTARGET%%-ar
101
bin/%%BUTARGET%%-ar
34
bin/%%BUTARGET%%-as
102
bin/%%BUTARGET%%-as
Lines 45-50 bin/%%BUTARGET%%-readelf Link Here
45
bin/%%BUTARGET%%-size
113
bin/%%BUTARGET%%-size
46
bin/%%BUTARGET%%-strings
114
bin/%%BUTARGET%%-strings
47
bin/%%BUTARGET%%-strip
115
bin/%%BUTARGET%%-strip
116
lib/bfd-plugins/libdep.a
48
man/man1/%%BUTARGET%%-addr2line.1.gz
117
man/man1/%%BUTARGET%%-addr2line.1.gz
49
man/man1/%%BUTARGET%%-ar.1.gz
118
man/man1/%%BUTARGET%%-ar.1.gz
50
man/man1/%%BUTARGET%%-as.1.gz
119
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-s390x (+1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
(-)b/devel/binutils/pkg-plist-sparc64 (-1 / +1 lines)
Lines 14-19 bin/%%BUTARGET%%-readelf Link Here
14
bin/%%BUTARGET%%-size
14
bin/%%BUTARGET%%-size
15
bin/%%BUTARGET%%-strings
15
bin/%%BUTARGET%%-strings
16
bin/%%BUTARGET%%-strip
16
bin/%%BUTARGET%%-strip
17
lib/bfd-plugins/libdep.a
17
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-addr2line.1.gz
18
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-ar.1.gz
19
man/man1/%%BUTARGET%%-as.1.gz
20
man/man1/%%BUTARGET%%-as.1.gz
20
- 

Return to bug 251385