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