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
This commit is contained in:
parent
acab70872f
commit
90f5896dac
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -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" \
|
@ -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 <utime.h>
|
||||
-#else /* ! HAVE_GOOD_UTIME_H */
|
||||
-#ifdef HAVE_UTIMES
|
||||
+#elif defined HAVE_UTIMES
|
||||
#include <sys/time.h>
|
||||
-#endif /* HAVE_UTIMES */
|
||||
-#endif /* ! HAVE_GOOD_UTIME_H */
|
||||
-
|
||||
-#if ! defined (_WIN32) || defined (__CYGWIN32__)
|
||||
-static int simple_copy (const char *, const char *);
|
||||
+#endif
|
||||
|
||||
/* The number of bytes to copy at once. */
|
||||
#define COPY_BUF 8192
|
||||
|
||||
-/* 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;
|
||||
}
|
@ -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). */
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
{
|
@ -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
|
@ -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:
|
@ -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
|
@ -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<long long>(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<long long>(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<long long>(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"
|
||||
|
@ -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 <nickc@redhat.com> - 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 <nickc@redhat.com> - 2.36.1-15
|
||||
- Enable the creation of .note.gnu.property sections by the GOLD linker for x86 binaries. (#1970961)
|
||||
|
||||
|
3
sources
3
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
|
||||
|
Loading…
Reference in New Issue
Block a user