From 90f5896dacd7e6740f1128f12ef637f4c7634af7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 19 Jul 2021 17:07:20 +0100 Subject: [PATCH] Rebase to GNU Binutils 2.37. - Retire: binutils-2.36-branch-updates.patch - Retire: binutils-CVE-2021-20197.patch - Retire: binutils-CVE-2021-3530.patch - Retire: binutils-plugin-file-descriptors.patch - Retire: binutils-ppc-weak-undefined-plt-relocs.patch - Retire: binutils-ppc64le-note-merge.patch - Retire: binutils-s390-arch14-insns.patch --- .gitignore | 1 + binutils-2.36-branch-updates.patch | 158 ---- binutils-CVE-2021-20197.patch | 752 ------------------- binutils-CVE-2021-3530.patch | 69 -- binutils-export-demangle.h.patch | 10 +- binutils-filename-in-error-messages.patch | 70 +- binutils-plugin-file-descriptors.patch | 40 - binutils-ppc-weak-undefined-plt-relocs.patch | 36 - binutils-ppc64le-note-merge.patch | 42 -- binutils-s390-arch14-insns.patch | 109 --- binutils-testsuite-fixes.patch | 383 +++++----- binutils.spec | 56 +- sources | 3 +- 13 files changed, 245 insertions(+), 1484 deletions(-) delete mode 100644 binutils-2.36-branch-updates.patch delete mode 100644 binutils-CVE-2021-20197.patch delete mode 100644 binutils-CVE-2021-3530.patch delete mode 100644 binutils-plugin-file-descriptors.patch delete mode 100644 binutils-ppc-weak-undefined-plt-relocs.patch delete mode 100644 binutils-ppc64le-note-merge.patch delete mode 100644 binutils-s390-arch14-insns.patch diff --git a/.gitignore b/.gitignore index c96d6c5..771f865 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ stamp-* /binutils-2.35.tar.xz /binutils-2.35.1.tar.xz /binutils-2.36.1.tar.xz +/binutils-2.37.tar.xz diff --git a/binutils-2.36-branch-updates.patch b/binutils-2.36-branch-updates.patch deleted file mode 100644 index ab77fe5..0000000 --- a/binutils-2.36-branch-updates.patch +++ /dev/null @@ -1,158 +0,0 @@ -diff -rup binutils.orig/binutils/objcopy.c binutils-2.36.1/binutils/objcopy.c ---- binutils.orig/binutils/objcopy.c 2021-02-11 10:53:45.582148696 +0000 -+++ binutils-2.36.1/binutils/objcopy.c 2021-02-11 10:54:25.226852733 +0000 -@@ -3769,7 +3769,7 @@ copy_file (const char *input_filename, c - /* 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; -diff -rup binutils.orig/ld/testsuite/ld-i386/i386.exp binutils-2.36.1/ld/testsuite/ld-i386/i386.exp ---- binutils.orig/ld/testsuite/ld-i386/i386.exp 2021-02-11 10:53:45.739147527 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-i386/i386.exp 2021-02-11 10:55:36.505320591 +0000 -@@ -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 -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp ---- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-11 10:53:45.702147802 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-11 10:56:09.481074386 +0000 -@@ -1583,69 +1583,6 @@ if { [isnative] && [check_compiler_avail - "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" \ - "-Wa,-mx86-used-note=yes" \ diff --git a/binutils-CVE-2021-20197.patch b/binutils-CVE-2021-20197.patch deleted file mode 100644 index d6ec23a..0000000 --- a/binutils-CVE-2021-20197.patch +++ /dev/null @@ -1,752 +0,0 @@ -diff -rup binutils.orig/binutils/ar.c binutils-2.36.1/binutils/ar.c ---- binutils.orig/binutils/ar.c 2021-02-19 16:46:54.037875215 +0000 -+++ binutils-2.36.1/binutils/ar.c 2021-02-19 16:54:24.412453329 +0000 -@@ -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) -@@ -1308,7 +1306,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 -rup binutils.orig/binutils/arsup.c binutils-2.36.1/binutils/arsup.c ---- binutils.orig/binutils/arsup.c 2021-02-19 16:46:54.043875196 +0000 -+++ binutils-2.36.1/binutils/arsup.c 2021-02-19 16:53:30.988621989 +0000 -@@ -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; -- -- /* 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) -+ real_name = xstrdup (name); -+ temp_name = make_tempname (real_name, &real_ofd); -+ -+ 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,31 @@ 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, 0); -- obfd = 0; -- free (ofilename); -+ 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 = NULL; -+ free (temp_name); -+ free (real_name); -+ temp_name = real_name = NULL; - } - } - -diff -rup binutils.orig/binutils/bucomm.c binutils-2.36.1/binutils/bucomm.c ---- binutils.orig/binutils/bucomm.c 2021-02-19 16:46:54.052875168 +0000 -+++ binutils-2.36.1/binutils/bucomm.c 2021-02-19 16:56:01.837145730 +0000 -@@ -623,6 +623,21 @@ get_file_size (const char * file_name) - else if (statbuf.st_size < 0) - non_fatal (_("Warning: '%s' has negative size, probably it is too large"), - file_name); -+#if defined (_WIN32) && !defined (__CYGWIN__) -+ else if (statbuf.st_size == 0) -+ { -+ /* MS-Windows 'stat' reports the null device as a regular file; -+ fix that. */ -+ int fd = open (file_name, O_RDONLY | O_BINARY); -+ if (isatty (fd)) -+ { -+ close (fd); -+ non_fatal (_("Warning: '%s' is not an ordinary file"), -+ /* libtool wants to see /dev/null in the output. */ -+ strcasecmp (file_name, "nul") ? file_name : "/dev/null"); -+ } -+ } -+#endif - else - return statbuf.st_size; - -diff -rup binutils.orig/binutils/bucomm.h binutils-2.36.1/binutils/bucomm.h ---- binutils.orig/binutils/bucomm.h 2021-02-19 16:46:54.043875196 +0000 -+++ binutils-2.36.1/binutils/bucomm.h 2021-02-19 16:55:22.653269446 +0000 -@@ -71,7 +71,7 @@ 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 -rup binutils.orig/binutils/objcopy.c binutils-2.36.1/binutils/objcopy.c ---- binutils.orig/binutils/objcopy.c 2021-02-19 16:46:54.052875168 +0000 -+++ binutils-2.36.1/binutils/objcopy.c 2021-02-19 16:57:30.156866883 +0000 -@@ -20,7 +20,6 @@ - - #include "sysdep.h" - #include "bfd.h" --#include "libbfd.h" - #include "progress.h" - #include "getopt.h" - #include "libiberty.h" -@@ -2798,8 +2797,7 @@ copy_object (bfd *ibfd, bfd *obfd, const - pe->timestamp = pe_data (ibfd)->coff.timestamp; - } - -- if (isympp) -- free (isympp); -+ free (isympp); - - if (osympp != isympp) - free (osympp); -@@ -4617,8 +4615,7 @@ mark_symbols_used_in_relocations (bfd *i - (*relpp[i]->sym_ptr_ptr)->flags |= BSF_KEEP; - } - -- if (relpp != NULL) -- free (relpp); -+ free (relpp); - } - - /* Write out debugging information. */ -@@ -4866,12 +4863,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; - } -@@ -5936,11 +5931,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); -@@ -5987,26 +5980,13 @@ copy_main (int argc, char *argv[]) - } - } - -- if (strip_specific_buffer) -- free (strip_specific_buffer); -- -- if (strip_unneeded_buffer) -- free (strip_unneeded_buffer); -- -- if (keep_specific_buffer) -- free (keep_specific_buffer); -- -- if (localize_specific_buffer) -- free (localize_specific_buffer); -- -- if (globalize_specific_buffer) -- free (globalize_specific_buffer); -- -- if (keepglobal_specific_buffer) -- free (keepglobal_specific_buffer); -- -- if (weaken_specific_buffer) -- free (weaken_specific_buffer); -+ free (strip_specific_buffer); -+ free (strip_unneeded_buffer); -+ free (keep_specific_buffer); -+ free (localize_specific_buffer); -+ free (globalize_specific_buffer); -+ free (keepglobal_specific_buffer); -+ free (weaken_specific_buffer); - - return 0; - } -diff -rup binutils.orig/binutils/rename.c binutils-2.36.1/binutils/rename.c ---- binutils.orig/binutils/rename.c 2021-02-19 16:46:54.052875168 +0000 -+++ binutils-2.36.1/binutils/rename.c 2021-02-19 16:58:27.771684984 +0000 -@@ -122,26 +122,19 @@ set_times (const char *destination, cons - 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; - 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 -@@ -158,38 +151,10 @@ smart_rename (const char *from, const ch - 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 ch - 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__ */ -diff -rup binutils.orig/binutils/ar.c binutils-2.36.1/binutils/ar.c ---- binutils.orig/binutils/ar.c 2021-03-11 12:57:40.206766885 +0000 -+++ binutils-2.36.1/binutils/ar.c 2021-03-11 12:59:42.874957119 +0000 -@@ -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 -rup binutils.orig/binutils/arsup.c binutils-2.36.1/binutils/arsup.c ---- binutils.orig/binutils/arsup.c 2021-03-11 12:57:40.190766990 +0000 -+++ binutils-2.36.1/binutils/arsup.c 2021-03-11 13:00:35.897607109 +0000 -@@ -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,11 +364,10 @@ ar_save (void) - } - } - -- smart_rename (temp_name, real_name, NULL); -+ smart_rename (temp_name, real_name, temp_fd, NULL, FALSE); - obfd = NULL; - free (temp_name); - free (real_name); -- temp_name = real_name = NULL; - } - } - -diff -rup binutils.orig/binutils/bucomm.h binutils-2.36.1/binutils/bucomm.h ---- binutils.orig/binutils/bucomm.h 2021-03-11 12:57:40.205766891 +0000 -+++ binutils-2.36.1/binutils/bucomm.h 2021-03-11 12:59:03.082219804 +0000 -@@ -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. */ - void *xmalloc (size_t); -diff -rup binutils.orig/binutils/objcopy.c binutils-2.36.1/binutils/objcopy.c ---- binutils.orig/binutils/objcopy.c 2021-03-11 12:57:40.196766951 +0000 -+++ binutils-2.36.1/binutils/objcopy.c 2021-03-11 13:02:43.321765939 +0000 -@@ -4822,6 +4822,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) - { -@@ -4831,7 +4832,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; - -@@ -4849,14 +4854,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); - } -@@ -5063,7 +5072,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; - -@@ -5901,27 +5912,38 @@ 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; - - if (tmpname == NULL) -- fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), -- input_filename, strerror (errno)); -+ { -+ fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), -+ input_filename, strerror (errno)); -+ } - - copy_file (input_filename, tmpname, tmpfd, &statbuf, input_target, - output_target, input_arch); - 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 -rup binutils.orig/binutils/rename.c binutils-2.36.1/binutils/rename.c ---- binutils.orig/binutils/rename.c 2021-03-11 12:57:40.206766885 +0000 -+++ binutils-2.36.1/binutils/rename.c 2021-03-11 12:58:47.306323943 +0000 -@@ -24,36 +24,29 @@ - - #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 - --/* 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 ATTRIBUTE_UNUSED) - { -- 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; -@@ -61,6 +54,7 @@ simple_copy (const char *from, const cha - errno = saved; - return -1; - } -+ - while ((nread = read (fromfd, buf, sizeof buf)) > 0) - { - if (write (tofd, buf, nread) != nread) -@@ -72,7 +66,16 @@ simple_copy (const char *from, const cha - 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) -@@ -82,7 +85,6 @@ simple_copy (const char *from, const cha - } - return 0; - } --#endif /* __CYGWIN32__ or not _WIN32 */ - - /* Set the times of the file DESTINATION to be the same as those in - STATBUF. */ -@@ -91,87 +93,52 @@ void - set_times (const char *destination, const struct stat *statbuf) - { - int result; -- -- { - #ifdef HAVE_GOOD_UTIME_H -- struct utimbuf tb; -+ 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 */ -- } -+ 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) -+smart_rename (const char *from, const char *to, int fromfd, -+ struct stat *target_stat, bfd_boolean preserve_dates) - { -- int ret = 0; -- struct stat to_stat; -- bfd_boolean exists; -+ int ret; - -- 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); -- -- ret = rename (from, to); -+ ret = simple_copy (fromfd, to, target_stat); - 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)); -- -- if (target_stat != NULL) -- set_times (to, target_stat); -- unlink (from); -- } --#endif /* _WIN32 && !__CYGWIN32__ */ -+ non_fatal (_("unable to copy file '%s'; reason: %s"), -+ to, strerror (errno)); -+ -+ if (preserve_dates) -+ set_times (to, target_stat); -+ unlink (from); - - return ret; - } diff --git a/binutils-CVE-2021-3530.patch b/binutils-CVE-2021-3530.patch deleted file mode 100644 index 1afe989..0000000 --- a/binutils-CVE-2021-3530.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- binutils.orig/libiberty/rust-demangle.c 2021-05-07 17:13:43.762229783 +0100 -+++ binutils-2.36.1/libiberty/rust-demangle.c 2021-05-07 17:14:39.805820593 +0100 -@@ -74,6 +74,12 @@ struct rust_demangler - /* Rust mangling version, with legacy mangling being -1. */ - int version; - -+ /* Recursion depth. */ -+ uint recursion; -+ /* Maximum number of times demangle_path may be called recursively. */ -+#define RUST_MAX_RECURSION_COUNT 1024 -+#define RUST_NO_RECURSION_LIMIT ((uint) -1) -+ - uint64_t bound_lifetime_depth; - }; - -@@ -671,6 +677,15 @@ demangle_path (struct rust_demangler *rd - if (rdm->errored) - return; - -+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT) -+ { -+ ++ rdm->recursion; -+ if (rdm->recursion > RUST_MAX_RECURSION_COUNT) -+ /* FIXME: There ought to be a way to report -+ that the recursion limit has been reached. */ -+ goto fail_return; -+ } -+ - switch (tag = next (rdm)) - { - case 'C': -@@ -688,10 +703,7 @@ demangle_path (struct rust_demangler *rd - case 'N': - ns = next (rdm); - if (!ISLOWER (ns) && !ISUPPER (ns)) -- { -- rdm->errored = 1; -- return; -- } -+ goto fail_return; - - demangle_path (rdm, in_value); - -@@ -776,9 +788,15 @@ demangle_path (struct rust_demangler *rd - } - break; - default: -- rdm->errored = 1; -- return; -+ goto fail_return; - } -+ goto pass_return; -+ -+ fail_return: -+ rdm->errored = 1; -+ pass_return: -+ if (rdm->recursion != RUST_NO_RECURSION_LIMIT) -+ -- rdm->recursion; - } - - static void -@@ -1317,6 +1335,7 @@ rust_demangle_callback (const char *mang - rdm.skipping_printing = 0; - rdm.verbose = (options & DMGL_VERBOSE) != 0; - rdm.version = 0; -+ rdm.recursion = (options & DMGL_NO_RECURSE_LIMIT) ? RUST_NO_RECURSION_LIMIT : 0; - rdm.bound_lifetime_depth = 0; - - /* Rust symbols always start with _R (v0) or _ZN (legacy). */ diff --git a/binutils-export-demangle.h.patch b/binutils-export-demangle.h.patch index 6e47d7d..9716a8b 100644 --- a/binutils-export-demangle.h.patch +++ b/binutils-export-demangle.h.patch @@ -5,8 +5,8 @@ diff -rup binutils.orig/bfd/Makefile.am binutils-2.32/bfd/Makefile.am bfdincludedir = @bfdincludedir@ bfdlib_LTLIBRARIES = libbfd.la bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ -- bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h -+ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h else !INSTALL_LIBBFD # Empty these so that the respective installation directories will not be created. bfdlibdir = @@ -16,7 +16,7 @@ diff -rup binutils.orig/bfd/Makefile.in binutils-2.32/bfd/Makefile.in @@ -249,7 +249,7 @@ am__can_run_installinfo = \ esac am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bfd_stdint.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ - $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h + $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h HEADERS = $(bfdinclude_HEADERS) @@ -26,8 +26,8 @@ diff -rup binutils.orig/bfd/Makefile.in binutils-2.32/bfd/Makefile.in @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ --@INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h \ -+@INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ +-@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h \ ++@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la diff --git a/binutils-filename-in-error-messages.patch b/binutils-filename-in-error-messages.patch index 1aa3737..b943bd0 100644 --- a/binutils-filename-in-error-messages.patch +++ b/binutils-filename-in-error-messages.patch @@ -1,11 +1,9 @@ ---- binutils.orig/binutils/readelf.c 2020-07-24 14:55:25.163647522 +0100 -+++ binutils-2.35/binutils/readelf.c 2020-07-24 15:02:39.613851369 +0100 -@@ -20729,79 +20729,92 @@ process_file (char * file_name) - Filedata * filedata = NULL; +--- binutils.orig/binutils/readelf.c 2021-07-19 12:39:14.206556025 +0100 ++++ binutils-2.37/binutils/readelf.c 2021-07-19 12:44:37.712728732 +0100 +@@ -21873,45 +21873,52 @@ process_file (char * file_name) struct stat statbuf; char armag[SARMAG]; -- bfd_boolean ret = TRUE; -+ bfd_boolean ret = FALSE; + bool ret = true; + char * name; + char * saved_program_name; + @@ -25,7 +23,7 @@ else - error (_("Could not locate '%s'. System error message: %s\n"), - file_name, strerror (errno)); -- return FALSE; +- return false; + error (_("Could not locate file. System error message: %s\n"), + strerror (errno)); + goto done; @@ -34,7 +32,7 @@ if (! S_ISREG (statbuf.st_mode)) { - error (_("'%s' is not an ordinary file\n"), file_name); -- return FALSE; +- return false; + error (_("Not an ordinary file\n")); + goto done; } @@ -43,7 +41,7 @@ if (filedata == NULL) { error (_("Out of memory allocating file data structure\n")); -- return FALSE; +- return false; + goto done; } @@ -53,7 +51,7 @@ { - error (_("Input file '%s' is not readable.\n"), file_name); - free (filedata); -- return FALSE; +- return false; + error (_("Not readable\n")); + goto done; } @@ -61,28 +59,29 @@ if (fread (armag, SARMAG, 1, filedata->handle) != 1) { - error (_("%s: Failed to read file's magic number\n"), file_name); -+ error (_("Failed to read file's magic number\n")); - fclose (filedata->handle); +- fclose (filedata->handle); - free (filedata); -- return FALSE; +- return false; ++ error (_("Failed to read file's magic number\n")); + goto done; } filedata->file_size = (bfd_size_type) statbuf.st_size; +@@ -21919,33 +21926,39 @@ process_file (char * file_name) if (memcmp (armag, ARMAG, SARMAG) == 0) { -- if (! process_archive (filedata, FALSE)) -- ret = FALSE; -+ if (process_archive (filedata, FALSE)) -+ ret = TRUE; +- if (! process_archive (filedata, false)) +- ret = false; ++ if (process_archive (filedata, false)) ++ ret = true; } else if (memcmp (armag, ARMAGT, SARMAG) == 0) { -- if ( ! process_archive (filedata, TRUE)) -- ret = FALSE; -+ if (process_archive (filedata, TRUE)) -+ ret = TRUE; +- if ( ! process_archive (filedata, true)) +- ret = false; ++ if (process_archive (filedata, true)) ++ ret = true; } else { @@ -95,9 +94,9 @@ filedata->archive_file_size = filedata->archive_file_offset = 0; - if (! process_object (filedata)) -- ret = FALSE; +- ret = false; + if (process_object (filedata)) -+ ret = TRUE; ++ ret = true; } - fclose (filedata->handle); @@ -109,7 +108,8 @@ + done: + if (filedata) + { -+ fclose (filedata->handle); ++ if (filedata->handle != NULL) ++ fclose (filedata->handle); + free (filedata->section_headers); + free (filedata->program_headers); + free (filedata->string_table); @@ -121,25 +121,3 @@ free (ba_cache.strtab); ba_cache.strtab = NULL; ---- binutils.orig/binutils/readelf.c 2021-01-07 12:59:35.802994842 +0000 -+++ binutils-2.35.1/binutils/readelf.c 2021-01-07 13:02:36.591754005 +0000 -@@ -20818,7 +20818,8 @@ process_file (char * file_name) - done: - if (filedata) - { -- fclose (filedata->handle); -+ if (filedata->handle != NULL) -+ fclose (filedata->handle); - free (filedata->section_headers); - free (filedata->program_headers); - free (filedata->string_table); ---- binutils.orig/binutils/readelf.c 2021-01-08 17:01:23.573093204 +0000 -+++ binutils-2.35.1/binutils/readelf.c 2021-01-08 17:02:23.095677242 +0000 -@@ -20787,7 +20787,6 @@ process_file (char * file_name) - if (fread (armag, SARMAG, 1, filedata->handle) != 1) - { - error (_("Failed to read file's magic number\n")); -- fclose (filedata->handle); - goto done; - } - diff --git a/binutils-plugin-file-descriptors.patch b/binutils-plugin-file-descriptors.patch deleted file mode 100644 index 88938f0..0000000 --- a/binutils-plugin-file-descriptors.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -rup binutils.orig/bfd/plugin.c binutils-2.36.1/bfd/plugin.c ---- binutils.orig/bfd/plugin.c 2021-05-24 11:35:17.208423540 +0100 -+++ binutils-2.36.1/bfd/plugin.c 2021-05-24 11:35:29.419349585 +0100 -@@ -209,7 +209,35 @@ bfd_plugin_open_input (bfd *ibfd, struct - the same underlying file descriptor. */ - file->fd = open (file->name, O_RDONLY | O_BINARY); - if (file->fd < 0) -- return 0; -+ { -+#ifndef EMFILE -+ return 0; -+#else -+ if (errno != EMFILE) -+ return 0; -+ -+#ifdef HAVE_GETRLIMIT -+ struct rlimit lim; -+ -+ /* Complicated links involving lots of files and/or large archives -+ can exhaust the number of file descriptors available to us. -+ If possible, try to allocate more descriptors. */ -+ if (getrlimit (RLIMIT_NOFILE, & lim) == 0 -+ && lim.rlim_cur < lim.rlim_max) -+ { -+ lim.rlim_cur = lim.rlim_max; -+ if (setrlimit (RLIMIT_NOFILE, &lim) == 0) -+ file->fd = open (file->name, O_RDONLY | O_BINARY); -+ } -+ -+ if (file->fd < 0) -+#endif -+ { -+ _bfd_error_handler (_("plugin framework: out of file descriptors. Try using fewer objects/archives\n")); -+ return 0; -+ } -+#endif -+ } - - if (iobfd == ibfd) - { diff --git a/binutils-ppc-weak-undefined-plt-relocs.patch b/binutils-ppc-weak-undefined-plt-relocs.patch deleted file mode 100644 index e3a0b57..0000000 --- a/binutils-ppc-weak-undefined-plt-relocs.patch +++ /dev/null @@ -1,36 +0,0 @@ -Only in binutils-2.36.1/bfd: ChangeLog.orig -Only in binutils-2.36.1/bfd: ChangeLog.rej -diff -rup binutils.orig/bfd/elf32-ppc.c binutils-2.36.1/bfd/elf32-ppc.c ---- binutils.orig/bfd/elf32-ppc.c 2021-05-18 11:38:27.644364623 +0100 -+++ binutils-2.36.1/bfd/elf32-ppc.c 2021-05-18 11:44:19.809184838 +0100 -@@ -5289,7 +5289,12 @@ allocate_dynrelocs (struct elf_link_hash - for (ent = h->plt.plist; ent != NULL; ent = ent->next) - if (ent->plt.refcount > 0) - { -- asection *s = htab->elf.splt; -+ asection *s; -+ -+ if (!ensure_undef_dynamic (info, h)) -+ return FALSE; -+ -+ s = htab->elf.splt; - - if (!dyn) - { -Only in binutils-2.36.1/bfd: elf32-ppc.c.orig -Only in binutils-2.36.1/bfd: elf32-ppc.c.rej -diff -rup binutils.orig/bfd/elf64-ppc.c binutils-2.36.1/bfd/elf64-ppc.c ---- binutils.orig/bfd/elf64-ppc.c 2021-05-18 11:38:27.646364616 +0100 -+++ binutils-2.36.1/bfd/elf64-ppc.c 2021-05-18 11:41:01.635847814 +0100 -@@ -9819,6 +9819,9 @@ allocate_dynrelocs (struct elf_link_hash - for (pent = h->plt.plist; pent != NULL; pent = pent->next) - if (pent->plt.refcount > 0) - { -+ if (!ensure_undef_dynamic (info, h)) -+ return FALSE; -+ - if (!htab->elf.dynamic_sections_created - || h->dynindx == -1) - { -Only in binutils-2.36.1/bfd: elf64-ppc.c.orig -Only in binutils-2.36.1/bfd: elf64-ppc.c.rej diff --git a/binutils-ppc64le-note-merge.patch b/binutils-ppc64le-note-merge.patch deleted file mode 100644 index 7677372..0000000 --- a/binutils-ppc64le-note-merge.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- binutils.orig/binutils/objcopy.c 2021-02-18 11:35:48.062479490 +0000 -+++ binutils-2.30/binutils/objcopy.c 2021-02-18 11:36:52.207071148 +0000 -@@ -2224,6 +2224,11 @@ merge_gnu_build_notes (bfd * ab - goto done; - } - -+ if (start > end) -+ /* This can happen with PPC64LE binaries where empty notes are -+ encoded as start = end + 4. */ -+ start = end; -+ - if (is_open_note (pnote)) - { - if (start) ---- binutils.orig/binutils/objcopy.c 2021-02-22 10:36:15.710374328 +0000 -+++ binutils-2.36.1/binutils/objcopy.c 2021-02-22 16:47:11.702344502 +0000 -@@ -2246,23 +2246,8 @@ merge_gnu_build_notes (bfd * ab - break; - - case 8: -- if (! is_64bit (abfd)) -- { -- start = bfd_get_32 (abfd, pnote->note.descdata); -- end = bfd_get_32 (abfd, pnote->note.descdata + 4); -- } -- else -- { -- start = bfd_get_64 (abfd, pnote->note.descdata); -- /* FIXME: For version 1 and 2 notes we should try to -- calculate the end address by finding a symbol whose -- value is START, and then adding in its size. -- -- For now though, since v1 and v2 was not intended to -- handle gaps, we chose an artificially large end -- address. */ -- end = (bfd_vma) -1; -- } -+ start = bfd_get_32 (abfd, pnote->note.descdata); -+ end = bfd_get_32 (abfd, pnote->note.descdata + 4); - break; - - case 16: diff --git a/binutils-s390-arch14-insns.patch b/binutils-s390-arch14-insns.patch deleted file mode 100644 index f0b4174..0000000 --- a/binutils-s390-arch14-insns.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff -rup binutils.orig/gas/config/tc-s390.c binutils-2.35.1/gas/config/tc-s390.c ---- binutils.orig/gas/config/tc-s390.c 2021-02-19 11:44:24.240877612 +0000 -+++ binutils-2.35.1/gas/config/tc-s390.c 2021-02-19 11:46:05.222554434 +0000 -@@ -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 -rup binutils.orig/gas/doc/c-s390.texi binutils-2.35.1/gas/doc/c-s390.texi ---- binutils.orig/gas/doc/c-s390.texi 2021-02-19 11:44:24.236877625 +0000 -+++ binutils-2.35.1/gas/doc/c-s390.texi 2021-02-19 11:46:05.223554431 +0000 -@@ -18,7 +18,7 @@ and eleven chip levels. The architecture - 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 -rup binutils.orig/gas/testsuite/gas/s390/s390.exp binutils-2.35.1/gas/testsuite/gas/s390/s390.exp ---- binutils.orig/gas/testsuite/gas/s390/s390.exp 2021-02-19 11:44:24.338877299 +0000 -+++ binutils-2.35.1/gas/testsuite/gas/s390/s390.exp 2021-02-19 11:46:05.223554431 +0000 -@@ -31,6 +31,7 @@ if [expr [istarget "s390-*-*"] || [ista - 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}" -Only in binutils-2.35.1/gas/testsuite/gas/s390: zarch-arch14.d -Only in binutils-2.35.1/gas/testsuite/gas/s390: zarch-arch14.s -diff -rup binutils.orig/include/opcode/s390.h binutils-2.35.1/include/opcode/s390.h ---- binutils.orig/include/opcode/s390.h 2021-02-19 11:44:23.926878617 +0000 -+++ binutils-2.35.1/include/opcode/s390.h 2021-02-19 11:46:05.223554431 +0000 -@@ -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 -rup binutils.orig/opcodes/s390-mkopc.c binutils-2.35.1/opcodes/s390-mkopc.c ---- binutils.orig/opcodes/s390-mkopc.c 2021-02-19 11:44:23.947878550 +0000 -+++ binutils-2.35.1/opcodes/s390-mkopc.c 2021-02-19 11:46:05.223554431 +0000 -@@ -380,6 +380,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); -Only in binutils-2.35.1/opcodes: s390-mkopc.c.orig -diff -rup binutils.orig/opcodes/s390-opc.txt binutils-2.35.1/opcodes/s390-opc.txt ---- binutils.orig/opcodes/s390-opc.txt 2021-02-19 11:44:23.943878563 +0000 -+++ binutils-2.35.1/opcodes/s390-opc.txt 2021-02-19 11:46:05.224554428 +0000 -@@ -2000,3 +2000,31 @@ e60000000052 vcvbg VRR_RV0UU "vector con - # 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 -Only in binutils-2.35.1/opcodes: s390-opc.txt.orig diff --git a/binutils-testsuite-fixes.patch b/binutils-testsuite-fixes.patch index f75608e..6159a71 100644 --- a/binutils-testsuite-fixes.patch +++ b/binutils-testsuite-fixes.patch @@ -279,144 +279,6 @@ diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.36.1/ld/tes undefined_weak "-fPIE" "" undefined_weak "-fPIE" "-pie" undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak" ---- binutils.orig/binutils/dwarf.c 2021-02-12 11:44:39.012365518 +0000 -+++ binutils-2.36.1/binutils/dwarf.c 2021-02-12 11:49:35.408266181 +0000 -@@ -2117,6 +2117,7 @@ get_type_abbrev_from_form (unsigned long - switch (form) - { - case DW_FORM_GNU_ref_alt: -+ case DW_FORM_ref_sig8: - /* FIXME: We are unable to handle this form at the moment. */ - return NULL; - -@@ -2146,7 +2147,7 @@ get_type_abbrev_from_form (unsigned long - /* FIXME: Are there other DW_FORMs that can be used by types ? */ - - default: -- warn (_("Unexpected form %lx encountered whilst finding abbreviation for type\n"), form); -+ warn (_("Unexpected form %#lx encountered whilst finding abbreviation for type\n"), form); - return NULL; - } - -diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-now.d ---- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-02-12 11:44:39.034365363 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-02-12 11:57:49.372692119 +0000 -@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr - 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7 - 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8 - 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o -- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local -- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc -+ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local[ ]+\[VARIANT_PCS\] -+ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local_ifunc[ ]+\[VARIANT_PCS\] - 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc - 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local - 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x - 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o -- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 -- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc -+ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local2[ ]+\[VARIANT_PCS\] -+ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local2_ifunc[ ]+\[VARIANT_PCS\] - 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc - 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 - 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x - 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC -- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def -+ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_global_hidden_def[ ]+\[VARIANT_PCS\] - 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc - 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def - 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ -- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc -+ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_global_hidden_ifunc[ ]+\[VARIANT_PCS\] - 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x - 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef -- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef -- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc -+ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] -+ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] - 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def -- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def -+ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] - 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc -diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-r.d ---- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-02-12 11:44:39.028365406 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-02-12 11:54:36.878111688 +0000 -@@ -37,24 +37,24 @@ Symbol table '\.symtab' contains 26 entr - 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3 - 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4 - 4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o -- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local -- 6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc -+ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local[ ]+\[VARIANT_PCS\] -+ 6: 0000000000000000 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local_ifunc[ ]+\[VARIANT_PCS\] - 7: 0000000000000000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc - 8: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 f_base_local - 9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$x - 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o -- 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 -- 12: 0000000000000038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc -+ 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local2[ ]+\[VARIANT_PCS\] -+ 12: 0000000000000038 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local2_ifunc[ ]+\[VARIANT_PCS\] - 13: 0000000000000038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc - 14: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 - 15: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 \$x - 16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef -- 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef -- 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_def -+ 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] -+ 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN[ ]+1 f_spec_global_hidden_def[ ]+\[VARIANT_PCS\] - 19: 0000000000000000 0 IFUNC GLOBAL HIDDEN 1 f_base_global_hidden_ifunc -- 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc -+ 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] - 21: 0000000000000000 0 NOTYPE GLOBAL HIDDEN 1 f_base_global_hidden_def -- 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc -+ 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN[ ]+1 f_spec_global_hidden_ifunc[ ]+\[VARIANT_PCS\] - 23: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def -- 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def -+ 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] - 25: 0000000000000000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc -diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-shared.d ---- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-02-12 11:44:39.027365412 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-02-12 11:56:14.669390518 +0000 -@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr - 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7 - 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8 - 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o -- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local -- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc -+ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local[ ]+\[VARIANT_PCS\] -+ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local_ifunc[ ]+\[VARIANT_PCS\] - 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc - 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local - 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x - 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o -- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 -- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc -+ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_local2[ ]+\[VARIANT_PCS\] -+ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_local2_ifunc[ ]+\[VARIANT_PCS\] - 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc - 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 - 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x - 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC -- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def -+ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT[ ]+1 f_spec_global_hidden_def[ ]+\[VARIANT_PCS\] - 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc - 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def - 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ -- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc -+ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT[ ]+1 f_spec_global_hidden_ifunc[ ]+\[VARIANT_PCS\] - 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x - 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef -- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef -- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc -+ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] -+ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] - 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def -- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def -+ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] - 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc --- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 11:44:39.076365068 +0000 +++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 12:01:48.091931654 +0000 @@ -1,5 +1,5 @@ @@ -426,55 +288,6 @@ diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2. .*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY .*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY .*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY ---- binutils.orig/gold/main.cc 2021-01-21 16:12:10.006321882 +0000 -+++ binutils-2.35.90/gold/main.cc 2021-01-21 16:12:41.935071183 +0000 -@@ -290,11 +290,6 @@ main(int argc, char** argv) - elapsed.sys / 1000, (elapsed.sys % 1000) * 1000, - elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); - --#ifdef HAVE_MALLINFO -- struct mallinfo m = mallinfo(); -- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), -- program_name, static_cast(m.arena)); --#endif - File_read::print_stats(); - Archive::print_stats(); - Lib_group::print_stats(); - -diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-now.d ---- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-02-12 14:14:24.977160359 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-02-12 14:17:35.540758925 +0000 -@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef -- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef -- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc -+ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] -+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] - 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def -- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def -+ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] - 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc - - Symbol table '\.symtab' contains 35 entries: -diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-shared.d ---- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-02-12 14:14:24.980160337 +0000 -+++ binutils-2.36.1/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-02-12 14:16:49.860094868 +0000 -@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef -- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef -- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc -+ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] -+ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] - 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def -- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def -+ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] - 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc - - Symbol table '\.symtab' contains 35 entries: --- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 14:14:25.023160021 +0000 +++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 14:19:29.106923745 +0000 @@ -1,6 +1,6 @@ @@ -488,3 +301,199 @@ diff -rup binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d binutils-2. +.*: symbol `.*unc2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY +.*: symbol `.*unc3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY #pass +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-19 12:39:14.240555833 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-19 12:50:27.753751551 +0100 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-19 12:39:14.235555861 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-19 12:51:04.981541273 +0100 +@@ -37,24 +37,24 @@ Symbol table '\.symtab' contains 26 entr + 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3.* + 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4.* + 4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT .* ++ 6: 0000000000000000 0 IFUNC LOCAL DEFAULT .* + 7: 0000000000000000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 8: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$x + 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 12: 0000000000000038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT .* ++ 12: 0000000000000038 0 IFUNC LOCAL DEFAULT .* + 13: 0000000000000038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 14: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 15: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 \$x + 16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN .* + 19: 0000000000000000 0 IFUNC GLOBAL HIDDEN 1 f_base_global_hidden_ifunc +- 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT .* + 21: 0000000000000000 0 NOTYPE GLOBAL HIDDEN 1 f_base_global_hidden_def +- 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN .* + 23: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* + 25: 0000000000000000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-19 12:39:14.235555861 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-19 12:51:38.076354339 +0100 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/gold/main.cc 2021-07-19 12:39:14.643553557 +0100 ++++ binutils-2.37/gold/main.cc 2021-07-19 12:53:40.043665415 +0100 +@@ -290,16 +290,6 @@ main(int argc, char** argv) + elapsed.sys / 1000, (elapsed.sys % 1000) * 1000, + elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); + +-#if defined(HAVE_MALLINFO2) +- struct mallinfo2 m = mallinfo2(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast(m.arena)); +-#elif defined(HAVE_MALLINFO) +- struct mallinfo m = mallinfo(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast(m.arena)); +-#endif +- + File_read::print_stats(); + Archive::print_stats(); + Lib_group::print_stats(); +--- binutils.orig/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-19 14:51:48.859666911 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-19 14:59:56.130065901 +0100 +@@ -11,7 +11,7 @@ + 0x.+ \(PLTRELSZ\) \s+.+ \(bytes\) + 0x.+ \(PLTREL\) \s+RELA + 0x.+ \(JMPREL\) \s+0x.+ +- 0x.+ \(BIND_NOW\) \s+ ++ 0x.+ \(FLAGS\) \s+BIND_NOW + 0x.+ \(FLAGS_1\) \s+ Flags: NOW + 0x.+ \(NULL\) \s+ 0x0 + +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2021-07-19 14:51:48.905666659 +0100 ++++ binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-19 15:06:56.159875135 +0100 +@@ -119,7 +119,7 @@ if { $can_compile && !$failed_compile } + + # I do not know why, but the underscore prefix test is going + # wrong on ppc64le targets. So override it here. +-if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } { ++if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] || [istarget *-*-*] } { + set _ "" + } + +--- binutils.orig/ld/testsuite/ld-elf/compress.exp 2021-07-19 14:51:48.982666235 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/compress.exp 2021-07-19 15:16:14.268931663 +0100 +@@ -168,7 +168,7 @@ if { [regexp_diff tmpdir/$test.out $srcd + set test_name "Link with zlib compressed debug output 1" + set test normal + send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" diff --git a/binutils.spec b/binutils.spec index a006832..c82138e 100644 --- a/binutils.spec +++ b/binutils.spec @@ -38,8 +38,8 @@ Summary: A GNU collection of binary utilities Name: binutils%{?name_cross}%{?_with_debug:-debug} -Version: 2.36.1 -Release: 15%{?dist} +Version: 2.37 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/binutils @@ -226,7 +226,7 @@ Patch08: binutils-2.27-aarch64-ifunc.patch Patch09: binutils-do-not-link-with-static-libstdc++.patch # Purpose: Allow OS specific sections in section groups. -# Lifetime: Fixed in 2.37 (maybe) +# Lifetime: Fixed in 2.38 (maybe) Patch10: binutils-special-sections-in-groups.patch # Purpose: Fix linker testsuite failures. @@ -235,12 +235,12 @@ Patch11: binutils-fix-testsuite-failures.patch # Purpose: Stop gold from aborting when input sections with the same name # have different flags. -# Lifetime: Fixed in 2.37 (maybe) +# Lifetime: Fixed in 2.38 (maybe) Patch12: binutils-gold-mismatched-section-flags.patch # Purpose: Add a check to the GOLD linker for a corrupt input file # with a fuzzed section offset. -# Lifetime: Fixed in 2.37 (maybe) +# Lifetime: Fixed in 2.38 (maybe) Patch13: binutils-CVE-2019-1010204.patch # Purpose: Change the gold configuration script to only warn about @@ -257,44 +257,14 @@ Patch14: binutils-gold-warn-unsupported.patch # Lifetime: Permanent. Patch15: binutils-use-long-long.patch -# Purpose: Bring in changes to the 2.36 branch that were made after the -# 2.36.1 release was created. -# Lifetime: Fixed in 2.37 -Patch16: binutils-2.36-branch-updates.patch - # Purpose: Fix testsuite failures due to the patches applied here. # Lifetime: Permanent, but varying with each new rebase. -Patch17: binutils-testsuite-fixes.patch - -# Purpose: Fix merging empty ppc64le notes. -# Lifetime: Fixed in 2.37 -Patch18: binutils-ppc64le-note-merge.patch - -# Purpose: Add support for Z instruction set extensions to the s390x -# architecture. -# Lifetime: Fixed in 2.37 -Patch19: binutils-s390-arch14-insns.patch - -# Purpose: Avoid renaming over existing files. -# Lifetime: Fixed in 2.37 -Patch20: binutils-CVE-2021-20197.patch - -# Purpose: Avoid stack exhaustion whilst demangling rust names -# Lifetime: Fixed in 2.37 -Patch21: binutils-CVE-2021-3530.patch - -# Purpose: Generate PLT relocs for weak undefined PowerPC function symbols. -# Lifetime: Fixed in 2.37 -Patch22: binutils-ppc-weak-undefined-plt-relocs.patch - -# Purpose: Increase the number of file descriptors available to plugins -# Lifetime: Fixed in 2.37 -Patch23: binutils-plugin-file-descriptors.patch +Patch16: binutils-testsuite-fixes.patch # Purpose: Enable the creation of .note.gnu.property sections by the GOLD # linker for x86 binaries. -# Lifetime: Fixed in 2.37 maybe -Patch24: binutils-gold-i386-gnu-property-notes.patch +# Lifetime: Fixed in 2.38 maybe +Patch17: binutils-gold-i386-gnu-property-notes.patch #---------------------------------------------------------------------------- @@ -899,6 +869,16 @@ exit 0 #---------------------------------------------------------------------------- %changelog +* Mon Jul 19 2021 Nick Clifton - 2.37-1 +- Rebase to GNU Binutils 2.37. +- Retire: binutils-2.36-branch-updates.patch +- Retire: binutils-CVE-2021-20197.patch +- Retire: binutils-CVE-2021-3530.patch +- Retire: binutils-plugin-file-descriptors.patch +- Retire: binutils-ppc-weak-undefined-plt-relocs.patch +- Retire: binutils-ppc64le-note-merge.patch +- Retire: binutils-s390-arch14-insns.patch + * Mon Jun 21 2021 Nick Clifton - 2.36.1-15 - Enable the creation of .note.gnu.property sections by the GOLD linker for x86 binaries. (#1970961) diff --git a/sources b/sources index 595efbe..b8c6109 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (binutils-2.36.1.tar.xz) = cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 -SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2 +SHA512 (binutils-2.37.tar.xz) = 5c11aeef6935860a6819ed3a3c93371f052e52b4bdc5033da36037c1544d013b7f12cb8d561ec954fe7469a68f1b66f1a3cd53d5a3af7293635a90d69edd15e7