From 30af3f061ced93bd545e26925617f67e0d47cd5b Mon Sep 17 00:00:00 2001 From: Yasuhiro Kimura 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 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" +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 ++ ++ 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 + + 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 +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 ++ ++ PR 27382 ++ * objcopy.c (copy_file): Use bfd_stat. ++ + 2021-02-06 Nick Clifton + + 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 +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 ++ ++ * 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 + + 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: ++ ++.* : ++.*: 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 ++ ++ * opcode/s390.h (enum s390_opcode_cpu_val): Add ++ S390_OPCODE_ARCH14. ++ + 2021-02-06 Nick Clifton + + 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 ++ ++ * s390-mkopc.c (main): Accept arch14 as cpu string. ++ * s390-opc.txt: Add new arch14 instructions. ++ + 2021-02-06 Nick Clifton + + 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 +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 ++ ++ * 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 + + 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 +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 ++ ++ Backport from mainline ++ 2021-02-03 Alan Modra ++ 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 + + * 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 +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 + + Backport from mainline ++ 2021-02-24 Alan Modra ++ PR 27456 ++ * rename.c: Tidy throughout. ++ (smart_rename): Always copy. Remove windows specific code. ++ + 2021-02-03 Alan Modra + 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 +-#else /* ! HAVE_GOOD_UTIME_H */ +-#ifdef HAVE_UTIMES ++#elif defined HAVE_UTIMES + #include +-#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 +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 + + Backport from mainline ++ 2021-02-24 Alan Modra ++ Siddhesh Poyarekar ++ 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 + 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 +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 + + Backport from mainline ++ 2021-02-25 Alan Modra ++ PR 27456 ++ * rename.c (simple_copy): Mark target_stat ATTRIBUTE_UNUSED. ++ + 2021-02-24 Alan Modra + Siddhesh Poyarekar + 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 +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 ++ ++ Apply from mainline ++ 2021-02-25 Alan Modra ++ 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 + + (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 +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 ++ ++ * 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 + + 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 ++ ++ * 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 + + 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 +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 + + 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 ++ ++ 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 + + * 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" +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 ++ ++ PR ld/27587 ++ * dwarf2.c (read_attribute_value): Check version >= 3 for ++ DW_FORM_ref_addr. ++ + 2021-03-02 Alan Modra + + * 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 ++ ++ 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 + + * 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 +zcmVexM)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=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&?y6huP8(;vCs0AHI0h6zf|3!zp`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}*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#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*zcFQJ;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@N+yR~QT8c3LI;kU0Tm@FdefuKTsh(} +zs>sAQl>Frk5QP|d{A--t_rrqh;I~SA6_tjj1j^DNSlUAZkyL8KCI1Tq{| +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 +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() checks still work correctly. + +bfd/ChangeLog: + +2021-04-01 Tamar Christina + + PR ld/26659 + * cofflink.c (_bfd_coff_generic_relocate_section): Ignore overflow. + +ld/ChangeLog: + +2021-04-01 Tamar Christina + + 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 ++ ++ Backported from mainline. ++ 2021-04-01 Tamar Christina ++ ++ PR ld/26659 ++ * cofflink.c (_bfd_coff_generic_relocate_section): Ignore overflow. ++ + 2021-03-22 H.J. Lu + + 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 ++ ++ Backported from mainline ++ 2021-04-01 Tamar Christina ++ ++ 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 + + 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 : ++ 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 ++ 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 ++ 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 +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 + + * 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 ++ ++ Backported from mainline. ++ 021-04-09 Tejas Belagod ++ ++ * aarch64-tbl.h (struct aarch64_opcode aarch64_opcode_table): Reclassify ++ LD64/ST64 instructions to lse_atomic instead of ldstexcl. ++ + 2021-02-19 Andreas Krebbel + + * 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 +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 + + * 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 ++ ++ Backported from mainline. ++ 2021-04-09 Tejas Belagod ++ ++ * 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 + + * 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 +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 ++ ++ 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 + + 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 +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 ++ ++ * elf.c (special_sections_p): Add .persistent.bss. ++ + 2021-04-01 Tamar Christina + + 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 ++ ++ * 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 + + 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 +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 ++ ++ PR 27755 ++ * elf32-ppc.c (ppc_elf_inline_plt): Do increment rel in loop. ++ + 2021-04-23 Eric Botcazou + + * 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 +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 ++ ++ * 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 + + * 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 ++ ++ * 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 + + 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 +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 + + 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 : ++ 0: 46c0 nop ; \(mov r8, r8\) ++ 2: 46c0 nop ; \(mov r8, r8\) ++ ++00000004 : ++ 4: f2af 0107 subw r1, pc, #7 ++ 8: f20f 0305 addw r3, pc, #5 ++ c: a401 add r4, pc, #4 ; \(adr r4, 14 \) ++ e: 46c0 nop ; \(mov r8, r8\) ++ ++00000010 : ++ 10: 46c0 nop ; \(mov r8, r8\) ++ 12: 46c0 nop ; \(mov r8, r8\) ++ ++00000014 : ++ 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 +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 ++ ++ PR gas/28031 ++ * opcode/arm.h (FPU_ANY): Exclude XScale-related features. ++ + 2021-02-19 Andreas Krebbel + + * 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 -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 - -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 -+ -+ * coffdump.c (program_name): Drop redundant definition. -+ * srconv.c (program_name): Likewise -+ * sysdump.c (program_name): Likewise -+ - 2020-02-02 H.J. Lu - - 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