Compare commits
18 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10df332a21 | ||
|
|
9ae9a31a87 | ||
|
|
8fc43948c9 | ||
|
|
c480582c53 | ||
|
|
e4eb4b56e9 | ||
|
|
5f2f73705b | ||
|
|
990ade43af | ||
|
|
698ef7dd10 | ||
|
|
f6591b4749 | ||
|
|
8db331e7cb | ||
|
|
056dc6ee1d | ||
|
|
66262eec5d | ||
|
|
839a6a093e | ||
|
|
11fc25375a | ||
|
|
805e066009 | ||
|
|
bb4d098e2f | ||
|
|
36a450d6d2 | ||
|
|
e92140ca5d |
26 changed files with 1481 additions and 925 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -64,7 +64,3 @@ stamp-*
|
|||
/gmp*
|
||||
/isl*
|
||||
/binutils-2.19.50.0.1-output-format.sed
|
||||
/binutils-2.44.50-13.fc43.src.rpm
|
||||
/binutils-with-gold-2.45.50-be970c68891.tar.gz
|
||||
/binutils-with-gold-2.45.50-ba5838a98fb.tar.gz
|
||||
/binutils-2.47.50-1.fc46.src.rpm
|
||||
|
|
|
|||
42
binutils-CVE-2025-11082.patch
Normal file
42
binutils-CVE-2025-11082.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
From ea1a0737c7692737a644af0486b71e4a392cbca8 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Mon, 22 Sep 2025 15:20:34 +0800
|
||||
Subject: [PATCH] elf: Don't read beyond .eh_frame section size
|
||||
|
||||
PR ld/33464
|
||||
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Don't read beyond
|
||||
.eh_frame section size.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
bfd/elf-eh-frame.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff -rup binutils-2.43.1.orig/bfd/elf-eh-frame.c binutils-2.43.1/bfd/elf-eh-frame.c
|
||||
--- binutils-2.43.1.orig/bfd/elf-eh-frame.c 2025-10-03 12:00:40.473590498 +0100
|
||||
+++ binutils-2.43.1/bfd/elf-eh-frame.c 2025-10-03 12:00:59.521264872 +0100
|
||||
@@ -734,6 +734,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
|
||||
if (hdr_id == 0)
|
||||
{
|
||||
unsigned int initial_insn_length;
|
||||
+ char *null_byte;
|
||||
|
||||
/* CIE */
|
||||
this_inf->cie = 1;
|
||||
@@ -750,10 +751,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
|
||||
REQUIRE (cie->version == 1
|
||||
|| cie->version == 3
|
||||
|| cie->version == 4);
|
||||
- REQUIRE (strlen ((char *) buf) < sizeof (cie->augmentation));
|
||||
+ null_byte = memchr ((char *) buf, 0, end - buf);
|
||||
+ REQUIRE (null_byte != NULL);
|
||||
+ REQUIRE ((size_t) (null_byte - (char *) buf)
|
||||
+ < sizeof (cie->augmentation));
|
||||
|
||||
strcpy (cie->augmentation, (char *) buf);
|
||||
- buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1;
|
||||
+ buf = (bfd_byte *) null_byte + 1;
|
||||
this_inf->u.cie.aug_str_len = buf - start - 1;
|
||||
ENSURE_NO_RELOCS (buf);
|
||||
if (buf[0] == 'e' && buf[1] == 'h')
|
||||
|
||||
76
binutils-CVE-2025-11083.patch
Normal file
76
binutils-CVE-2025-11083.patch
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
From 9ca499644a21ceb3f946d1c179c38a83be084490 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Thu, 18 Sep 2025 16:59:25 -0700
|
||||
Subject: [PATCH] elf: Don't match corrupt section header in linker input
|
||||
|
||||
Don't swap in nor match corrupt section header in linker input to avoid
|
||||
linker crash later.
|
||||
|
||||
PR ld/33457
|
||||
* elfcode.h (elf_swap_shdr_in): Changed to return bool. Return
|
||||
false for corrupt section header in linker input.
|
||||
(elf_object_p): Reject if elf_swap_shdr_in returns false.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
bfd/elfcode.h | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
|
||||
index 9c65852e103..5224a1abee6 100644
|
||||
--- a/bfd/elfcode.h
|
||||
+++ b/bfd/elfcode.h
|
||||
@@ -311,7 +311,7 @@ elf_swap_ehdr_out (bfd *abfd,
|
||||
/* Translate an ELF section header table entry in external format into an
|
||||
ELF section header table entry in internal format. */
|
||||
|
||||
-static void
|
||||
+static bool
|
||||
elf_swap_shdr_in (bfd *abfd,
|
||||
const Elf_External_Shdr *src,
|
||||
Elf_Internal_Shdr *dst)
|
||||
@@ -341,6 +341,9 @@ elf_swap_shdr_in (bfd *abfd,
|
||||
{
|
||||
_bfd_error_handler (_("warning: %pB has a section "
|
||||
"extending past end of file"), abfd);
|
||||
+ /* PR ld/33457: Don't match corrupt section header. */
|
||||
+ if (abfd->is_linker_input)
|
||||
+ return false;
|
||||
abfd->read_only = 1;
|
||||
}
|
||||
}
|
||||
@@ -350,6 +353,7 @@ elf_swap_shdr_in (bfd *abfd,
|
||||
dst->sh_entsize = H_GET_WORD (abfd, src->sh_entsize);
|
||||
dst->bfd_section = NULL;
|
||||
dst->contents = NULL;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/* Translate an ELF section header table entry in internal format into an
|
||||
@@ -642,9 +646,9 @@ elf_object_p (bfd *abfd)
|
||||
|
||||
/* Read the first section header at index 0, and convert to internal
|
||||
form. */
|
||||
- if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
|
||||
+ if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr)
|
||||
+ || !elf_swap_shdr_in (abfd, &x_shdr, &i_shdr))
|
||||
goto got_no_match;
|
||||
- elf_swap_shdr_in (abfd, &x_shdr, &i_shdr);
|
||||
|
||||
/* If the section count is zero, the actual count is in the first
|
||||
section header. */
|
||||
@@ -730,9 +734,9 @@ elf_object_p (bfd *abfd)
|
||||
to internal form. */
|
||||
for (shindex = 1; shindex < i_ehdrp->e_shnum; shindex++)
|
||||
{
|
||||
- if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
|
||||
+ if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr)
|
||||
+ || !elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex))
|
||||
goto got_no_match;
|
||||
- elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex);
|
||||
|
||||
/* Sanity check sh_link and sh_info. */
|
||||
if (i_shdrp[shindex].sh_link >= num_sec)
|
||||
--
|
||||
2.51.0
|
||||
|
||||
45
binutils-CVE-2025-11494.patch
Normal file
45
binutils-CVE-2025-11494.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From b6ac5a8a5b82f0ae6a4642c8d7149b325f4cc60a Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Tue, 30 Sep 2025 08:13:56 +0800
|
||||
Subject: [PATCH] x86: Keep _GLOBAL_OFFSET_TABLE_ for .eh_frame
|
||||
|
||||
Since x86 .eh_frame section may reference _GLOBAL_OFFSET_TABLE_, keep
|
||||
_GLOBAL_OFFSET_TABLE_ if there is dynamic section and the output
|
||||
.eh_frame section is non-empty.
|
||||
|
||||
PR ld/33499
|
||||
* elfxx-x86.c (_bfd_x86_elf_late_size_sections): Keep
|
||||
_GLOBAL_OFFSET_TABLE_ if there is dynamic section and the
|
||||
output .eh_frame section is non-empty.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
bfd/elfxx-x86.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff -rup binutils-with-gold-2.44.orig/bfd/elfxx-x86.c binutils-with-gold-2.44/bfd/elfxx-x86.c
|
||||
--- binutils-with-gold-2.44.orig/bfd/elfxx-x86.c 2025-10-13 10:42:42.345160623 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elfxx-x86.c 2025-10-13 10:42:52.941568120 +0100
|
||||
@@ -2458,6 +2458,8 @@ _bfd_x86_elf_late_size_sections (bfd *ou
|
||||
|
||||
if (htab->elf.sgotplt)
|
||||
{
|
||||
+ asection *eh_frame;
|
||||
+
|
||||
/* Don't allocate .got.plt section if there are no GOT nor PLT
|
||||
entries and there is no reference to _GLOBAL_OFFSET_TABLE_. */
|
||||
if ((htab->elf.hgot == NULL
|
||||
@@ -2470,7 +2472,11 @@ _bfd_x86_elf_late_size_sections (bfd *ou
|
||||
&& (htab->elf.iplt == NULL
|
||||
|| htab->elf.iplt->size == 0)
|
||||
&& (htab->elf.igotplt == NULL
|
||||
- || htab->elf.igotplt->size == 0))
|
||||
+ || htab->elf.igotplt->size == 0)
|
||||
+ && (!htab->elf.dynamic_sections_created
|
||||
+ || (eh_frame = bfd_get_section_by_name (output_bfd,
|
||||
+ ".eh_frame")) == NULL
|
||||
+ || eh_frame->rawsize == 0))
|
||||
{
|
||||
htab->elf.sgotplt->size = 0;
|
||||
/* Solaris requires to keep _GLOBAL_OFFSET_TABLE_ even if it
|
||||
|
||||
198
binutils-CVE-2025-11495.patch
Normal file
198
binutils-CVE-2025-11495.patch
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
From 6b21c8b2ecfef5c95142cbc2c32f185cb1c26ab0 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Tue, 30 Sep 2025 08:18:29 +0800
|
||||
Subject: [PATCH] x86: Disallow TLS relocation in non executable section
|
||||
|
||||
Since TLS relocations are applied to executable machine instructions,
|
||||
disallow TLS relocation in non-SHT_PROGBITS, non-SHF_EXECINSTR section.
|
||||
|
||||
PR ld/33451
|
||||
PR ld/33502
|
||||
* elf32-i386.c (elf_i386_tls_transition): Disallow TLS relocation
|
||||
in non-SHT_PROGBITS, non-SHF_EXECINSTR section.
|
||||
(elf_i386_scan_relocs): Likewise.
|
||||
* elf64-x86-64.c (elf_x86_64_tls_transition): Likewise.
|
||||
(elf_x86_64_scan_relocs): Likewise.
|
||||
* elfxx-x86.c (_bfd_x86_elf_link_report_tls_invalid_section_error):
|
||||
New.
|
||||
* elfxx-x86.h (_bfd_x86_elf_link_report_tls_invalid_section_error):
|
||||
Likewise.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
bfd/elf32-i386.c | 19 +++++++++++++++++++
|
||||
bfd/elf64-x86-64.c | 20 ++++++++++++++++++++
|
||||
bfd/elfxx-x86.c | 20 ++++++++++++++++++++
|
||||
bfd/elfxx-x86.h | 4 ++++
|
||||
4 files changed, 63 insertions(+)
|
||||
|
||||
diff -rup binutils-with-gold-2.44.orig/bfd/elf32-i386.c binutils-with-gold-2.44/bfd/elf32-i386.c
|
||||
--- binutils-with-gold-2.44.orig/bfd/elf32-i386.c 2025-10-10 10:27:34.128669391 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elf32-i386.c 2025-10-10 10:27:45.159754790 +0100
|
||||
@@ -1166,6 +1166,15 @@ elf_i386_tls_transition (struct bfd_link
|
||||
return true;
|
||||
}
|
||||
|
||||
+ if ((elf_section_type (sec) != SHT_PROGBITS
|
||||
+ || (sec->flags & SEC_CODE) == 0))
|
||||
+ {
|
||||
+ reloc_howto_type *howto = elf_i386_rtype_to_howto (from_type);
|
||||
+ _bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (abfd, sec, symtab_hdr, h, sym, howto);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
/* Return TRUE if there is no transition. */
|
||||
if (from_type == to_type)
|
||||
return true;
|
||||
@@ -1685,6 +1694,16 @@ elf_i386_scan_relocs (bfd *abfd,
|
||||
tls_type = GOT_TLS_IE_POS; break;
|
||||
}
|
||||
|
||||
+ if (tls_type >= GOT_TLS_GD
|
||||
+ && tls_type <= GOT_TLS_GDESC
|
||||
+ && (elf_section_type (sec) != SHT_PROGBITS
|
||||
+ || (sec->flags & SEC_CODE) == 0))
|
||||
+ {
|
||||
+ _bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (abfd, sec, symtab_hdr, h, isym, howto);
|
||||
+ goto error_return;
|
||||
+ }
|
||||
+
|
||||
if (h != NULL)
|
||||
{
|
||||
h->got.refcount = 1;
|
||||
diff -rup binutils-with-gold-2.44.orig/bfd/elf64-x86-64.c binutils-with-gold-2.44/bfd/elf64-x86-64.c
|
||||
--- binutils-with-gold-2.44.orig/bfd/elf64-x86-64.c 2025-10-10 10:27:34.147669538 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elf64-x86-64.c 2025-10-10 10:27:45.161165453 +0100
|
||||
@@ -1598,6 +1598,16 @@ elf_x86_64_tls_transition (struct bfd_li
|
||||
return true;
|
||||
}
|
||||
|
||||
+ if ((elf_section_type (sec) != SHT_PROGBITS
|
||||
+ || (sec->flags & SEC_CODE) == 0))
|
||||
+ {
|
||||
+ reloc_howto_type *howto = elf_x86_64_rtype_to_howto (abfd,
|
||||
+ from_type);
|
||||
+ _bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (abfd, sec, symtab_hdr, h, sym, howto);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
/* Return TRUE if there is no transition. */
|
||||
if (from_type == to_type
|
||||
|| (from_type == R_X86_64_CODE_4_GOTTPOFF
|
||||
@@ -2351,6 +2361,16 @@ elf_x86_64_scan_relocs (bfd *abfd, struc
|
||||
break;
|
||||
}
|
||||
|
||||
+ if (tls_type >= GOT_TLS_GD
|
||||
+ && tls_type <= GOT_TLS_GDESC
|
||||
+ && (elf_section_type (sec) != SHT_PROGBITS
|
||||
+ || (sec->flags & SEC_CODE) == 0))
|
||||
+ {
|
||||
+ _bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (abfd, sec, symtab_hdr, h, isym, howto);
|
||||
+ goto error_return;
|
||||
+ }
|
||||
+
|
||||
if (h != NULL)
|
||||
{
|
||||
h->got.refcount = 1;
|
||||
diff -rup binutils-with-gold-2.44.orig/bfd/elfxx-x86.c binutils-with-gold-2.44/bfd/elfxx-x86.c
|
||||
--- binutils-with-gold-2.44.orig/bfd/elfxx-x86.c 2025-10-10 10:27:34.204669979 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elfxx-x86.c 2025-10-10 10:27:45.161625095 +0100
|
||||
@@ -3359,6 +3359,26 @@ _bfd_x86_elf_link_report_tls_transition_
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
}
|
||||
|
||||
+/* Report TLS invalid section error. */
|
||||
+
|
||||
+void
|
||||
+_bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (bfd *abfd, asection *sec, Elf_Internal_Shdr *symtab_hdr,
|
||||
+ struct elf_link_hash_entry *h, Elf_Internal_Sym *sym,
|
||||
+ reloc_howto_type *howto)
|
||||
+{
|
||||
+ const char *name;
|
||||
+ if (h)
|
||||
+ name = h->root.root.string;
|
||||
+ else
|
||||
+ name = bfd_elf_sym_name (abfd, symtab_hdr, sym, NULL);
|
||||
+ _bfd_error_handler
|
||||
+ /* xgettext:c-format */
|
||||
+ (_("%pB: relocation %s against thread local symbol `%s' in "
|
||||
+ "invalid section `%pA'"), abfd, howto->name, name, sec);
|
||||
+ bfd_set_error (bfd_error_bad_value);
|
||||
+}
|
||||
+
|
||||
/* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */
|
||||
|
||||
bool
|
||||
diff -rup binutils-with-gold-2.44.orig/bfd/elfxx-x86.h binutils-with-gold-2.44/bfd/elfxx-x86.h
|
||||
--- binutils-with-gold-2.44.orig/bfd/elfxx-x86.h 2025-10-10 10:27:34.157669616 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elfxx-x86.h 2025-10-10 10:27:45.162048003 +0100
|
||||
@@ -939,6 +939,10 @@ extern void _bfd_x86_elf_link_report_tls
|
||||
const Elf_Internal_Rela *, const char *, const char *,
|
||||
enum elf_x86_tls_error_type);
|
||||
|
||||
+extern void _bfd_x86_elf_link_report_tls_invalid_section_error
|
||||
+ (bfd *, asection *, Elf_Internal_Shdr *, struct elf_link_hash_entry *,
|
||||
+ Elf_Internal_Sym *, reloc_howto_type *);
|
||||
+
|
||||
#define bfd_elf64_mkobject \
|
||||
_bfd_x86_elf_mkobject
|
||||
#define bfd_elf32_mkobject \
|
||||
--- binutils-with-gold-2.44.orig/bfd/elf64-x86-64.c 2025-10-10 10:58:00.684202576 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elf64-x86-64.c 2025-10-10 11:01:54.310462809 +0100
|
||||
@@ -2169,6 +2169,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc
|
||||
bool size_reloc;
|
||||
bool converted_reloc;
|
||||
bool no_dynreloc;
|
||||
+ reloc_howto_type *howto;
|
||||
|
||||
r_symndx = htab->r_sym (rel->r_info);
|
||||
r_type = ELF32_R_TYPE (rel->r_info);
|
||||
@@ -2185,6 +2186,14 @@ elf_x86_64_scan_relocs (bfd *abfd, struc
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
+ howto = elf_x86_64_rtype_to_howto (abfd, r_type);
|
||||
+ if (howto == NULL)
|
||||
+ {
|
||||
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
|
||||
+ abfd, r_type);
|
||||
+ goto error_return;
|
||||
+ }
|
||||
+
|
||||
if (r_symndx < symtab_hdr->sh_info)
|
||||
{
|
||||
/* A local symbol. */
|
||||
--- binutils-with-gold-2.44.orig/bfd/elf32-i386.c 2025-10-10 11:05:23.893062517 +0100
|
||||
+++ binutils-with-gold-2.44/bfd/elf32-i386.c 2025-10-10 11:06:31.136544677 +0100
|
||||
@@ -1540,6 +1540,7 @@ elf_i386_scan_relocs (bfd *abfd,
|
||||
const char *name;
|
||||
bool size_reloc;
|
||||
bool no_dynreloc;
|
||||
+ reloc_howto_type *howto;
|
||||
|
||||
r_symndx = ELF32_R_SYM (rel->r_info);
|
||||
r_type = ELF32_R_TYPE (rel->r_info);
|
||||
@@ -1556,6 +1557,17 @@ elf_i386_scan_relocs (bfd *abfd,
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
+ howto = elf_i386_rtype_to_howto (r_type);
|
||||
+ if (rel->r_offset + bfd_get_reloc_size (howto) > sec->size)
|
||||
+ {
|
||||
+ /* xgettext:c-format */
|
||||
+ _bfd_error_handler
|
||||
+ (_("%pB: bad reloc offset (%#" PRIx32 " > %#" PRIx32 ") for"
|
||||
+ " section `%pA'"), abfd, (uint32_t) rel->r_offset,
|
||||
+ (uint32_t) sec->size, sec);
|
||||
+ goto error_return;
|
||||
+ }
|
||||
+
|
||||
if (r_symndx < symtab_hdr->sh_info)
|
||||
{
|
||||
/* A local symbol. */
|
||||
27
binutils-CVE-2025-11839.patch
Normal file
27
binutils-CVE-2025-11839.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From 12ef7d5b7b02d0023db645d86eb9d0797bc747fe Mon Sep 17 00:00:00 2001
|
||||
From: Nick Clifton <nickc@redhat.com>
|
||||
Date: Mon, 3 Nov 2025 11:49:02 +0000
|
||||
Subject: [PATCH] Remove call to abort in the DGB debug format printing code,
|
||||
thus allowing the display of a fuzzed input file to complete without
|
||||
triggering an abort.
|
||||
|
||||
PR 33448
|
||||
---
|
||||
binutils/prdbg.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/binutils/prdbg.c b/binutils/prdbg.c
|
||||
index c239aeb1a79..5d405c48e3d 100644
|
||||
--- a/binutils/prdbg.c
|
||||
+++ b/binutils/prdbg.c
|
||||
@@ -2449,7 +2449,6 @@ tg_tag_type (void *p, const char *name, unsigned int id,
|
||||
t = "union class ";
|
||||
break;
|
||||
default:
|
||||
- abort ();
|
||||
return false;
|
||||
}
|
||||
|
||||
--
|
||||
2.51.1
|
||||
|
||||
24
binutils-CVE-2025-11840.patch
Normal file
24
binutils-CVE-2025-11840.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
From f6b0f53a36820da91eadfa9f466c22f92e4256e0 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Modra <amodra@gmail.com>
|
||||
Date: Mon, 3 Nov 2025 09:03:37 +1030
|
||||
Subject: [PATCH] PR 33455 SEGV in vfinfo at ldmisc.c:527
|
||||
|
||||
A reloc howto set up with EMPTY_HOWTO has a NULL name. More than one
|
||||
place emitting diagnostics assumes a reloc howto won't have a NULL
|
||||
name.
|
||||
|
||||
PR 33455
|
||||
* coffcode.h (coff_slurp_reloc_table): Don't allow a howto with
|
||||
a NULL name.
|
||||
---
|
||||
--- binutils-2.43.1.orig/bfd/coffcode.h 2025-11-03 11:17:09.463206752 +0000
|
||||
+++ binutils-2.43.1/bfd/coffcode.h 2025-11-03 11:17:21.031291895 +0000
|
||||
@@ -5347,7 +5347,7 @@ coff_slurp_reloc_table (bfd * abfd, sec_
|
||||
RTYPE2HOWTO (cache_ptr, &dst);
|
||||
#endif /* RELOC_PROCESSING */
|
||||
|
||||
- if (cache_ptr->howto == NULL)
|
||||
+ if (cache_ptr->howto == NULL || cache_ptr->howto->name == NULL)
|
||||
{
|
||||
_bfd_error_handler
|
||||
/* xgettext:c-format */
|
||||
38
binutils-CVE-2025-7545.patch
Normal file
38
binutils-CVE-2025-7545.patch
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
From 08c3cbe5926e4d355b5cb70bbec2b1eeb40c2944 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Sat, 21 Jun 2025 06:36:56 +0800
|
||||
Subject: [PATCH] objcopy: Don't extend the output section size
|
||||
|
||||
Since the output section contents are copied from the input, don't
|
||||
extend the output section size beyond the input section size.
|
||||
|
||||
PR binutils/33049
|
||||
* objcopy.c (copy_section): Don't extend the output section
|
||||
size beyond the input section size.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
diff -rup binutils-2.43.1.orig/binutils/objcopy.c binutils-2.43.1/binutils/objcopy.c
|
||||
--- binutils-2.43.1.orig/binutils/objcopy.c 2025-07-14 13:55:09.475539153 +0100
|
||||
+++ binutils-2.43.1/binutils/objcopy.c 2025-07-14 13:55:21.639628637 +0100
|
||||
@@ -4665,6 +4665,7 @@ copy_section (bfd *ibfd, sec_ptr isectio
|
||||
char *to = (char *) memhunk;
|
||||
char *end = (char *) memhunk + size;
|
||||
int i;
|
||||
+ bfd_size_type memhunk_size = size;
|
||||
|
||||
/* If the section address is not exactly divisible by the interleave,
|
||||
then we must bias the from address. If the copy_byte is less than
|
||||
@@ -4684,6 +4685,11 @@ copy_section (bfd *ibfd, sec_ptr isectio
|
||||
}
|
||||
|
||||
size = (size + interleave - 1 - copy_byte) / interleave * copy_width;
|
||||
+
|
||||
+ /* Don't extend the output section size. */
|
||||
+ if (size > memhunk_size)
|
||||
+ size = memhunk_size;
|
||||
+
|
||||
osection->lma /= interleave;
|
||||
if (copy_byte < extra)
|
||||
osection->lma++;
|
||||
Only in binutils-2.43.1/binutils: objcopy.c.orig
|
||||
48
binutils-CVE-2025-7546.patch
Normal file
48
binutils-CVE-2025-7546.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
From 41461010eb7c79fee7a9d5f6209accdaac66cc6b Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Sat, 21 Jun 2025 06:52:00 +0800
|
||||
Subject: [PATCH] elf: Report corrupted group section
|
||||
|
||||
Report corrupted group section instead of trying to recover.
|
||||
|
||||
PR binutils/33050
|
||||
* elf.c (bfd_elf_set_group_contents): Report corrupted group
|
||||
section.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
---
|
||||
diff -rup binutils-2.43.1.orig/bfd/elf.c binutils-2.43.1/bfd/elf.c
|
||||
--- binutils-2.43.1.orig/bfd/elf.c 2025-07-14 13:55:09.383538476 +0100
|
||||
+++ binutils-2.43.1/bfd/elf.c 2025-07-14 13:56:50.081279234 +0100
|
||||
@@ -3931,20 +3931,17 @@ bfd_elf_set_group_contents (bfd *abfd, a
|
||||
break;
|
||||
}
|
||||
|
||||
- /* We should always get here with loc == sec->contents + 4, but it is
|
||||
- possible to craft bogus SHT_GROUP sections that will cause segfaults
|
||||
- in objcopy without checking loc here and in the loop above. */
|
||||
- if (loc == sec->contents)
|
||||
- BFD_ASSERT (0);
|
||||
- else
|
||||
+ /* We should always get here with loc == sec->contents + 4. Return
|
||||
+ an error for bogus SHT_GROUP sections. */
|
||||
+ loc -= 4;
|
||||
+ if (loc != sec->contents)
|
||||
{
|
||||
- loc -= 4;
|
||||
- if (loc != sec->contents)
|
||||
- {
|
||||
- BFD_ASSERT (0);
|
||||
- memset (sec->contents + 4, 0, loc - sec->contents);
|
||||
- loc = sec->contents;
|
||||
- }
|
||||
+ /* xgettext:c-format */
|
||||
+ _bfd_error_handler (_("%pB: corrupted group section: `%pA'"),
|
||||
+ abfd, sec);
|
||||
+ bfd_set_error (bfd_error_bad_value);
|
||||
+ *failedptr = true;
|
||||
+ return;
|
||||
}
|
||||
|
||||
H_PUT_32 (abfd, sec->flags & SEC_LINK_ONCE ? GRP_COMDAT : 0, loc);
|
||||
Only in binutils-2.43.1/bfd: elf.c.orig
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
--- binutils.orig/bfd/elfnn-aarch64.c 2025-02-07 13:42:20.961333141 +0000
|
||||
+++ binutils-with-gold-2.44/bfd/elfnn-aarch64.c 2025-02-07 13:42:29.781353740 +0000
|
||||
@@ -10162,7 +10162,8 @@ elfNN_aarch64_init_small_plt0_entry (bfd
|
||||
/* PR 26312: Explicitly set the sh_entsize to 0 so that
|
||||
consumers do not think that the section contains fixed
|
||||
sized objects. */
|
||||
- elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||
+ if (elf_section_data (htab->root.splt->output_section) != NULL)
|
||||
+ elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||
|
||||
plt_got_2nd_ent = (htab->root.sgotplt->output_section->vma
|
||||
+ htab->root.sgotplt->output_offset
|
||||
|
|
@ -51,9 +51,10 @@ diff -rup binutils.orig/configure binutils-2.40/configure
|
|||
|
||||
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
--- binutils.orig/configure.ac 2024-11-26 15:08:50.162328683 +0000
|
||||
+++ binutils-2.43.50-1686dc7079f/configure.ac 2024-11-26 15:08:56.929374527 +0000
|
||||
@@ -1410,26 +1410,6 @@ if test -z "$LD"; then
|
||||
diff -rup binutils.orig/configure.ac binutils-2.40/configure.ac
|
||||
--- binutils.orig/configure.ac 2023-02-13 14:43:00.728877170 +0000
|
||||
+++ binutils-2.40/configure.ac 2023-02-13 14:43:13.671864892 +0000
|
||||
@@ -1435,26 +1435,6 @@ if test -z "$LD"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -79,4 +80,6 @@ diff -rup binutils.orig/configure binutils-2.40/configure
|
|||
-
|
||||
ACX_PROG_GNAT
|
||||
ACX_PROG_GDC
|
||||
ACX_PROG_CARGO
|
||||
ACX_PROG_CMP_IGNORE_INITIAL
|
||||
Only in binutils-2.40: configure.ac.orig
|
||||
Only in binutils-2.40: configure.orig
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
# The gold linker does not build if the target list includes s390x-linux
|
||||
# but does not include s390-linux. ie it needs the 32-bit target to be
|
||||
# enabled in order for the 64-bit target to work. On the other hand the
|
||||
# BFD library does not support the 32-bit s390 target. So this patch
|
||||
# "enhances" the gold configure script so that if s390x is listed, the
|
||||
# s390 target will automatically be added to the list as well.
|
||||
|
||||
diff -upr orig/gold/configure binutils-2.47/gold/configure
|
||||
--- orig/gold/configure 2026-07-27 09:38:54.907192013 +0100
|
||||
+++ binutils-2.47/gold/configure 2026-07-27 10:12:02.759629540 +0100
|
||||
@@ -5223,7 +5223,12 @@ if test -n "$enable_targets"; then
|
||||
for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
|
||||
result=`$ac_config_sub $targ 2>/dev/null`
|
||||
if test -n "$result"; then
|
||||
- canon_targets="$canon_targets $result"
|
||||
+ canon_targets="$canon_targets $result" ;
|
||||
+ case "$result" in
|
||||
+ s390x-*)
|
||||
+ canon_targets="$canon_targets s390-gnu-linux"
|
||||
+ ;;
|
||||
+ esac
|
||||
else
|
||||
# Permit unrecognized target names, like "all".
|
||||
canon_targets="$canon_targets $targ"
|
||||
diff -upr orig/gold/configure.ac binutils-2.47/gold/configure.ac
|
||||
--- orig/gold/configure.ac 2026-07-27 09:38:54.907192013 +0100
|
||||
+++ binutils-2.47/gold/configure.ac 2026-07-27 10:18:18.480766140 +0100
|
||||
@@ -133,6 +133,12 @@ if test -n "$enable_targets"; then
|
||||
result=`$ac_config_sub $targ 2>/dev/null`
|
||||
if test -n "$result"; then
|
||||
canon_targets="$canon_targets $result"
|
||||
+ # Hack: Enable the s390-linux target if s390x-linux is enabled.
|
||||
+ case "$result" in
|
||||
+ s390x-*)
|
||||
+ canon_targets="$canon_targets s390-gnu-linux"
|
||||
+ ;;
|
||||
+ esac
|
||||
else
|
||||
# Permit unrecognized target names, like "all".
|
||||
canon_targets="$canon_targets $targ"
|
||||
|
|
@ -24,6 +24,26 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
|
|||
else
|
||||
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
|
||||
if test "$targ_extra_obj" != ""; then
|
||||
--- binutils.orig/ld/configure.tgt 2020-04-20 12:35:12.465301359 +0100
|
||||
+++ binutils-2.34/ld/configure.tgt 2020-04-20 14:17:52.123066333 +0100
|
||||
@@ -220,7 +220,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
|
||||
targ_extra_emuls="elf32bfin"
|
||||
targ_extra_libpath=$targ_extra_emuls
|
||||
;;
|
||||
-bpf-*-*) targ_emul=elf64bpf
|
||||
+bpf-* | bpf-*-*) targ_emul=elf64bpf
|
||||
;;
|
||||
cr16-*-elf*) targ_emul=elf32cr16
|
||||
;;
|
||||
@@ -1026,7 +1026,7 @@ z8k-*-coff) targ_emul=z8002
|
||||
targ_extra_ofiles=
|
||||
;;
|
||||
*)
|
||||
- echo 2>&1 "*** ld does not support target ${targ}"
|
||||
+ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY"
|
||||
echo 2>&1 "*** see ld/configure.tgt for supported targets"
|
||||
exit 1
|
||||
|
||||
--- binutils.orig/bfd/config.bfd 2020-04-20 12:35:13.038297375 +0100
|
||||
+++ binutils-2.34/bfd/config.bfd 2020-04-20 14:25:26.452869193 +0100
|
||||
@@ -473,7 +473,7 @@ case "${targ}" in
|
||||
|
|
@ -35,14 +55,12 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
|
|||
targ_defvec=bpf_elf64_le_vec
|
||||
targ_selvecs=bpf_elf64_be_vec
|
||||
targ_underscore=yes
|
||||
--- binutils.orig/ld/configure.tgt 2026-01-05 08:51:02.908224792 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/ld/configure.tgt 2026-01-05 08:51:55.852677409 +0000
|
||||
@@ -255,7 +255,7 @@ bfin-*-uclinux*) targ_emul=elf32bfin;
|
||||
bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
|
||||
targ_extra_libpath=elf32bfin
|
||||
;;
|
||||
-bpf-*-*) targ_emul=elf64bpf
|
||||
+bpf-* | bpf-*-*) targ_emul=elf64bpf
|
||||
;;
|
||||
cr16-*-elf*) targ_emul=elf32cr16
|
||||
;;
|
||||
@@ -1427,7 +1427,7 @@ case "${targ}" in
|
||||
;;
|
||||
|
||||
*)
|
||||
- echo 1>&2 "*** BFD does not support target ${targ}."
|
||||
+ echo 1>&2 "*** BFD does not support target '${targ}'. Honest."
|
||||
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
|
||||
exit 1
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -1,52 +0,0 @@
|
|||
diff -rup binutils.orig/bfd/elflink.c binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c
|
||||
--- binutils.orig/bfd/elflink.c 2026-01-14 09:21:14.835847967 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c 2026-01-14 09:23:48.780495205 +0000
|
||||
@@ -13786,7 +13786,7 @@ _bfd_elf_final_link (bfd *abfd, struct b
|
||||
{
|
||||
if (info->textrel_check == textrel_check_error)
|
||||
info->callbacks->einfo
|
||||
- (_("%P%X: read-only segment has dynamic relocations\n"));
|
||||
+ (_("%P%X: error: read-only segment has dynamic relocations\n"));
|
||||
else if (bfd_link_dll (info))
|
||||
info->callbacks->einfo
|
||||
(_("%P: warning: creating DT_TEXTREL in a shared object\n"));
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:21:15.248851537 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:22:24.603416270 +0000
|
||||
@@ -1,5 +1,5 @@
|
||||
#source: dt-memtag.s
|
||||
-#ld: -shared -z memtag-mode=async
|
||||
+#ld: -shared -z memtag-mode=async -z notext
|
||||
#readelf: -d
|
||||
|
||||
#...
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:21:15.248851537 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:24:19.594780414 +0000
|
||||
@@ -1,5 +1,5 @@
|
||||
#source: dt-memtag.s
|
||||
-#ld: -shared -z memtag-stack
|
||||
+#ld: -shared -z memtag-stack -z notext
|
||||
#readelf: -d
|
||||
|
||||
#...
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:21:15.246851520 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:24:45.363485698 +0000
|
||||
@@ -1,5 +1,5 @@
|
||||
#source: relr-text.s
|
||||
-#ld: -pie -z pack-relative-relocs -T relocs.ld
|
||||
+#ld: -pie -z pack-relative-relocs -T relocs.ld -z notext
|
||||
#readelf: -drW
|
||||
|
||||
#...
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:21:15.246851520 +0000
|
||||
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:25:06.651664713 +0000
|
||||
@@ -1,5 +1,5 @@
|
||||
#source: relr-text.s
|
||||
-#ld: -shared -z pack-relative-relocs -T relocs.ld
|
||||
+#ld: -shared -z pack-relative-relocs -T relocs.ld -z notext
|
||||
#readelf: -drW
|
||||
|
||||
#...
|
||||
28
binutils-ld-gen-dynamic-relocs.patch
Normal file
28
binutils-ld-gen-dynamic-relocs.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
From 75086e9de1707281172cc77f178e7949a4414ed0 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed, 5 Feb 2025 13:26:51 +0000
|
||||
Subject: [PATCH] Prevent an abort in the bfd linker when attempting to
|
||||
generate dynamic relocs for a corrupt input file.
|
||||
|
||||
PR 32638
|
||||
|
||||
diff -rup binutils.orig/bfd/elf64-x86-64.c binutils-2.43.1/bfd/elf64-x86-64.c
|
||||
--- binutils.orig/bfd/elf64-x86-64.c 2025-02-11 10:40:56.262887171 +0000
|
||||
+++ binutils-2.43.1/bfd/elf64-x86-64.c 2025-02-11 10:41:26.312036385 +0000
|
||||
@@ -4951,6 +4951,15 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
|
||||
|
||||
if (generate_dynamic_reloc)
|
||||
{
|
||||
+ /* If the relgot section has not been created, then
|
||||
+ generate an error instead of a reloc. cf PR 32638. */
|
||||
+ if (relgot == NULL || relgot->size == 0)
|
||||
+ {
|
||||
+ info->callbacks->einfo (_("%F%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"),
|
||||
+ output_bfd);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if (relative_reloc_name != NULL
|
||||
&& htab->params->report_relative_reloc)
|
||||
_bfd_x86_elf_link_report_relative_reloc
|
||||
Only in binutils-2.43.1/bfd: elf64-x86-64.c.orig
|
||||
464
binutils-ld-sym-hashes.patch
Normal file
464
binutils-ld-sym-hashes.patch
Normal file
|
|
@ -0,0 +1,464 @@
|
|||
commit b425859021d17adf62f06fb904797cf8642986ad
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed Feb 5 16:27:38 2025 +0000
|
||||
|
||||
Fix another illegal memory access triggered by corrupt ELF input files.
|
||||
|
||||
PR 32644
|
||||
|
||||
commit 931494c9a89558acb36a03a340c01726545eef24
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed Feb 5 15:43:04 2025 +0000
|
||||
|
||||
Add even more checks for corrupt input when processing relocations for ELF files.
|
||||
|
||||
PR 32643
|
||||
|
||||
commit 18cc11a2771d9e40180485da9a4fb660c03efac3
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed Feb 5 14:31:10 2025 +0000
|
||||
|
||||
Prevent illegal memory access when checking relocs in a corrupt ELF binary.
|
||||
|
||||
PR 32641
|
||||
|
||||
commit f9978defb6fab0bd8583942d97c112b0932ac814
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Wed Feb 5 11:15:11 2025 +0000
|
||||
|
||||
Prevent illegal memory access when indexing into the sym_hashes array of the elf bfd cookie structure.
|
||||
|
||||
PR 32636
|
||||
|
||||
diff -rup binutils.orig/bfd/elf-bfd.h binutils-2.43.1/bfd/elf-bfd.h
|
||||
--- binutils.orig/bfd/elf-bfd.h 2025-02-11 10:58:25.223874250 +0000
|
||||
+++ binutils-2.43.1/bfd/elf-bfd.h 2025-02-11 11:13:12.177965286 +0000
|
||||
@@ -3147,6 +3147,9 @@ extern bool _bfd_elf_link_mmap_section_c
|
||||
extern void _bfd_elf_link_munmap_section_contents
|
||||
(asection *);
|
||||
|
||||
+extern struct elf_link_hash_entry * _bfd_elf_get_link_hash_entry
|
||||
+ (struct elf_link_hash_entry **, unsigned int, Elf_Internal_Shdr *);
|
||||
+
|
||||
/* Large common section. */
|
||||
extern asection _bfd_elf_large_com_section;
|
||||
|
||||
diff -rup binutils.orig/bfd/elflink.c binutils-2.43.1/bfd/elflink.c
|
||||
--- binutils.orig/bfd/elflink.c 2025-02-11 10:58:25.256874290 +0000
|
||||
+++ binutils-2.43.1/bfd/elflink.c 2025-02-11 11:11:22.536375589 +0000
|
||||
@@ -96,22 +96,64 @@ _bfd_elf_link_keep_memory (struct bfd_li
|
||||
return true;
|
||||
}
|
||||
|
||||
-asection *
|
||||
-_bfd_elf_section_for_symbol (struct elf_reloc_cookie *cookie,
|
||||
- unsigned long r_symndx,
|
||||
- bool discard)
|
||||
+static struct elf_link_hash_entry *
|
||||
+get_link_hash_entry (struct elf_link_hash_entry ** sym_hashes,
|
||||
+ unsigned int symndx,
|
||||
+ unsigned int ext_sym_start)
|
||||
+{
|
||||
+ if (sym_hashes == NULL
|
||||
+ /* Guard against corrupt input. See PR 32636 for an example. */
|
||||
+ || symndx < ext_sym_start)
|
||||
+ return NULL;
|
||||
+
|
||||
+ struct elf_link_hash_entry *h = sym_hashes[symndx - ext_sym_start];
|
||||
+
|
||||
+ /* The hash might be empty. See PR 32641 for an example of this. */
|
||||
+ if (h == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ while (h->root.type == bfd_link_hash_indirect
|
||||
+ || h->root.type == bfd_link_hash_warning)
|
||||
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+
|
||||
+ return h;
|
||||
+}
|
||||
+
|
||||
+struct elf_link_hash_entry *
|
||||
+_bfd_elf_get_link_hash_entry (struct elf_link_hash_entry ** sym_hashes,
|
||||
+ unsigned int symndx,
|
||||
+ Elf_Internal_Shdr * symtab_hdr)
|
||||
+{
|
||||
+ if (symtab_hdr == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ return get_link_hash_entry (sym_hashes, symndx, symtab_hdr->sh_info);
|
||||
+}
|
||||
+
|
||||
+static struct elf_link_hash_entry *
|
||||
+get_ext_sym_hash_from_cookie (struct elf_reloc_cookie *cookie, unsigned long r_symndx)
|
||||
{
|
||||
+ if (cookie == NULL || cookie->sym_hashes == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
if (r_symndx >= cookie->locsymcount
|
||||
|| ELF_ST_BIND (cookie->locsyms[r_symndx].st_info) != STB_LOCAL)
|
||||
- {
|
||||
- struct elf_link_hash_entry *h;
|
||||
+ return get_link_hash_entry (cookie->sym_hashes, r_symndx, cookie->extsymoff);
|
||||
|
||||
- h = cookie->sym_hashes[r_symndx - cookie->extsymoff];
|
||||
+ return NULL;
|
||||
+}
|
||||
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+asection *
|
||||
+_bfd_elf_section_for_symbol (struct elf_reloc_cookie *cookie,
|
||||
+ unsigned long r_symndx,
|
||||
+ bool discard)
|
||||
+{
|
||||
+ struct elf_link_hash_entry *h;
|
||||
|
||||
+ h = get_ext_sym_hash_from_cookie (cookie, r_symndx);
|
||||
+
|
||||
+ if (h != NULL)
|
||||
+ {
|
||||
if ((h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
&& discarded_section (h->root.u.def.section))
|
||||
@@ -119,21 +161,20 @@ _bfd_elf_section_for_symbol (struct elf_
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
- else
|
||||
- {
|
||||
- /* It's not a relocation against a global symbol,
|
||||
- but it could be a relocation against a local
|
||||
- symbol for a discarded section. */
|
||||
- asection *isec;
|
||||
- Elf_Internal_Sym *isym;
|
||||
|
||||
- /* Need to: get the symbol; get the section. */
|
||||
- isym = &cookie->locsyms[r_symndx];
|
||||
- isec = bfd_section_from_elf_index (cookie->abfd, isym->st_shndx);
|
||||
- if (isec != NULL
|
||||
- && discard ? discarded_section (isec) : 1)
|
||||
- return isec;
|
||||
- }
|
||||
+ /* It's not a relocation against a global symbol,
|
||||
+ but it could be a relocation against a local
|
||||
+ symbol for a discarded section. */
|
||||
+ asection *isec;
|
||||
+ Elf_Internal_Sym *isym;
|
||||
+
|
||||
+ /* Need to: get the symbol; get the section. */
|
||||
+ isym = &cookie->locsyms[r_symndx];
|
||||
+ isec = bfd_section_from_elf_index (cookie->abfd, isym->st_shndx);
|
||||
+ if (isec != NULL
|
||||
+ && discard ? discarded_section (isec) : 1)
|
||||
+ return isec;
|
||||
+
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -9058,7 +9099,6 @@ set_symbol_value (bfd *bfd_with_globals,
|
||||
size_t symidx,
|
||||
bfd_vma val)
|
||||
{
|
||||
- struct elf_link_hash_entry **sym_hashes;
|
||||
struct elf_link_hash_entry *h;
|
||||
size_t extsymoff = locsymcount;
|
||||
|
||||
@@ -9081,12 +9121,12 @@ set_symbol_value (bfd *bfd_with_globals,
|
||||
|
||||
/* It is a global symbol: set its link type
|
||||
to "defined" and give it a value. */
|
||||
-
|
||||
- sym_hashes = elf_sym_hashes (bfd_with_globals);
|
||||
- h = sym_hashes [symidx - extsymoff];
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+ h = get_link_hash_entry (elf_sym_hashes (bfd_with_globals), symidx, extsymoff);
|
||||
+ if (h == NULL)
|
||||
+ {
|
||||
+ /* FIXMEL What should we do ? */
|
||||
+ return;
|
||||
+ }
|
||||
h->root.type = bfd_link_hash_defined;
|
||||
h->root.u.def.value = val;
|
||||
h->root.u.def.section = bfd_abs_section_ptr;
|
||||
@@ -11568,10 +11608,19 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
|| (elf_bad_symtab (input_bfd)
|
||||
&& flinfo->sections[symndx] == NULL))
|
||||
{
|
||||
- struct elf_link_hash_entry *h = sym_hashes[symndx - extsymoff];
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+ struct elf_link_hash_entry *h;
|
||||
+
|
||||
+ h = get_link_hash_entry (sym_hashes, symndx, extsymoff);
|
||||
+ if (h == NULL)
|
||||
+ {
|
||||
+ _bfd_error_handler
|
||||
+ /* xgettext:c-format */
|
||||
+ (_("error: %pB: unable to create group section symbol"),
|
||||
+ input_bfd);
|
||||
+ bfd_set_error (bfd_error_bad_value);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
/* Arrange for symbol to be output. */
|
||||
h->indx = -2;
|
||||
elf_section_data (osec)->this_hdr.sh_info = -2;
|
||||
@@ -11706,7 +11755,7 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
|| (elf_bad_symtab (input_bfd)
|
||||
&& flinfo->sections[r_symndx] == NULL))
|
||||
{
|
||||
- h = sym_hashes[r_symndx - extsymoff];
|
||||
+ h = get_link_hash_entry (sym_hashes, r_symndx, extsymoff);
|
||||
|
||||
/* Badly formatted input files can contain relocs that
|
||||
reference non-existant symbols. Check here so that
|
||||
@@ -11715,17 +11764,13 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
{
|
||||
_bfd_error_handler
|
||||
/* xgettext:c-format */
|
||||
- (_("error: %pB contains a reloc (%#" PRIx64 ") for section %pA "
|
||||
+ (_("error: %pB contains a reloc (%#" PRIx64 ") for section '%pA' "
|
||||
"that references a non-existent global symbol"),
|
||||
input_bfd, (uint64_t) rel->r_info, o);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return false;
|
||||
}
|
||||
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
-
|
||||
s_type = h->type;
|
||||
|
||||
/* If a plugin symbol is referenced from a non-IR file,
|
||||
@@ -11941,7 +11986,6 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
&& flinfo->sections[r_symndx] == NULL))
|
||||
{
|
||||
struct elf_link_hash_entry *rh;
|
||||
- unsigned long indx;
|
||||
|
||||
/* This is a reloc against a global symbol. We
|
||||
have not yet output all the local symbols, so
|
||||
@@ -11950,11 +11994,13 @@ elf_link_input_bfd (struct elf_final_lin
|
||||
reloc to point to the global hash table entry
|
||||
for this symbol. The symbol index is then
|
||||
set at the end of bfd_elf_final_link. */
|
||||
- indx = r_symndx - extsymoff;
|
||||
- rh = elf_sym_hashes (input_bfd)[indx];
|
||||
- while (rh->root.type == bfd_link_hash_indirect
|
||||
- || rh->root.type == bfd_link_hash_warning)
|
||||
- rh = (struct elf_link_hash_entry *) rh->root.u.i.link;
|
||||
+ rh = get_link_hash_entry (elf_sym_hashes (input_bfd),
|
||||
+ r_symndx, extsymoff);
|
||||
+ if (rh == NULL)
|
||||
+ {
|
||||
+ /* FIXME: Generate an error ? */
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
/* Setting the index to -2 tells
|
||||
elf_link_output_extsym that this symbol is
|
||||
@@ -13958,25 +14004,21 @@ _bfd_elf_gc_mark_hook (asection *sec,
|
||||
struct elf_link_hash_entry *h,
|
||||
Elf_Internal_Sym *sym)
|
||||
{
|
||||
- if (h != NULL)
|
||||
+ if (h == NULL)
|
||||
+ return bfd_section_from_elf_index (sec->owner, sym->st_shndx);
|
||||
+
|
||||
+ switch (h->root.type)
|
||||
{
|
||||
- switch (h->root.type)
|
||||
- {
|
||||
- case bfd_link_hash_defined:
|
||||
- case bfd_link_hash_defweak:
|
||||
- return h->root.u.def.section;
|
||||
+ case bfd_link_hash_defined:
|
||||
+ case bfd_link_hash_defweak:
|
||||
+ return h->root.u.def.section;
|
||||
|
||||
- case bfd_link_hash_common:
|
||||
- return h->root.u.c.p->section;
|
||||
+ case bfd_link_hash_common:
|
||||
+ return h->root.u.c.p->section;
|
||||
|
||||
- default:
|
||||
- break;
|
||||
- }
|
||||
+ default:
|
||||
+ return NULL;
|
||||
}
|
||||
- else
|
||||
- return bfd_section_from_elf_index (sec->owner, sym->st_shndx);
|
||||
-
|
||||
- return NULL;
|
||||
}
|
||||
|
||||
/* Return the debug definition section. */
|
||||
@@ -14025,56 +14067,49 @@ _bfd_elf_gc_mark_rsec (struct bfd_link_i
|
||||
if (r_symndx == STN_UNDEF)
|
||||
return NULL;
|
||||
|
||||
- if (r_symndx >= cookie->locsymcount
|
||||
- || ELF_ST_BIND (cookie->locsyms[r_symndx].st_info) != STB_LOCAL)
|
||||
+ h = get_ext_sym_hash_from_cookie (cookie, r_symndx);
|
||||
+ if (h == NULL)
|
||||
{
|
||||
- bool was_marked;
|
||||
+ /* A corrup tinput file can lead to a situation where the index
|
||||
+ does not reference either a local or an external symbol. */
|
||||
+ if (r_symndx >= cookie->locsymcount)
|
||||
+ return NULL;
|
||||
|
||||
- h = cookie->sym_hashes[r_symndx - cookie->extsymoff];
|
||||
- if (h == NULL)
|
||||
- {
|
||||
- info->callbacks->einfo (_("%F%P: corrupt input: %pB\n"),
|
||||
- sec->owner);
|
||||
- return NULL;
|
||||
- }
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+ return (*gc_mark_hook) (sec, info, cookie->rel, NULL,
|
||||
+ &cookie->locsyms[r_symndx]);
|
||||
+ }
|
||||
|
||||
- was_marked = h->mark;
|
||||
- h->mark = 1;
|
||||
- /* Keep all aliases of the symbol too. If an object symbol
|
||||
- needs to be copied into .dynbss then all of its aliases
|
||||
- should be present as dynamic symbols, not just the one used
|
||||
- on the copy relocation. */
|
||||
- hw = h;
|
||||
- while (hw->is_weakalias)
|
||||
- {
|
||||
- hw = hw->u.alias;
|
||||
- hw->mark = 1;
|
||||
- }
|
||||
+ bool was_marked = h->mark;
|
||||
|
||||
- if (!was_marked && h->start_stop && !h->root.ldscript_def)
|
||||
- {
|
||||
- if (info->start_stop_gc)
|
||||
- return NULL;
|
||||
+ h->mark = 1;
|
||||
+ /* Keep all aliases of the symbol too. If an object symbol
|
||||
+ needs to be copied into .dynbss then all of its aliases
|
||||
+ should be present as dynamic symbols, not just the one used
|
||||
+ on the copy relocation. */
|
||||
+ hw = h;
|
||||
+ while (hw->is_weakalias)
|
||||
+ {
|
||||
+ hw = hw->u.alias;
|
||||
+ hw->mark = 1;
|
||||
+ }
|
||||
|
||||
- /* To work around a glibc bug, mark XXX input sections
|
||||
- when there is a reference to __start_XXX or __stop_XXX
|
||||
- symbols. */
|
||||
- else if (start_stop != NULL)
|
||||
- {
|
||||
- asection *s = h->u2.start_stop_section;
|
||||
- *start_stop = true;
|
||||
- return s;
|
||||
- }
|
||||
- }
|
||||
+ if (!was_marked && h->start_stop && !h->root.ldscript_def)
|
||||
+ {
|
||||
+ if (info->start_stop_gc)
|
||||
+ return NULL;
|
||||
|
||||
- return (*gc_mark_hook) (sec, info, cookie->rel, h, NULL);
|
||||
+ /* To work around a glibc bug, mark XXX input sections
|
||||
+ when there is a reference to __start_XXX or __stop_XXX
|
||||
+ symbols. */
|
||||
+ else if (start_stop != NULL)
|
||||
+ {
|
||||
+ asection *s = h->u2.start_stop_section;
|
||||
+ *start_stop = true;
|
||||
+ return s;
|
||||
+ }
|
||||
}
|
||||
|
||||
- return (*gc_mark_hook) (sec, info, cookie->rel, NULL,
|
||||
- &cookie->locsyms[r_symndx]);
|
||||
+ return (*gc_mark_hook) (sec, info, cookie->rel, h, NULL);
|
||||
}
|
||||
|
||||
/* COOKIE->rel describes a relocation against section SEC, which is
|
||||
@@ -15095,17 +15130,12 @@ bfd_elf_reloc_symbol_deleted_p (bfd_vma
|
||||
if (r_symndx == STN_UNDEF)
|
||||
return true;
|
||||
|
||||
- if (r_symndx >= rcookie->locsymcount
|
||||
- || ELF_ST_BIND (rcookie->locsyms[r_symndx].st_info) != STB_LOCAL)
|
||||
- {
|
||||
- struct elf_link_hash_entry *h;
|
||||
-
|
||||
- h = rcookie->sym_hashes[r_symndx - rcookie->extsymoff];
|
||||
-
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+ struct elf_link_hash_entry *h;
|
||||
|
||||
+ h = get_ext_sym_hash_from_cookie (rcookie, r_symndx);
|
||||
+
|
||||
+ if (h != NULL)
|
||||
+ {
|
||||
if ((h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
&& (h->root.u.def.section->owner != rcookie->abfd
|
||||
@@ -15115,6 +15145,10 @@ bfd_elf_reloc_symbol_deleted_p (bfd_vma
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (r_symndx >= rcookie->locsymcount)
|
||||
+ /* This can happen with corrupt input. */
|
||||
+ return false;
|
||||
+
|
||||
/* It's not a relocation against a global symbol,
|
||||
but it could be a relocation against a local
|
||||
symbol for a discarded section. */
|
||||
diff -rup binutils.orig/bfd/elfxx-x86.c binutils-2.43.1/bfd/elfxx-x86.c
|
||||
--- binutils.orig/bfd/elfxx-x86.c 2025-02-11 10:58:25.307874350 +0000
|
||||
+++ binutils-2.43.1/bfd/elfxx-x86.c 2025-02-11 11:15:21.937392450 +0000
|
||||
@@ -972,15 +972,7 @@ _bfd_x86_elf_check_relocs (bfd *abfd,
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
- if (r_symndx < symtab_hdr->sh_info)
|
||||
- h = NULL;
|
||||
- else
|
||||
- {
|
||||
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
- }
|
||||
+ h = _bfd_elf_get_link_hash_entry (sym_hashes, r_symndx, symtab_hdr);
|
||||
|
||||
if (X86_NEED_DYNAMIC_RELOC_TYPE_P (is_x86_64, r_type)
|
||||
&& NEED_DYNAMIC_RELOCATION_P (is_x86_64, info, true, h, sec,
|
||||
@@ -1205,10 +1197,12 @@ _bfd_x86_elf_link_relax_section (bfd *ab
|
||||
else
|
||||
{
|
||||
/* Get H and SEC for GENERATE_DYNAMIC_RELOCATION_P below. */
|
||||
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
|
||||
- while (h->root.type == bfd_link_hash_indirect
|
||||
- || h->root.type == bfd_link_hash_warning)
|
||||
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
+ h = _bfd_elf_get_link_hash_entry (sym_hashes, r_symndx, symtab_hdr);
|
||||
+ if (h == NULL)
|
||||
+ {
|
||||
+ /* FIXMEL: Issue an error message ? */
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
if (h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
22
binutils-linker-script-build-id-placement.patch
Normal file
22
binutils-linker-script-build-id-placement.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
--- binutils.orig/ld/scripttempl/elf.sc 2024-08-14 08:32:58.565047220 +0100
|
||||
+++ binutils-2.43/ld/scripttempl/elf.sc 2024-08-14 08:34:07.837496401 +0100
|
||||
@@ -425,7 +425,6 @@ emit_early_ro()
|
||||
{
|
||||
cat <<EOF
|
||||
${INITIAL_READONLY_SECTIONS}
|
||||
- .note.gnu.build-id ${RELOCATING-0}: { *(.note.gnu.build-id) }
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -436,6 +435,11 @@ cat <<EOF
|
||||
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
|
||||
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
|
||||
${CREATE_PIE+${RELOCATING+PROVIDE (__executable_start = ${SHLIB_TEXT_START_ADDR}); . = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
|
||||
+
|
||||
+ /* Place build-id as close to the ELF headers as possible. This
|
||||
+ maximises the chance the build-id will be present in core files,
|
||||
+ which GDB can use to improve the debug experience. */
|
||||
+ .note.gnu.build-id ${RELOCATING-0}: { *(.note.gnu.build-id) }
|
||||
EOF
|
||||
}
|
||||
|
||||
45
binutils-ppc64-TLS-no_plt-optimization-bug.patch
Normal file
45
binutils-ppc64-TLS-no_plt-optimization-bug.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From 1686dc7079f1c03bdaffd2f779b92aa2b7ad97b5 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Modra <amodra@gmail.com>
|
||||
Date: Tue, 26 Nov 2024 08:24:19 +1030
|
||||
Subject: [PATCH] PR32387 ppc64 TLS optimization bug with -fno-plt code
|
||||
|
||||
The inline plt code emitted by gcc is incompatible with the
|
||||
linker/ld.so --tls-get-addr-optimize scheme. This is the runtime
|
||||
optimisation where the first call to __tls_get_addr results in
|
||||
__tls_get_addr updating the tls_index pair, then the special linker
|
||||
stub using that to short-circuit second and subsequent calls for a
|
||||
given tls symbol. Enabled by default when the linker sees
|
||||
__tls_get_addr_opt is preseent, and enabled in ld.so when DT_PPC64_OPT
|
||||
has PPC64_OPT_TLS set. Note that this is distinct from link-time tls
|
||||
optimisation.
|
||||
|
||||
PR 32387
|
||||
* elf64-ppc.c (ppc64_elf_check_relocs): Disable tls_get_addr_opt
|
||||
on detecting inline plt calls to __tls_get_addr.
|
||||
---
|
||||
bfd/elf64-ppc.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||||
index 9674fcdd6be..f7debc1edbc 100644
|
||||
--- a/bfd/elf64-ppc.c
|
||||
+++ b/bfd/elf64-ppc.c
|
||||
@@ -4915,6 +4915,15 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
tls_type = 0;
|
||||
switch (r_type)
|
||||
{
|
||||
+ case R_PPC64_PLTSEQ:
|
||||
+ case R_PPC64_PLTSEQ_NOTOC:
|
||||
+ /* Inline plt call code emitted by gcc doesn't support
|
||||
+ modifying the tls_index words to short-circuit
|
||||
+ __tls_get_addr calls. See PR32387. */
|
||||
+ if (h != NULL && (h == tga || h == dottga))
|
||||
+ htab->params->tls_get_addr_opt = 0;
|
||||
+ break;
|
||||
+
|
||||
case R_PPC64_TLSGD:
|
||||
case R_PPC64_TLSLD:
|
||||
/* These special tls relocs tie a call to __tls_get_addr with
|
||||
--
|
||||
2.43.5
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp
|
||||
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:02:23.738336155 +0000
|
||||
+++ binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:03:17.894485264 +0000
|
||||
@@ -1413,14 +1413,6 @@ if { [isnative] && [check_compiler_avail
|
||||
"libprotected-func-2b.so" \
|
||||
] \
|
||||
[list \
|
||||
- "Build protected-func-2 without PIE" \
|
||||
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
|
||||
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
- { protected-func-1b.c } \
|
||||
- {} \
|
||||
- "protected-func-2" \
|
||||
- ] \
|
||||
- [list \
|
||||
"Build libprotected-func-2c.so" \
|
||||
"-shared" \
|
||||
"-fPIC -Wa,-mx86-used-note=yes" \
|
||||
@@ -1429,14 +1421,6 @@ if { [isnative] && [check_compiler_avail
|
||||
"libprotected-func-2c.so" \
|
||||
] \
|
||||
[list \
|
||||
- "Build protected-func-2a without PIE" \
|
||||
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
|
||||
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
- { protected-func-1b.c } \
|
||||
- {} \
|
||||
- "protected-func-2a" \
|
||||
- ] \
|
||||
- [list \
|
||||
"Build libprotected-data-1a.so" \
|
||||
"-shared -z noindirect-extern-access" \
|
||||
"-fPIC -Wa,-mx86-used-note=yes" \
|
||||
|
|
@ -134,6 +134,19 @@ diff -rup binutils.orig/ld/testsuite/ld-elf/tls.exp binutils-2.40/ld/testsuite/l
|
|||
|
||||
objcopy_test_without_global_symbol
|
||||
|
||||
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2024-02-08 10:12:23.739591113 +0000
|
||||
+++ binutils-2.42/ld/testsuite/ld-ifunc/ifunc.exp 2024-02-08 10:14:58.243670115 +0000
|
||||
@@ -666,6 +666,10 @@ run_cc_link_tests [list \
|
||||
] \
|
||||
]
|
||||
|
||||
+if {[istarget "riscv*-*-*"]} {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
run_ld_link_exec_tests [list \
|
||||
[list \
|
||||
"Run pr18808" \
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:21:47.926570551 +0100
|
||||
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:24:26.152502612 +0100
|
||||
|
|
@ -172,98 +185,3 @@ diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.43.
|
|||
-.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1
|
||||
+.*:[ ]+[0-9a-f]+[ ]+.*
|
||||
#pass
|
||||
--- binutils-with-gold-2.45.50-79b2b564fec.orig/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:52:30.684689609 +0100
|
||||
+++ binutils-with-gold-2.45.50-79b2b564fec/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:53:12.837859447 +0100
|
||||
@@ -30,6 +30,6 @@ Disassembly of section \.plt:
|
||||
|
||||
[0-9a-f]+ <bar@plt>:
|
||||
.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
|
||||
-.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x1
|
||||
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x[0-9a-f]+
|
||||
.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <bar>
|
||||
.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3
|
||||
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp
|
||||
--- binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp 2025-12-02 12:47:19.063123207 +0000
|
||||
+++ binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp 2025-12-04 12:39:26.079989597 +0000
|
||||
@@ -602,14 +602,19 @@ proc strip_test { } {
|
||||
set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
if ![string equal "" $exec_output] {
|
||||
- fail $test
|
||||
+ fail "$test (warnings in linker output)"
|
||||
+ verbose $exec_output
|
||||
return
|
||||
}
|
||||
|
||||
set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
if ![string match "*: no symbols*" $exec_output] {
|
||||
- fail $test
|
||||
+
|
||||
+ # The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||
+ setup_xfail riscv*-*-*
|
||||
+
|
||||
+ fail "$test (symbols in nm output)"
|
||||
return
|
||||
}
|
||||
|
||||
@@ -659,6 +664,9 @@ proc strip_test_with_saving_a_symbol { }
|
||||
pass $test
|
||||
}
|
||||
|
||||
+# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||
+setup_xfail riscv*-*-*
|
||||
+
|
||||
strip_test_with_saving_a_symbol
|
||||
|
||||
# Test stripping an archive.
|
||||
@@ -1503,7 +1519,7 @@ proc objcopy_test_without_global_symbol
|
||||
# in object files, so they will fail this test.
|
||||
setup_xfail aarch64*-*-* arm*-*-*
|
||||
# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||
-# setup_xfail riscv*-*-*
|
||||
+setup_xfail riscv*-*-*
|
||||
|
||||
objcopy_test_without_global_symbol
|
||||
|
||||
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp
|
||||
--- binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp 2025-12-02 12:47:19.201090894 +0000
|
||||
+++ binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp 2025-12-03 09:30:07.184360005 +0000
|
||||
@@ -1633,6 +1633,12 @@ proc compile_one_cc { src output additio
|
||||
proc check_ctf_available { } {
|
||||
global ctf_available_saved
|
||||
|
||||
+ # Skip CTF tests for the Risc-V target for now, as the
|
||||
+ # tests have not been tweaked to support the riscv format.
|
||||
+ if { [istarget "riscv*-*-linux*"] } {
|
||||
+ return 0
|
||||
+ }
|
||||
+
|
||||
if {![info exists ctf_available_saved]} {
|
||||
set ctf_available_saved 0
|
||||
|
||||
--- fred/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:37.205413649 +0000
|
||||
+++ binutils-with-gold-2.46.50-d712202846b/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:49.559358668 +0000
|
||||
@@ -803,6 +803,9 @@ proc prune_warnings_extra { text } {
|
||||
# Ignore warnings about linking objects with an old sframe format
|
||||
regsub -all {(^|\n)([^\n]* unexpected SFrame format version [^\n]*\n[^\n]* SFrame section ignored\n?)+} $text {\1} text
|
||||
|
||||
+ # Skip warnings about the LTO plugin being needed.
|
||||
+ regsub -all "(^|\n)(\[^\n\]*:\[^\n\]*plugin needed to handle lto object\[^\n\]*\n?)+" $text "\\1" text
|
||||
+
|
||||
return $text
|
||||
}
|
||||
|
||||
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:32:21.012274073 +0100
|
||||
+++ binutils-with-gold-2.46.50-48997323b0f/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:34:41.397899263 +0100
|
||||
@@ -1859,6 +1859,10 @@ run_cc_link_tests [list \
|
||||
"pr29655.so" \
|
||||
] \
|
||||
]
|
||||
+
|
||||
+# FIXME: Find out why the Risc-V fails this test.
|
||||
+setup_xfail "riscv64-*-*"
|
||||
+
|
||||
# PR 29655 (cont.): Check that in PIC code linked as PDE taking the address
|
||||
# of a function defined in a DSO results in the function address (from GOT)
|
||||
# and not the "canonical PLT" address from the PDE.
|
||||
|
|
|
|||
77
binutils-sframe-PR32879.patch
Normal file
77
binutils-sframe-PR32879.patch
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
From 3602da6fa285d6b22d87bcc39056e919e939ef07 Mon Sep 17 00:00:00 2001
|
||||
From: Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
|
||||
Date: Tue, 15 Apr 2025 12:20:40 +0300
|
||||
Subject: [PATCH] gas: sframe: fix handling of .cfi_def_cfa_register
|
||||
|
||||
Fix PR gas/32879 sframe: Assembler internal error when translating
|
||||
cfi_def_cfa_register
|
||||
|
||||
As per the documentation, .cfi_def_cfa_register modifies a rule for
|
||||
computing CFA; the register is updated, but the offset remains the same.
|
||||
|
||||
While translating .cfi_def_cfa_register into SFrame context, we use the
|
||||
information from last translated FRE to set the CFA offset. However,
|
||||
there may be cases when the last translated FRE is empty. Use last FRE
|
||||
only if available.
|
||||
|
||||
Signed-off-by: Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
|
||||
Signed-off-by: Indu Bhagat <indu.bhagat@oracle.com>
|
||||
---
|
||||
diff -rupN binutils-2.43.1.orig/gas/gen-sframe.c binutils-2.43.1/gas/gen-sframe.c
|
||||
--- binutils-2.43.1.orig/gas/gen-sframe.c 2025-07-21 10:18:20.701626832 +0100
|
||||
+++ binutils-2.43.1/gas/gen-sframe.c 2025-07-21 10:19:04.972504129 +0100
|
||||
@@ -1051,7 +1051,9 @@ sframe_xlate_do_def_cfa_register (struct
|
||||
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
|
||||
}
|
||||
sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.ri.reg);
|
||||
- sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset);
|
||||
+ if (last_fre)
|
||||
+ sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset);
|
||||
+
|
||||
cur_fre->merge_candidate = false;
|
||||
|
||||
return SFRAME_XLATE_OK;
|
||||
diff -rupN binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d
|
||||
--- binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d 2025-07-21 10:18:35.950185785 +0100
|
||||
@@ -0,0 +1,21 @@
|
||||
+#as: --gsframe
|
||||
+#objdump: --sframe=.sframe
|
||||
+#name: Check .cfi_def_cfa_register with no previous offset
|
||||
+#...
|
||||
+Contents of the SFrame section .sframe:
|
||||
+
|
||||
+ Header :
|
||||
+
|
||||
+ Version: SFRAME_VERSION_2
|
||||
+ Flags: NONE
|
||||
+#? CFA fixed FP offset: \-?\d+
|
||||
+#? CFA fixed RA offset: \-?\d+
|
||||
+ Num FDEs: 1
|
||||
+ Num FREs: 1
|
||||
+
|
||||
+ Function Index :
|
||||
+
|
||||
+ func idx \[0\]: pc = 0x0, size = 0 bytes
|
||||
+ STARTPC +CFA +FP +RA +
|
||||
+ 0+0000 +fp\+8 +u +f +
|
||||
+#pass
|
||||
diff -rupN binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s
|
||||
--- binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s 2025-07-21 10:18:35.950246411 +0100
|
||||
@@ -0,0 +1,4 @@
|
||||
+# Although not a useful construct by itself, ensure graceful handling.
|
||||
+ .cfi_startproc
|
||||
+ .cfi_def_cfa_register 6
|
||||
+ .cfi_endproc
|
||||
diff -rupN binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
|
||||
--- binutils-2.43.1.orig/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp 2025-07-21 10:18:20.756742820 +0100
|
||||
+++ binutils-2.43.1/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp 2025-07-21 10:19:33.756745567 +0100
|
||||
@@ -89,6 +89,7 @@ if { [istarget "x86_64-*-*"] && [gas_sfr
|
||||
if { [gas_x86_64_check] } then {
|
||||
set ASFLAGS "$ASFLAGS --64"
|
||||
run_dump_test "cfi-sframe-x86_64-1"
|
||||
+ run_dump_test "cfi-sframe-x86_64-2"
|
||||
set ASFLAGS "$old_ASFLAGS"
|
||||
}
|
||||
}
|
||||
|
|
@ -27,6 +27,17 @@
|
|||
if ![regexp $want $got] then {
|
||||
fail "$testname -s option $got\n"
|
||||
} else {
|
||||
--- binutils.orig/binutils/testsuite/binutils-all/objdump.exp 2023-08-03 13:09:07.631503783 +0100
|
||||
+++ binutils-2.41/binutils/testsuite/binutils-all/objdump.exp 2023-08-03 14:51:54.621295727 +0100
|
||||
@@ -921,7 +921,7 @@ proc test_objdump_S { } {
|
||||
}
|
||||
}
|
||||
|
||||
-test_objdump_S
|
||||
+# test_objdump_S
|
||||
|
||||
# Test objdump --private
|
||||
proc test_objdump_P {} {
|
||||
--- binutils.orig/ld/testsuite/ld-scripts/ld-version.d 2023-08-03 13:09:07.949504208 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-scripts/ld-version.d 2023-08-03 15:13:01.374590134 +0100
|
||||
@@ -4,4 +4,4 @@
|
||||
|
|
@ -63,7 +74,7 @@
|
|||
+++ binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp 2023-08-03 15:46:29.537416942 +0100
|
||||
@@ -1386,7 +1386,7 @@ if { [isnative] && [check_compiler_avail
|
||||
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
|
||||
"$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
{ protected-func-1b.c } \
|
||||
- {{error_output "pr28875-func.err"}} \
|
||||
+ {} \
|
||||
|
|
@ -72,13 +83,21 @@
|
|||
[list \
|
||||
@@ -1402,7 +1402,7 @@ if { [isnative] && [check_compiler_avail
|
||||
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
|
||||
"$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||
{ protected-func-1b.c } \
|
||||
- {{error_output "pr28875-func.err"}} \
|
||||
+ {} \
|
||||
"protected-func-2a" \
|
||||
] \
|
||||
[list \
|
||||
@@ -2155,7 +2155,6 @@ if { [isnative] && [check_compiler_avail
|
||||
}
|
||||
}
|
||||
|
||||
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
|
||||
undefined_weak "-fPIE" ""
|
||||
undefined_weak "-fPIE" "-pie"
|
||||
undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"
|
||||
--- binutils.orig/binutils/testsuite/binutils-all/addr2line.exp 2023-08-04 14:00:37.692356718 +0100
|
||||
+++ binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp 2023-08-04 14:04:32.627697316 +0100
|
||||
@@ -39,9 +39,9 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +\
|
||||
|
|
@ -170,6 +189,31 @@
|
|||
{pr29086.c} \
|
||||
{} \
|
||||
"pr29086" \
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/bti-plt-5.d binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-08-15 09:03:21.676463687 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-08-15 09:17:56.751533569 +0100
|
||||
@@ -12,8 +12,8 @@ Disassembly of section \.plt:
|
||||
[0-9a-f]+ <.*>:
|
||||
.*: d503245f bti c
|
||||
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
|
||||
-.*: 90000090 adrp x16, 410000 <.*>
|
||||
-.*: f9...... ldr x17, \[x16, #....\]
|
||||
+.*: 90000090 adrp x16, 4.0000 <.*>
|
||||
+.*: f9...... ldr x17, \[x16, #.*\]
|
||||
.*: 91...... add x16, x16, #0x...
|
||||
.*: d61f0220 br x17
|
||||
.*: d503201f nop
|
||||
@@ -21,8 +21,8 @@ Disassembly of section \.plt:
|
||||
|
||||
[0-9a-f]+ <.*>:
|
||||
.*: d503245f bti c
|
||||
-.*: 90000090 adrp x16, 410000 <.*>
|
||||
-.*: f9...... ldr x17, \[x16, #....\]
|
||||
+.*: 90000090 adrp x16, 4.0000 <.*>
|
||||
+.*: f9...... ldr x17, \[x16, #.*\]
|
||||
.*: 91...... add x16, x16, #0x...
|
||||
.*: d61f0220 br x17
|
||||
.*: d503201f nop
|
||||
diff -rup binutils.orig/ld/testsuite/ld-aarch64/erratum843419-far-full.d binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d
|
||||
--- binutils.orig/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-08-15 09:03:21.683463694 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-08-15 09:05:41.549608111 +0100
|
||||
|
|
@ -723,6 +767,25 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32.d binutils-2.41/ld/testsui
|
|||
[list "pr26580-4" \
|
||||
"" "" \
|
||||
{pr26580-a.c} "pr26580-4" "pr26580-4.out" "-fcommon" "c" "" \
|
||||
@@ -1579,18 +1575,6 @@ if { [istarget *-*-linux*]
|
||||
"pr22393-2-static" \
|
||||
"pass.out" \
|
||||
] \
|
||||
- [list \
|
||||
- "Run pr21964-4" \
|
||||
- "" \
|
||||
- "" \
|
||||
- {pr21964-4.c} \
|
||||
- "pr21964-4" \
|
||||
- "pass.out" \
|
||||
- "" \
|
||||
- "" \
|
||||
- "" \
|
||||
- "-ldl" \
|
||||
- ] \
|
||||
]
|
||||
}
|
||||
|
||||
--- binutils.orig/ld/testsuite/ld-s390/s390.exp 2023-08-15 14:30:13.292890888 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-s390/s390.exp 2023-08-15 14:48:38.327360916 +0100
|
||||
@@ -35,6 +35,8 @@ if { !([istarget "s390-*-*"] || [istarge
|
||||
|
|
@ -773,6 +836,19 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32.d binutils-2.41/ld/testsui
|
|||
# Check cross references for ld -r
|
||||
|
||||
if { ![ld_compile "$CC_FOR_TARGET $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross4.c" tmpdir/cross4.o] } {
|
||||
--- binutils.orig/ld/testsuite/ld-shared/shared.exp 2023-08-15 14:30:13.309890913 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-shared/shared.exp 2023-08-15 15:00:31.929701875 +0100
|
||||
@@ -204,6 +204,10 @@ if { [istarget mips*-*-*] && ! [at_least
|
||||
}
|
||||
verbose "Using $picflag to compile PIC code"
|
||||
|
||||
+if { [istarget "i686-*-*"] } {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
# Compile the main program.
|
||||
if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
|
||||
unsupported "shared (non PIC)"
|
||||
--- binutils.orig/ld/testsuite/ld-srec/srec.exp 2023-08-15 14:30:13.315890922 +0100
|
||||
+++ binutils-2.41/ld/testsuite/ld-srec/srec.exp 2023-08-15 15:01:24.104806404 +0100
|
||||
@@ -442,6 +442,9 @@ setup_xfail "csky*-*-*"
|
||||
|
|
@ -960,190 +1036,18 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32no.d binutils-2.42.50-6b19a
|
|||
.*: (3b de 80 a0|.. 80 de 3b) addi r30,r30,-[0-9]+
|
||||
.*: (38 7f ff e4|e4 ff 7f 38) addi r3,r31,-28
|
||||
.*: (48 00 00 6d|6d 00 00 48) bl .*
|
||||
720,725d719
|
||||
< [list "Run pr20267a" \
|
||||
< "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267a.a" "" \
|
||||
< {dummy.c} "pr20267a" "pass.out" "-flto -O2 -fcommon" "c"] \
|
||||
< [list "Run pr20267b" \
|
||||
< "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267b.a" "" \
|
||||
< {dummy.c} "pr20267b" "pass.out" "-flto -O2 -fcommon" "c"] \
|
||||
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-1.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
|
||||
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-1.d 2024-11-04 13:34:33.522976068 +0000
|
||||
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-1.d 2024-11-04 13:37:17.985526186 +0000
|
||||
@@ -23,6 +23,6 @@ Contents of the SFrame section .sframe:
|
||||
|
||||
func idx \[1\]: pc = 0x1010, size = 64 bytes
|
||||
STARTPC\[m\] +CFA +FP +RA +
|
||||
- 0+0000 +sp\+16 +u +f +
|
||||
+ 0+0000 +sp\+[0-9]+ +u +f +
|
||||
|
||||
#...
|
||||
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
|
||||
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 13:34:33.522976068 +0000
|
||||
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 13:37:43.874611190 +0000
|
||||
@@ -23,6 +23,6 @@ Contents of the SFrame section .sframe:
|
||||
|
||||
func idx \[1\]: pc = 0x1010, size = 32 bytes
|
||||
STARTPC\[m\] +CFA +FP +RA +
|
||||
- 0+0000 +sp\+16 +u +f +
|
||||
+ 0+0000 +sp\+[0-9]+ +u +f +
|
||||
|
||||
#...
|
||||
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
|
||||
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 14:26:07.983307843 +0000
|
||||
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 14:26:18.781353913 +0000
|
||||
@@ -21,7 +21,7 @@ Contents of the SFrame section .sframe:
|
||||
0+1000 +sp\+16 +u +f +
|
||||
0+1006 +sp\+24 +u +f +
|
||||
|
||||
- func idx \[1\]: pc = 0x1010, size = 32 bytes
|
||||
+ func idx \[1\]: pc = 0x1010, size = [0-9]+ bytes
|
||||
STARTPC\[m\] +CFA +FP +RA +
|
||||
0+0000 +sp\+[0-9]+ +u +f +
|
||||
|
||||
--- binutils.orig/ld/testsuite/ld-bootstrap/bootstrap.exp 2025-02-03 11:13:50.829608207 +0000
|
||||
+++ binutils-with-gold-2.44/ld/testsuite/ld-bootstrap/bootstrap.exp 2025-02-03 11:17:34.589136290 +0000
|
||||
@@ -29,6 +29,12 @@ if ![isnative] {
|
||||
return
|
||||
}
|
||||
|
||||
+# FIXME: The AArch64 rawhide libz and libjanson libraries are built
|
||||
+# without GCS support and so cannot be linked.
|
||||
+if {[istarget "aarch64*-*-*"] } {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
# Skip if OFILES aren't provided, it can happen when lauching
|
||||
# the testsuites outside the build directory.
|
||||
if {![info exists OFILES]} {
|
||||
--- binutils.orig/ld/testsuite/ld-vsb/vsb.exp 2025-02-07 11:24:06.084525843 +0000
|
||||
+++ binutils-with-gold-2.44/ld/testsuite/ld-vsb/vsb.exp 2025-02-07 11:26:34.984041584 +0000
|
||||
@@ -366,7 +366,6 @@ proc visibility_run {visibility} {
|
||||
|| [ string match $visibility "protected_weak" ]
|
||||
|| [ string match $visibility "normal" ] } {
|
||||
setup_xfail "powerpc-*-linux*"
|
||||
- setup_xfail "s390x-*-linux*"
|
||||
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2025-03-31 09:24:34.260146421 +0100
|
||||
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-x86-64/x86-64.exp 2025-03-31 09:25:38.951438172 +0100
|
||||
@@ -2167,7 +2167,6 @@ if { [isnative] && [check_compiler_avail
|
||||
}
|
||||
}
|
||||
|
||||
- undefined_weak "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
|
||||
undefined_weak "-fPIE" "$NOPIE_LDFLAGS"
|
||||
undefined_weak "-fPIE" "-pie"
|
||||
undefined_weak "-fPIE" "$NOPIE_LDFLAGS -Wl,-z,nodynamic-undefined-weak"
|
||||
--- binutils.orig/ld/testsuite/ld-shared/shared.exp 2025-03-31 11:25:50.792541423 +0100
|
||||
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-shared/shared.exp 2025-03-31 11:27:36.680868036 +0100
|
||||
@@ -205,6 +205,10 @@ if { [istarget mips*-*-*] && ! [at_least
|
||||
}
|
||||
verbose "Using $picflag to compile PIC code"
|
||||
|
||||
+if { [istarget "i686-*-*"] } {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
# Compile the main program.
|
||||
global PLT_CFLAGS NOPIE_CFLAGS NOPIE_LDFLAGS
|
||||
verbose "Using $NOPIE_CFLAGS to compile and $NOPIE_LDFLAGS to link non PIC code"
|
||||
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2025-03-31 11:25:50.643275417 +0100
|
||||
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-elf/shared.exp 2025-03-31 11:28:38.353212702 +0100
|
||||
@@ -1612,18 +1612,6 @@ if { [istarget *-*-linux*]
|
||||
"pr22393-2-static" \
|
||||
"pass.out" \
|
||||
] \
|
||||
- [list \
|
||||
- "Run pr21964-4" \
|
||||
- "$NOPIE_LDFLAGS" \
|
||||
- "" \
|
||||
- {pr21964-4.c} \
|
||||
- "pr21964-4" \
|
||||
- "pass.out" \
|
||||
- "$NOPIE_CFLAGS" \
|
||||
- "" \
|
||||
- "" \
|
||||
- "-ldl" \
|
||||
- ] \
|
||||
]
|
||||
}
|
||||
|
||||
--- fred/binutils/testsuite/binutils-all/objdump.exp 2026-02-16 09:03:27.457277379 +0000
|
||||
+++ binutils-with-gold-2.46.50-2d306bf8a70/binutils/testsuite/binutils-all/objdump.exp 2026-02-16 09:03:30.592967621 +0000
|
||||
@@ -957,7 +957,7 @@ proc test_objdump_S { } {
|
||||
}
|
||||
}
|
||||
|
||||
-test_objdump_S
|
||||
+# test_objdump_S
|
||||
|
||||
# Test objdump --map-global-vars on file containing dwarf-2 encoding information.
|
||||
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d 2026-03-20 13:05:31.155200130 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
|
||||
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared
|
||||
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d 2026-03-20 13:05:52.846252771 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1
|
||||
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie
|
||||
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d 2026-03-20 13:06:01.427273593 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
|
||||
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic
|
||||
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d 2026-03-20 13:04:07.601997355 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
|
||||
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared
|
||||
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d 2026-03-20 13:04:57.106117494 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1
|
||||
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie
|
||||
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d
|
||||
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d 2026-03-20 13:02:05.468700958 +0000
|
||||
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d 2026-03-20 13:05:14.650160073 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#source: data-reloc.s
|
||||
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
|
||||
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic
|
||||
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic -z notext
|
||||
#objdump: -dR
|
||||
|
||||
.*:[ ]+file format .*
|
||||
--- binutils.orig/ld/testsuite/ld-plugin/lto.exp 2024-11-26 16:03:01.214914908 +0000
|
||||
+++ binutils-2.41/ld/testsuite/ld-plugin/lto.exp 2024-11-26 16:04:39.983307748 +0000
|
||||
@@ -638,12 +638,6 @@ set lto_run_tests [list \
|
||||
[list "Run pr20276" \
|
||||
"-O2 -flto tmpdir/pr20276a.o tmpdir/pr20276b.o" "" \
|
||||
{dummy.c} "pr20276" "pass.out" "-flto -O2" "c"] \
|
||||
- [list "Run pr20267a" \
|
||||
- "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267a.a" "" \
|
||||
- {dummy.c} "pr20267a" "pass.out" "-flto -O2 -fcommon" "c"] \
|
||||
- [list "Run pr20267b" \
|
||||
- "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267b.a" "" \
|
||||
- {dummy.c} "pr20267b" "pass.out" "-flto -O2 -fcommon" "c"] \
|
||||
[list "Run pr22502" \
|
||||
"-O2 -flto tmpdir/pr22502a.o tmpdir/pr22502b.o" "" \
|
||||
{dummy.c} "pr20267" "pass.out" "-flto -O2 -fcommon" "c"] \
|
||||
|
|
|
|||
702
binutils.spec
702
binutils.spec
|
|
@ -6,8 +6,8 @@ Name: binutils%{?_with_debug:-debug}
|
|||
# A version number of X.XX.90 is a pre-release snapshot.
|
||||
# The variable %%{source} (see below) should be set to indicate which of these
|
||||
# origins is being used.
|
||||
Version: 2.47.50
|
||||
Release: 6%{?dist}
|
||||
Version: 2.43.1
|
||||
Release: 14%{?dist}
|
||||
License: GPL-3.0-or-later AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND BSD-3-Clause AND GFDL-1.3-or-later AND GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later
|
||||
URL: https://sourceware.org/binutils
|
||||
|
||||
|
|
@ -24,10 +24,8 @@ URL: https://sourceware.org/binutils
|
|||
# --without docs Skip building documentation. Default is with docs, except when building a cross binutils.
|
||||
# --without gold Disable building of the GOLD linker.
|
||||
# --without gprofng Do not build the GprofNG profiler.
|
||||
# --without systemzlib Use the binutils version of zlib. Default is to use the system version.
|
||||
# --without systemzlib Use the binutils version of zlib.
|
||||
# --without testsuite Do not run the testsuite. Default is to run it.
|
||||
# --without xxhash Do not link against the xxhash library.
|
||||
# --without zstd Do not link against the zstd library.
|
||||
|
||||
# Other configuration options can be set by modifying the following defines.
|
||||
|
||||
|
|
@ -87,45 +85,30 @@ URL: https://sourceware.org/binutils
|
|||
|
||||
# Enable the use of separate code and data segments. Whilst potentially
|
||||
# useful from a security point of view, it is problematic from a file
|
||||
# size point of view. So for now, only enable it for the i686, x86_64
|
||||
# and riscv64 architectures as these are the ones that have the most
|
||||
# potential vulnerability.
|
||||
%ifarch %{ix86} x86_64 riscv64
|
||||
# size point of view. So for now, only enable it for the i686 and x86_64
|
||||
# architectures as these are the ones that have the most potential
|
||||
# vulnerability.
|
||||
%ifarch %{ix86} x86_64
|
||||
%define enable_separate_code 1
|
||||
%else
|
||||
%define enable_separate_code 0
|
||||
%endif
|
||||
|
||||
# Enable the creation of relocations against the contents of read-only
|
||||
# sections (such as .text). This is a security vulnerability, so it is
|
||||
# disabled here by default.
|
||||
# Note - the upstream GNU Binutils sources enable the generation of this
|
||||
# kind of relocation by default, so this is a difference between Ferdora
|
||||
# and upstream.
|
||||
%define enable_textrel 0
|
||||
|
||||
# Indicate where the sources come from.
|
||||
#
|
||||
# Official releases come from: https://ftp.gnu.org/gnu/binutils
|
||||
# Pre releases come from: https://sourceware.org/pub/binutils/snapshots/
|
||||
# (Even numbered pre releases include gold)
|
||||
# Snapshots come from: https://snapshots.sourceware.org/binutils/trunk/
|
||||
# and are turned into commits by following this process:
|
||||
# Tarballs are made by hand following a process outlined in this document:
|
||||
# https://fedoraproject.org/wiki/BinutilsRawhideSync
|
||||
# Tarballs are made by hand as and when necessary.
|
||||
#
|
||||
# Note - the Linux Kernel binutils releases are too unstable and contain
|
||||
# too many controversial patches so we stick with the official GNU version
|
||||
# instead.
|
||||
#
|
||||
# Note - there is a confusing misnomer in the URL for the pre-release tarballs.
|
||||
# They are a "snapshot" of the about to be released branch sources, rather than
|
||||
# a snapshot of the mainline development sources.
|
||||
|
||||
# %%define source official-release
|
||||
# %%define source even-pre-release
|
||||
# %%define source odd-pre-release
|
||||
%define source snapshot
|
||||
%define source official-release
|
||||
# %%define source pre-release
|
||||
# %%define source snapshot
|
||||
# %%define source tarball
|
||||
|
||||
# For snapshots and tarballs an extension is used to indicate the commit ID.
|
||||
|
|
@ -133,50 +116,39 @@ URL: https://sourceware.org/binutils
|
|||
# correctly. Note %%(echo) is used because you cannot directly set a
|
||||
# spec variable to a hexadecimal string value.
|
||||
|
||||
%define commit_id %(echo "48c933a69a8")
|
||||
%define commit_id %(echo "49cc32b732a")
|
||||
|
||||
#----End of Configure Options------------------------------------------------
|
||||
|
||||
# Default: Not bootstrapping.
|
||||
%bcond bootstrap 0
|
||||
%bcond_with bootstrap
|
||||
# Default: Not debug
|
||||
%bcond debug 0
|
||||
%bcond_with debug
|
||||
# Default: support debuginfod.
|
||||
%bcond debuginfod 1
|
||||
%bcond_without debuginfod
|
||||
# Default: Always build documentation.
|
||||
%bcond docs 1
|
||||
%bcond_without docs
|
||||
# Default: build binutils-gprofng package.
|
||||
%bcond gprofng 1
|
||||
%bcond_without gprofng
|
||||
# Default: Use the system supplied version of the zlib compression library.
|
||||
%bcond systemzlib 1
|
||||
%bcond_without systemzlib
|
||||
# Default: Always run the testsuite.
|
||||
%bcond testsuite 1
|
||||
# Default: Use the xxhash-devel library.
|
||||
%bcond xxhash 1
|
||||
# Default: Use the libztsd-devel library.
|
||||
%bcond zstd 1
|
||||
# Default: Do not create cross targeted versions of the binutils.
|
||||
%bcond crossbuilds 0
|
||||
%bcond_without testsuite
|
||||
|
||||
# Note - in the future the gold linker will become deprecated in Fedora.
|
||||
# And it will be deprecated in RHEL-11.
|
||||
%if 0%{?rhel} >= 11
|
||||
%bcond gold 0
|
||||
# Note - in the future the gold linker may become deprecated.
|
||||
%ifnarch riscv64
|
||||
%bcond_without gold
|
||||
%else
|
||||
# RISC-V does not have ld.gold thus disable by default.
|
||||
%ifarch riscv64
|
||||
%bcond gold 0
|
||||
%else
|
||||
%bcond gold 1
|
||||
%endif
|
||||
%bcond_with gold
|
||||
%endif
|
||||
|
||||
# Allow the user to override the compiler used to build the binutils.
|
||||
# The default build compiler is gcc if %%toolchain is not clang.
|
||||
%if "%toolchain" == "clang"
|
||||
%bcond clang 1
|
||||
%bcond_without clang
|
||||
%else
|
||||
%bcond clang 0
|
||||
%bcond_with clang
|
||||
%endif
|
||||
|
||||
%if %{with clang}
|
||||
|
|
@ -185,6 +157,10 @@ URL: https://sourceware.org/binutils
|
|||
%global toolchain gcc
|
||||
%endif
|
||||
|
||||
# (Do not) create cross targeted versions of the binutils.
|
||||
%bcond_with crossbuilds
|
||||
# %%bcond_without crossbuilds
|
||||
|
||||
%if %{with bootstrap}
|
||||
%undefine with_docs
|
||||
%undefine with_testsuite
|
||||
|
|
@ -212,35 +188,23 @@ URL: https://sourceware.org/binutils
|
|||
# its debug informnation.
|
||||
%undefine __brp_strip_static_archive
|
||||
|
||||
# ODD numbered upstream GNU Binutils releases do not include the sources
|
||||
# for the GOLD linker, so we use a snapshot from the mainline development
|
||||
# sources instead - but only for GOLD, not for the rest of the binutils.
|
||||
|
||||
# FIXME: Delete this once the gold linker is fully deprecated.
|
||||
# %%define gold_tarball %%(echo "binutils-with-gold-2.46.50-f85ff0c4bce")
|
||||
%define gold_tarball none
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
%if "%{source}" == "official-release"
|
||||
# Source0: https://ftp.gnu.org/gnu/binutils/binutils-with-gold-%%{version}.tar.xz
|
||||
Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
|
||||
%elif "%{source}" == "even-pre-release"
|
||||
Source0: binutils-with-gold-%{version}.tar.xz
|
||||
%elif "%{source}" == "odd-pre-release"
|
||||
%if "%{source}" == "tarball"
|
||||
Source0: binutils-%{version}-%{commit_id}.tar.xz
|
||||
%endif
|
||||
%if "%{source}" == "snapshot"
|
||||
Source0: binutils-%{version}-%{commit_id}.tar.xz
|
||||
%endif
|
||||
%if "%{source}" == "pre-release"
|
||||
Source0: binutils-%{version}.tar.xz
|
||||
%elif "%{source}" == "snapshot"
|
||||
Source0: binutils-with-gold-%{version}-%{commit_id}.tar.xz
|
||||
%elif "%{source}" == "tarball"
|
||||
Source0: binutils-with-gold-%{version}-%{commit_id}.tar.xz
|
||||
%endif
|
||||
%if "%{source}" == "official-release"
|
||||
Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
|
||||
%endif
|
||||
|
||||
Source1: binutils-2.19.50.0.1-output-format.sed
|
||||
|
||||
%if "%{gold_tarball}" != "none"
|
||||
Source2: %{gold_tarball}.tar.xz
|
||||
%endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
|
||||
|
|
@ -291,79 +255,121 @@ Patch06: binutils-2.27-aarch64-ifunc.patch
|
|||
# Lifetime: Permanent.
|
||||
Patch07: binutils-do-not-link-with-static-libstdc++.patch
|
||||
|
||||
# Purpose: Allow the binutils to be configured with any (recent) version of
|
||||
# autoconf.
|
||||
# Lifetime: Fixed in 2.46 (maybe ?)
|
||||
Patch08: binutils-autoconf-version.patch
|
||||
|
||||
# Purpose: Stop libtool from inserting useless runpaths into binaries.
|
||||
# Lifetime: Who knows.
|
||||
Patch09: binutils-libtool-no-rpath.patch
|
||||
|
||||
# Purpose: Fix binutils testsuite failures.
|
||||
# Lifetime: Permanent, but varies with each rebase.
|
||||
Patch10: binutils-testsuite-fixes.patch
|
||||
|
||||
# Purpose: Fix binutils testsuite failures for the RISCV-64 target.
|
||||
# Lifetime: Permanent, but varies with each rebase.
|
||||
Patch11: binutils-riscv-testsuite-fixes.patch
|
||||
|
||||
# Purpose: Fix the ar test of non-deterministic archives.
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch12: binutils-fix-ar-test.patch
|
||||
|
||||
# Purpose: Fix a seg fault in the AArch64 linker when building u-boot.
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch13: binutils-aarch64-small-plt0.patch
|
||||
|
||||
%if %{with gold}
|
||||
|
||||
# Purpose: Make the GOLD linker ignore the "-z pack-relative-relocs" command line option.
|
||||
# Lifetime: Fixed in 2.46 (maybe)
|
||||
Patch14: binutils-gold-pack-relative-relocs.patch
|
||||
|
||||
# Purpose: Let the gold linker ignore --error-execstack and --error-rwx-segments.
|
||||
# Lifetime: Fixed in 2.46 (maybe)
|
||||
Patch15: binutils-gold-ignore-execstack-error.patch
|
||||
# Purpose: Allow OS specific sections in section groups.
|
||||
# Lifetime: Fixed in 2.43 (maybe)
|
||||
# Patch08: binutils-special-sections-in-groups.patch
|
||||
|
||||
# Purpose: Stop gold from aborting when input sections with the same name
|
||||
# have different flags.
|
||||
# Lifetime: Fixed in 2.43 (maybe)
|
||||
Patch16: binutils-gold-mismatched-section-flags.patch
|
||||
Patch09: binutils-gold-mismatched-section-flags.patch
|
||||
|
||||
# Purpose: Change the gold configuration script to only warn about
|
||||
# unsupported targets. This allows the binutils to be built with
|
||||
# BPF support enabled.
|
||||
# Lifetime: Permanent.
|
||||
Patch17: binutils-gold-warn-unsupported.patch
|
||||
Patch10: binutils-gold-warn-unsupported.patch
|
||||
|
||||
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
|
||||
# linker for x86 binaries.
|
||||
# Lifetime: Permanent.
|
||||
Patch18: binutils-gold-i386-gnu-property-notes.patch
|
||||
Patch11: binutils-gold-i386-gnu-property-notes.patch
|
||||
|
||||
# Purpose: Allow the binutils to be configured with any (recent) version of
|
||||
# autoconf.
|
||||
# Lifetime: Fixed in 2.44 (maybe ?)
|
||||
Patch12: binutils-autoconf-version.patch
|
||||
|
||||
# Purpose: Stop libtool from inserting useless runpaths into binaries.
|
||||
# Lifetime: Who knows.
|
||||
Patch13: binutils-libtool-no-rpath.patch
|
||||
|
||||
# Purpose: Stop an abort when using dwp to process a file with no dwo links.
|
||||
# Lifetime: Fixed in 2.46 (maybe)
|
||||
Patch19: binutils-gold-empty-dwp.patch
|
||||
# Lifetime: Fixed in 2.44 (maybe)
|
||||
Patch15: binutils-gold-empty-dwp.patch
|
||||
|
||||
# Purpose: Enable building the gold linker with the target is s390x-linux.
|
||||
# Lifetime: Fixed in 2.48 (maybe)
|
||||
Patch20: binutils-gold-s390-configure.patch
|
||||
# Purpose: Fix binutils testsuite failures.
|
||||
# Lifetime: Permanent, but varies with each rebase.
|
||||
Patch16: binutils-testsuite-fixes.patch
|
||||
|
||||
%endif
|
||||
# Purpose: Fix binutils testsuite failures for the RISCV-64 target.
|
||||
# Lifetime: Permanent, but varies with each rebase.
|
||||
Patch17: binutils-riscv-testsuite-fixes.patch
|
||||
|
||||
# Purpose: Fix ld testsuite failures when enable_textrel is set.
|
||||
# Lifetime: Permanent.
|
||||
Patch21: binutils-ld-default-z-text.patch
|
||||
# Purpose: Make the GOLD linker ignore the "-z pack-relative-relocs" command line option.
|
||||
# Lifetime: Fixed in 2.44 (maybe)
|
||||
Patch18: binutils-gold-pack-relative-relocs.patch
|
||||
|
||||
# Purpose: Let the gold linker ignore --error-execstack and --error-rwx-segments.
|
||||
# Lifetime: Fixed in 2.44 (maybe)
|
||||
Patch19: binutils-gold-ignore-execstack-error.patch
|
||||
|
||||
# Purpose: Fix the ar test of non-deterministic archives.
|
||||
# Lifetime: Fixed in 2.44
|
||||
Patch20: binutils-fix-ar-test.patch
|
||||
|
||||
# Purpose: Fix ppc64 TLS optimization bug with -fno-plt code.
|
||||
# Lifetime: Fixed in 2.44
|
||||
Patch21: binutils-ppc64-TLS-no_plt-optimization-bug.patch
|
||||
|
||||
# Purpose: Place the .build-id section near the ELF headers
|
||||
# Lifetime: Fixed in 2.44
|
||||
Patch22: binutils-linker-script-build-id-placement.patch
|
||||
|
||||
# Purpose: Stops a call to abort in the linker when processing fuzzed input.
|
||||
# Lifetime: Fixed in 2.45
|
||||
Patch23: binutils-ld-gen-dynamic-relocs.patch
|
||||
|
||||
# Purpose: Stops a call to abort in the linker when processing fuzzed input.
|
||||
# Lifetime: Fixed in 2.45
|
||||
Patch24: binutils-ld-sym-hashes.patch
|
||||
|
||||
# Purpose: Stops excessive memory use when copying corrupt files.
|
||||
# Lifetime: Fixed in 2.45
|
||||
Patch25: binutils-CVE-2025-7545.patch
|
||||
|
||||
# Purpose: Stops illegal memory access when parsing corrupt files.
|
||||
# Lifetime: Fixed in 2.45
|
||||
Patch26: binutils-CVE-2025-7546.patch
|
||||
|
||||
# Purpose: Stops a potential null pointer dereference when generating sframe
|
||||
# information in the assembler.
|
||||
# Lifetime: Fixed in 2.45
|
||||
Patch27: binutils-sframe-PR32879.patch
|
||||
|
||||
# Purpose: Stops a potential illegal memory access when linking a corrupt
|
||||
# input file. PR 33457
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch28: binutils-CVE-2025-11083.patch
|
||||
|
||||
# Purpose: Stops a potential illegal memory access when linking a corrupt
|
||||
# input file. PR 33464
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch29: binutils-CVE-2025-11082.patch
|
||||
|
||||
# Purpose: Stops a potential illegal memory access when linking a corrupt
|
||||
# input file. PR 33451
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch30: binutils-CVE-2025-11495.patch
|
||||
|
||||
# Purpose: Stops a potential illegal memory access when linking a corrupt
|
||||
# input file. PR 33499
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch31: binutils-CVE-2025-11494.patch
|
||||
|
||||
# Purpose: Stops a potential illegal memory access when linking a corrupt
|
||||
# input file. PR 33455
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch32: binutils-CVE-2025-11840.patch
|
||||
|
||||
# Purpose: Stops a potential call to abort when displaying the debug info
|
||||
# of a corrupt input file. PR 33448
|
||||
# Lifetime: Fixed in 2.46
|
||||
Patch33: binutils-CVE-2025-11839.patch
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Purpose: Remove the Build protected-func-2 without PIE linker tests
|
||||
# as these are currently failing.
|
||||
# Lifetime: TEMPORARY - should be fixed by the 2.46 release.
|
||||
Patch98: binutils-remove-ld-protected-func-2-test.patch
|
||||
|
||||
# Purpose: Suppress the x86 linker's p_align-1 tests due to kernel bug on CentOS-10.
|
||||
# Purpose: Suppress the x86 linker's p_align-1 tests due to kernel bug on CentOS-10
|
||||
# Lifetime: TEMPORARY
|
||||
Patch99: binutils-suppress-ld-align-tests.patch
|
||||
|
||||
|
|
@ -381,9 +387,6 @@ Provides: bundled(libiberty)
|
|||
# Perl, sed and touch are all used in the %%prep section of this spec file.
|
||||
BuildRequires: autoconf, automake, perl, sed, coreutils, make
|
||||
|
||||
# Bison is used to generate gold/yyscript.c and ld/ldgram.c.
|
||||
BuildRequires: bison
|
||||
|
||||
%if %{with clang}
|
||||
BuildRequires: clang compiler-rt
|
||||
%else
|
||||
|
|
@ -391,8 +394,8 @@ BuildRequires: gcc
|
|||
%endif
|
||||
|
||||
%if %{with gold}
|
||||
# The GOLD testsuite needs a static libc++
|
||||
BuildRequires: libstdc++-static
|
||||
# Gold needs bison in order to build gold/yyscript.c. The GOLD testsuite needs a static libc++
|
||||
BuildRequires: bison, m4, gcc-c++, libstdc++-static
|
||||
|
||||
%if ! %{with clang}
|
||||
BuildRequires: gcc-c++
|
||||
|
|
@ -430,19 +433,20 @@ BuildRequires: zlib-devel
|
|||
BuildRequires: elfutils-debuginfod-client-devel
|
||||
%endif
|
||||
|
||||
%if %{with xxhash}
|
||||
BuildRequires: xxhash-devel
|
||||
%endif
|
||||
|
||||
%if %{with zstd}
|
||||
BuildRequires: libzstd-devel
|
||||
%endif
|
||||
|
||||
Requires(post): %{_sbindir}/alternatives
|
||||
Requires(preun): %{_sbindir}/alternatives
|
||||
# We also need rm.
|
||||
Requires(post): coreutils
|
||||
|
||||
# %%if %%{with gold}
|
||||
# # For now we make the binutils package require the gold sub-package.
|
||||
# # That way other packages that have a requirement on "binutils" but
|
||||
# # actually want gold will not have to be changed. In the future, if
|
||||
# # we decide to deprecate gold, we can remove this requirement, and
|
||||
# # then update other packages as necessary.
|
||||
# Requires: binutils-gold >= %%{version}
|
||||
# %%endif
|
||||
|
||||
# On ARM EABI systems, we do want -gnueabi to be part of the
|
||||
# target triple.
|
||||
%ifnarch %{arm}
|
||||
|
|
@ -504,9 +508,7 @@ using libelf instead of BFD.
|
|||
|
||||
%package gold
|
||||
Summary: The GOLD linker, a faster alternative to the BFD linker
|
||||
# The GOLD linker is now deprecated as it is not being developed upstream.
|
||||
# For more details see: https://fedoraproject.org/wiki/Changes/DeprecateGoldLinker
|
||||
Provides: deprecated()
|
||||
Provides: gold = %{version}-%{release}
|
||||
Requires: binutils >= %{version}
|
||||
|
||||
%description gold
|
||||
|
|
@ -531,6 +533,7 @@ linker, and it may become deprecated in the future.
|
|||
Summary: Next Generating code profiling tool
|
||||
Provides: gprofng = %{version}-%{release}
|
||||
Requires: binutils = %{version}-%{release}
|
||||
BuildRequires: bison
|
||||
|
||||
%description gprofng
|
||||
GprofNG is the GNU Next Generation Profiler for analyzing the performance
|
||||
|
|
@ -615,37 +618,17 @@ use by developers. It is NOT INTENDED FOR PRODUCTION use.
|
|||
|
||||
%prep
|
||||
|
||||
%if "%{gold_tarball}" != "none"
|
||||
|
||||
%setup -q -n binutils-%{version} -a 0
|
||||
|
||||
%if %{with gold}
|
||||
%setup -q -n binutils-%{version} -D -b 2
|
||||
mv ../%{gold_tarball}/gold .
|
||||
mv ../%{gold_tarball}/elfcpp .
|
||||
%endif
|
||||
|
||||
%autopatch -p1
|
||||
|
||||
%elif "%{source}" == "snapshot"
|
||||
%autosetup -p1 -n binutils-with-gold-%{version}-%{commit_id}
|
||||
%elif "%{source}" == "official-release"
|
||||
%autosetup -p1 -n binutils-with-gold-%{version}
|
||||
%elif "%{source}" == "even-pre-release"
|
||||
%autosetup -p1 -n binutils-with-gold-%{version}
|
||||
%elif "%{source}" == "odd-pre-release"
|
||||
%autosetup -p1 -n binutils-%{version}
|
||||
%if "%{source}" == "snapshot"
|
||||
%autosetup -p1 -n binutils-%{version}-%{commit_id}
|
||||
%else
|
||||
%autosetup -p1 -n binutils-with-gold-%{version}
|
||||
%autosetup -p1 -n binutils-%{version}
|
||||
%endif
|
||||
|
||||
# On ppc64 and aarch64, we might use 64KiB pages
|
||||
sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
|
||||
sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*aarch64.c
|
||||
%if %{with gold}
|
||||
sed -i -e '/common_pagesize/s/4 /64 /' gold/powerpc.cc
|
||||
sed -i -e '/pagesize/s/0x1000,/0x10000,/' gold/aarch64.cc
|
||||
%endif
|
||||
|
||||
# LTP sucks
|
||||
perl -pi -e 's/i\[3-7\]86/i[34567]86/g' */conf*
|
||||
|
|
@ -701,7 +684,6 @@ compute_global_configuration()
|
|||
--enable-ld \
|
||||
--enable-plugins \
|
||||
--enable-64-bit-bfd \
|
||||
--enable-default-hash-style=gnu \
|
||||
--with-bugurl=%{dist_bug_report_url}"
|
||||
|
||||
%if %{without bootstrap}
|
||||
|
|
@ -719,19 +701,7 @@ compute_global_configuration()
|
|||
%endif
|
||||
|
||||
%if %{with systemzlib}
|
||||
CARGS="$CARGS --with-system-zlib=yes"
|
||||
%endif
|
||||
|
||||
%if %{with xxhash}
|
||||
CARGS="$CARGS --with-xxhash=yes"
|
||||
%else
|
||||
CARGS="$CARGS --with-xxhash=no"
|
||||
%endif
|
||||
|
||||
%if %{with zstd}
|
||||
CARGS="$CARGS --with-zstd=yes"
|
||||
%else
|
||||
CARGS="$CARGS --with-zstd=no"
|
||||
CARGS="$CARGS --with-system-zlib"
|
||||
%endif
|
||||
|
||||
%if %{default_compress_debug}
|
||||
|
|
@ -799,18 +769,16 @@ compute_global_configuration()
|
|||
CARGS="$CARGS --enable-threads=no"
|
||||
%endif
|
||||
|
||||
%if %{enable_textrel}
|
||||
CARGS="$CARGS --enable-textrel-check=no"
|
||||
%else
|
||||
CARGS="$CARGS --enable-textrel-check=error"
|
||||
%endif
|
||||
|
||||
# The binutils build system enables -Werror by default, which is a problem
|
||||
# because there is a known issue with the libiberty library sources:
|
||||
%if "%{source}" != "official-release"
|
||||
# Since non official release tarballs are created directly from development
|
||||
# sources they will have "development=true" set in the bfd/development.sh file.
|
||||
# This enables -Werror by default, which is a problem because there is a
|
||||
# known issue with the libiberty library:
|
||||
# libiberty/cp-demangle.c: In function 'd_demangle_callback.constprop':
|
||||
# libiberty/cp-demangle.c:6794:1: error: stack usage might be unbounded [-Werror=stack-usage=]
|
||||
# So we explicitly disable werror for builds.
|
||||
# So we explicitly disable werror for builds from these tarballs.
|
||||
CARGS="$CARGS --enable-werror=no"
|
||||
%endif
|
||||
}
|
||||
|
||||
# run_target_configuration()
|
||||
|
|
@ -835,16 +803,10 @@ run_target_configuration()
|
|||
|
||||
%set_build_flags
|
||||
|
||||
%if %{enable_lto}
|
||||
# RHEL-121799: Builders may want to restrict the number of CPUs used by
|
||||
# the LTO compiler. The normal way to do this is to set RPM_BUILD_NCPUS.
|
||||
# But this only affects the -j option passed to make. By adding -flto=N
|
||||
# we can also restrict the number of threads used by the LTO compiler.
|
||||
export CFLAGS="$RPM_OPT_FLAGS -flto=$RPM_BUILD_NCPUS"
|
||||
%endif
|
||||
|
||||
%ifarch %{power64}
|
||||
export CFLAGS="$CFLAGS -Wno-error"
|
||||
export CFLAGS="$RPM_OPT_FLAGS -Wno-error"
|
||||
%else
|
||||
export CFLAGS="$RPM_OPT_FLAGS"
|
||||
%endif
|
||||
|
||||
%if %{with debug}
|
||||
|
|
@ -854,10 +816,6 @@ run_target_configuration()
|
|||
|
||||
export CXXFLAGS="$CXXFLAGS $CFLAGS"
|
||||
|
||||
# Some GNU extensions to the C11 standard are used.
|
||||
# Note set here as -std=gnu11 is not a valid G++ command line option.
|
||||
export CFLAGS="$CFLAGS -std=gnu11"
|
||||
|
||||
# BZ 1541027 - include the linker flags from redhat-rpm-config as well.
|
||||
export LDFLAGS=$RPM_LD_FLAGS
|
||||
|
||||
|
|
@ -875,8 +833,12 @@ run_target_configuration()
|
|||
#
|
||||
# Also enable the BPF target so that strip will work on BPF files.
|
||||
case $target in
|
||||
s390x*)
|
||||
TARGS="--enable-targets=s390x-linux,x86_64-pep,bpf-unknown-none"
|
||||
s390*)
|
||||
# Note - The s390-linux target is there so that the GOLD linker will
|
||||
# build. By default, if configured for just s390x-linux, the GOLD
|
||||
# configure system will only include support for 64-bit targets, but
|
||||
# the s390x gold backend uses both 32-bit and 64-bit templates.
|
||||
TARGS="--enable-targets=s390-linux,s390x-linux,x86_64-pep,bpf-unknown-none"
|
||||
;;
|
||||
ia64*)
|
||||
TARGS="--enable-targets=ia64-linux,x86_64-pep,bpf-unknown-none"
|
||||
|
|
@ -941,8 +903,6 @@ build_target()
|
|||
|
||||
pushd $builddir
|
||||
|
||||
mkdir -p gas/doc
|
||||
|
||||
%if %{with docs}
|
||||
# Because of parallel building, info has to be made after all.
|
||||
# %%make_build %%{_smp_mflags} tooldir=%%{_prefix} all
|
||||
|
|
@ -1173,9 +1133,6 @@ install_binutils()
|
|||
%if %{without docs}
|
||||
rm -f $local_mandir/{addr2line,ar,as,c++filt,elfedit,gp,ld,nm,objcopy,objdump,ranlib,readelf,size,strings,strip}*
|
||||
rm -f $local_infodir/{as,bfd,binutils,ctf,gprof,ld,sframe}*
|
||||
%if %{with gprofng}
|
||||
rm -fr $local_infodir/../doc/gprofng
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{enable_shared}
|
||||
|
|
@ -1373,13 +1330,12 @@ exit 0
|
|||
%{_bindir}/[!l]*
|
||||
# %%verify(symlink) does not work for some reason, so using "owner" instead.
|
||||
%verify(owner) %{_bindir}/ld
|
||||
# %%verify(mtime) does not work, probably because of the alternatives command in the %%post stage, so using "not mtime" instead. (#2277349)(RHEL-238406)
|
||||
%verify(not mtime) %{_bindir}/ld.bfd
|
||||
# %%verify(mtime) does not work, probably because of the alternatives command in the %%post stage, so using "owner" instead. (#2277349)
|
||||
%verify(owner) %{_bindir}/ld.bfd
|
||||
|
||||
%if %{with gprofng}
|
||||
%exclude %{_bindir}/gp-*
|
||||
%exclude %{_bindir}/gprofng
|
||||
%exclude %{_bindir}/gprofng-*
|
||||
%endif
|
||||
|
||||
%exclude %dir %{_exec_prefix}/lib/debug
|
||||
|
|
@ -1394,42 +1350,23 @@ exit 0
|
|||
%{_infodir}/ctf-spec.info.*
|
||||
%{_infodir}/gprof.info.*
|
||||
%{_infodir}/sframe-spec.info.*
|
||||
|
||||
%if %{with gprofng}
|
||||
%exclude %{_docdir}/gprofng/examples.tar.gz
|
||||
%exclude %{_infodir}/gprofng*
|
||||
%exclude %{_mandir}/man1/gprofng*
|
||||
%{_mandir}/man1/gp-*
|
||||
%{_mandir}/man1/gprofng*
|
||||
%{_infodir}/gprofng*
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
%if %{enable_shared}
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/lib*.so.*
|
||||
%dir %{_libdir}/bfd-plugins
|
||||
%{_libdir}/bfd-plugins/libdep.so
|
||||
|
||||
%exclude %{_libdir}/libbfd.so
|
||||
%exclude %{_libdir}/libopcodes.so
|
||||
%exclude %{_libdir}/libctf.a
|
||||
%exclude %{_libdir}/libctf-nobfd.a
|
||||
|
||||
%if %{with gprofng}
|
||||
%exclude %{_libdir}/libgprofng.*
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
#------------------------------------
|
||||
|
||||
%files devel
|
||||
%{_prefix}/include/*
|
||||
%{_libdir}/lib*.a
|
||||
%{_libdir}/libbfd.so
|
||||
%{_libdir}/libopcodes.so
|
||||
|
||||
%if %{enable_shared}
|
||||
%exclude %{_libdir}/lib*.la
|
||||
%dir %{_libdir}/bfd-plugins
|
||||
%{_libdir}/bfd-plugins/libdep.so
|
||||
%endif
|
||||
|
||||
%if %{with debug}
|
||||
|
|
@ -1437,39 +1374,29 @@ exit 0
|
|||
%{_libdir}/bfd-plugins/libdep.a
|
||||
%endif
|
||||
|
||||
#------------------------------------
|
||||
%files devel
|
||||
%{_prefix}/include/*
|
||||
%{_libdir}/lib*.a
|
||||
%{_libdir}/libbfd.so
|
||||
%{_libdir}/libopcodes.so
|
||||
%if %{enable_shared}
|
||||
%exclude %{_libdir}/lib*.la
|
||||
%endif
|
||||
|
||||
%if %{with gold}
|
||||
%files gold
|
||||
%{_bindir}/%{?cross}ld.gold
|
||||
%endif
|
||||
|
||||
#------------------------------------
|
||||
|
||||
%if %{with gprofng}
|
||||
%files gprofng
|
||||
%{_bindir}/gp-*
|
||||
%{_bindir}/gprofng
|
||||
%{_bindir}/gprofng-*
|
||||
%dir %{_libdir}/gprofng
|
||||
%{_libdir}/gprofng/*
|
||||
%{_sysconfdir}/gprofng.rc
|
||||
|
||||
%if %{enable_shared}
|
||||
%{_libdir}/libgprofng.*
|
||||
%endif
|
||||
|
||||
%if %{with docs}
|
||||
%dir %{_docdir}/gprofng
|
||||
%{_docdir}/gprofng/examples.tar.gz
|
||||
%{_infodir}/gprofng*
|
||||
%{_mandir}/man1/gprofng*
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
#------------------------------------
|
||||
|
||||
%if %{with crossbuilds}
|
||||
|
||||
%if "%{_target_platform}" != "aarch64-%{system}"
|
||||
|
|
@ -1500,261 +1427,54 @@ exit 0
|
|||
|
||||
#----------------------------------------------------------------------------
|
||||
%changelog
|
||||
* Tue Sep 01 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-6
|
||||
- Rebase to commit 48c933a69a8
|
||||
* Mon Oct 13 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-14
|
||||
- Stop a potential call to abort when display the debug information of a corrupt input file. (#2404498)
|
||||
|
||||
* Tue Sep 01 2026 Jesus Checa Hidalgo <jchecahi@redhat.com> - 2.47.50-5
|
||||
- Fix logic to enable and disable gold linker.
|
||||
* Mon Oct 13 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-13
|
||||
- Stop a potential illegal memory access when linking a corrupt input file. (#2404547)
|
||||
|
||||
* Wed Aug 19 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-4
|
||||
- Rebase to bring in commits d9ab6e42e739fe826b02a5f868586132ea2d893a and
|
||||
- 0f9faaebc91bc1886a563bde6c178601b4be743b, thus fixing CVE-2026-19548. (#2514618)
|
||||
* Mon Oct 13 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-12
|
||||
- Stop a potential illegal memory access when linking a corrupt input file. (#2402830)
|
||||
|
||||
* Thu Aug 13 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-3
|
||||
- Switch from using %%bcond_with and %%bcond_without to just %%bcond <0|1>
|
||||
* Fri Oct 10 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-11
|
||||
- Stop a potential illegal memory access when linking a corrupt input file. (#2402827)
|
||||
|
||||
* Thu Aug 13 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-2
|
||||
- Re-enable the gold linker - for now - for Rawhide.
|
||||
* Fri Oct 03 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-10
|
||||
- Stop a potential illegal memory access when linking a corrupt input file. (#2400311)
|
||||
|
||||
* Wed Aug 12 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-1
|
||||
- Rebase to commit 4e8ba93fdb2.
|
||||
- Disable the gold linker for Rawhide as well.
|
||||
* Thu Oct 02 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-9
|
||||
- Stop a potential illegal memory access when linking a corrupt input file. (#2400304)
|
||||
|
||||
* Wed Aug 12 2026 Yaakov Selkowitz <yselkowi@redhat.com>
|
||||
- Disable the gold linker by default for RHEL-11+.
|
||||
* Mon Jul 21 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-8
|
||||
- Stop a potential null pointer dereference when generating sframe information. (#1282126)
|
||||
|
||||
* Mon Jul 27 2026 Nick Clifton <nickc@redhat.com> - 2.47-1
|
||||
- Rebase to 2.47 release.
|
||||
* Mon Jul 14 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-7
|
||||
- Stop excessive memory allocation when copying corrupt files. (#2379829)
|
||||
- Stop illegal memory access when parsing corrupt files. (#2379836)
|
||||
|
||||
* Wed Jul 15 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.46.90-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
* Tue Feb 11 2025 Nick Clifton <nickc@redhat.com> - 2.43.1-6
|
||||
- Stop a call to abort in the linker when processing fuzzed input. (#2344837)
|
||||
- Fix an illegal memory access when the linker processed a fuzzed input file. (#2344835)
|
||||
|
||||
* Mon Jul 13 2026 Nick Clifton <nickc@redhat.com> - 2.46.90-1
|
||||
- Rebase to 2.47 pre-release tarball.
|
||||
* Fri Dec 13 2024 Björn Esser <besser82@fedoraproject.org> - 2.43.1-5
|
||||
- Restore the .note.build-id section placement patch. (#2331487)
|
||||
|
||||
* Thu Jun 25 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-12
|
||||
- Rebase to commit f85ff0c4bce
|
||||
* Tue Nov 26 2024 Björn Esser <besser82@fedoraproject.org> - 2.43.1-4
|
||||
- Fix ppc64 TLS optimization bug with -fno-plt code. (#2324491)
|
||||
|
||||
* Thu Jun 11 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-11
|
||||
- Fix linker testsuite problem for Risc-V.
|
||||
|
||||
* Thu Jun 04 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-10
|
||||
- Rebase to commit 48997323b0f
|
||||
|
||||
* Thu May 14 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-9
|
||||
- Rebase to commit 2ea3f3a7ac2
|
||||
|
||||
* Fri Apr 24 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-8
|
||||
- Rebase to commit 991cf245839.
|
||||
|
||||
* Wed Apr 08 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-7
|
||||
- Add support for zstd compression. (#2454341)
|
||||
|
||||
* Tue Apr 07 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-6
|
||||
- Rebase to commit c220f3ab8c0
|
||||
|
||||
* Mon Mar 30 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-5
|
||||
- Rebase to commit c220f3ab8c0
|
||||
|
||||
* Fri Mar 20 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-4
|
||||
- Fix Risc-V linker testsuite failures caused by #2428281.
|
||||
|
||||
* Mon Mar 16 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-3
|
||||
- Rebase to commit d712202846b.
|
||||
|
||||
* Mon Mar 02 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-2
|
||||
- Rebase to commit dd9a411627a.
|
||||
|
||||
* Mon Feb 16 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-1
|
||||
- Rebase to commit 2d306bf8a70
|
||||
|
||||
* Mon Feb 09 2026 Nick Clifton <nickc@redhat.com> - 2.46-1
|
||||
- Rebase to GNU Binutils 2.46.
|
||||
|
||||
* Tue Jan 27 2026 Nick Clifton <nickc@redhat.com> - 2.45.90-1
|
||||
- Rebase to pre-release snapshot.
|
||||
|
||||
* Mon Jan 19 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-19
|
||||
- Rebase to commit ba5838a98fb
|
||||
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.50-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.50-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Thu Jan 15 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-16
|
||||
- Remove experimental Risc-V patch added with -12 revision.
|
||||
|
||||
* Tue Jan 13 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-15
|
||||
- Disallow the creation of shared object that use text relocations. (#2428281)
|
||||
|
||||
* Fri Jan 09 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-14
|
||||
- Fix Risc-V related test failures caused by -12 revision.
|
||||
|
||||
* Mon Jan 05 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-13
|
||||
- Rebase to commit be970c68891
|
||||
|
||||
* Thu Dec 18 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-12
|
||||
- Fix compile time warning messages about discarded qualifiers.
|
||||
- Change Risc-V assembler to default to disabling relaxation.
|
||||
|
||||
* Mon Dec 08 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-11
|
||||
- Rebase to commit 8e992ccb1e4
|
||||
|
||||
* Thu Dec 04 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-10
|
||||
- Fix testsuite failures for Risc-V target.
|
||||
|
||||
* Mon Nov 24 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-9
|
||||
- Rebase to commit beab972c07d
|
||||
- Revert patches for PR 33577
|
||||
|
||||
* Tue Nov 11 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-8
|
||||
- Rebase to commit 96b8a8a633a
|
||||
|
||||
* Tue Nov 04 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-7
|
||||
- Pass -flto=$RPM_BUILD_NCPUS in CFLAGS. (RHEL-121799)
|
||||
|
||||
* Tue Oct 28 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-6
|
||||
- Rebase to commit 2006dea18d5
|
||||
|
||||
* Mon Oct 06 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-5
|
||||
- Rebase to commit b05d1d89605
|
||||
|
||||
* Tue Sep 09 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-4
|
||||
- Enhance the riscv-64 zicfilp-unlabeled-plt test to cope with larger offsets.
|
||||
|
||||
* Mon Sep 08 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-3
|
||||
- Rebase to commit 79b2b564fec
|
||||
|
||||
* Tue Aug 19 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-2
|
||||
- Rebase to commit 7e432e93f8a (previous rebase appears to be broken)
|
||||
|
||||
* Mon Aug 18 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-1
|
||||
- Rebase to commit 570f4c0c119.
|
||||
|
||||
* Fri Aug 15 2025 Nick Clifton <nickc@redhat.com> - 2.45-3
|
||||
- Oops - the gold linker was disabled too soon, re-enabling.
|
||||
|
||||
* Wed Aug 13 2025 Nick Clifton <nickc@redhat.com> - 2.45-2
|
||||
- Disable building of gold by default. Ref: https://fedoraproject.org/wiki/Changes/DeprecateGoldLinker
|
||||
|
||||
* Mon Jul 28 2025 Nick Clifton <nickc@redhat.com> - 2.45-1
|
||||
- Rebase to official GNU Binutils 2.45 release.
|
||||
|
||||
* Fri Jul 25 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-4
|
||||
- Properly handle LLVM IR bitcodes. (#2382341) (PR 33198)
|
||||
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.44.90-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Tue Jul 22 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-2
|
||||
- Improve strip's handling of archives containing bitcodes. (#2382341)
|
||||
|
||||
* Mon Jul 14 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-1
|
||||
- Rebase to 2.45 pre-release snapshot.
|
||||
|
||||
* Mon Jul 07 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-13
|
||||
- Rebase to commit 21e608528c3
|
||||
|
||||
* Mon Jun 23 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-12
|
||||
- Rebase to commit 28b75d9dcb8
|
||||
|
||||
* Mon Jun 09 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-11
|
||||
- Rebase to commit a259da93f3c
|
||||
|
||||
* Tue May 27 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-10
|
||||
- Rebase to commit d13aaae402f
|
||||
|
||||
* Mon May 12 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-9
|
||||
- Rebase to commit 8dc4e62fc94
|
||||
|
||||
* Mon Apr 14 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-8
|
||||
- Rebase to commit 6ef74a3985b
|
||||
|
||||
* Thu Apr 10 2025 Andrea Bolognani <abologna@redhat.com> - 2.44.50-7
|
||||
- Fix BuildRequires on bison
|
||||
|
||||
* Wed Apr 02 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-6
|
||||
- Deprecate the GOLD linker.
|
||||
|
||||
* Mon Mar 31 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-5
|
||||
- Rebase to commit 7109ea04ac7
|
||||
|
||||
* Mon Mar 17 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-4
|
||||
- Rebase to commit a07c8b3a73c
|
||||
|
||||
* Mon Mar 03 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-3
|
||||
- Rebase to commit 56a0188548e
|
||||
|
||||
* Wed Feb 26 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-2
|
||||
- Renumber patches.
|
||||
- Add -std=gnu11 to CFLAGS to support the use of static_assert in the sources.
|
||||
|
||||
* Tue Feb 18 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-1
|
||||
- Rebase to commit 1256b9860f3
|
||||
|
||||
* Fri Feb 07 2025 Nick Clifton <nickc@redhat.com> - 2.44-3
|
||||
- Fix seg fault in AArch64 linker when building u-boot. (#2326190)
|
||||
|
||||
* Thu Feb 06 2025 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.44-2
|
||||
- Default gcs-report-dynamic to NONE for Fedora.
|
||||
|
||||
* Mon Feb 03 2025 Nick Clifton <nickc@redhat.com> - 2.44-1
|
||||
- Rebase to official GNU Binutils 2.44 release
|
||||
|
||||
* Mon Jan 27 2025 Nick Clifton <nickc@redhat.com> - 2.43.90-2
|
||||
- Enable separate-code by default for the RISC-V target.
|
||||
|
||||
* Mon Jan 20 2025 Nick Clifton <nickc@redhat.com> - 2.43.90-1
|
||||
- Rebased to 2.43.90 pre-release tarball.
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.43.50-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Mon Jan 06 2025 Nick Clifton <nickc@redhat.com> - 2.43.50-11
|
||||
- Rebase to commit f832531609d
|
||||
|
||||
* Mon Dec 09 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-10
|
||||
- Rebase to commit 3d75969bd0e
|
||||
|
||||
* Tue Nov 26 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-9
|
||||
- Rebase to commit 1686dc7079f
|
||||
|
||||
* Fri Nov 15 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-8
|
||||
- Spec File: Move all gprofng files into the binutils-gprofng sub-package. (2326286)
|
||||
|
||||
* Mon Nov 04 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-7
|
||||
- Rebase to commit 55e32b3c682
|
||||
- Revert commit 4f576180 which moves the .note.build-id section back to the start of the file. (PR 2321588)
|
||||
|
||||
* Thu Oct 31 2024 Miro Hrončok <mhroncok@redhat.com> - 2.43.50-6
|
||||
- Spec File: Do not install gprofng documentation when using --without docs
|
||||
|
||||
* Tue Oct 22 2024 Richard W.M. Jones <rjones@redhat.com> - 2.43.50-5
|
||||
- Rebuild for Jansson 2.14
|
||||
(https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/)
|
||||
|
||||
* Mon Oct 14 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-4
|
||||
- Rebase to commit 22c62092858.
|
||||
|
||||
* Thu Oct 03 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-3
|
||||
- Add more fixes for linker testsuite failures for the RISC-V.
|
||||
|
||||
* Mon Sep 30 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-2
|
||||
- Rebase to commit 1f4aee70ed1.
|
||||
- Configure the linker to support xxhash by default.
|
||||
|
||||
* Tue Sep 10 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-1
|
||||
- Rebase to commit c839a44c391.
|
||||
* Fri Oct 04 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-3
|
||||
- Fix more linker testsuite issues for the RISC-V target.
|
||||
|
||||
* Mon Sep 09 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-2
|
||||
- Disable the default enablement of the linker's "-z separate-code" feature for non-x86 architectures.
|
||||
|
||||
* Sat Aug 17 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-1
|
||||
* Mon Sep 09 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-1
|
||||
- Rebase to 2.43.1 release. (#2305399)
|
||||
- Retire: binutils-LTO-restore-wrapper-symbol.patch
|
||||
|
||||
* Wed Aug 14 2024 Nick Clifton <nickc@redhat.com> - 2.43-3
|
||||
- Place the .build-id section near the ELF headers.
|
||||
|
||||
* Mon Aug 05 2024 Nick Clifton <nickc@redhat.com> - 2.43-2
|
||||
- Use correct fix for BZ 2301454.
|
||||
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@
|
|||
/common:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||
url: https://src.fedoraproject.org/tests/binutils.git
|
||||
ref: main
|
||||
name: /plans/build-gating/common
|
||||
|
||||
/kernel-rebuild:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||
url: https://src.fedoraproject.org/tests/binutils.git
|
||||
ref: main
|
||||
name: /plans/build-gating/kernel-rebuild
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/common:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||
url: https://src.fedoraproject.org/tests/binutils.git
|
||||
ref: main
|
||||
name: /plans/regression
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (binutils-with-gold-2.47.50-48c933a69a8.tar.xz) = c4300e4881227c431c0bbbb949a5ee5bc113701f993766418b152df7d46d9df378ebace9efffcb6e1f0b7e72ad716bbcccf5b6aa55851dc28216555b242d18a0
|
||||
SHA512 (binutils-2.43.1.tar.xz) = 20977ad17729141a2c26d358628f44a0944b84dcfefdec2ba029c2d02f40dfc41cc91c0631044560d2bd6f9a51e1f15846b4b311befbe14f1239f14ff7d57824
|
||||
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue