Fix handling of .gnu.debuglto_.debug_* sections.
Resolves: RHEL-43758
This commit is contained in:
parent
fa0ba0b1a6
commit
a54a2c0323
75
binutils-gnu.debuglto_.patch
Normal file
75
binutils-gnu.debuglto_.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
diff -rup binutils.orig/bfd/elf.c binutils-2.35.2/bfd/elf.c
|
||||||
|
--- binutils.orig/bfd/elf.c 2024-06-20 16:18:11.685058701 +0100
|
||||||
|
+++ binutils-2.35.2/bfd/elf.c 2024-06-20 16:19:59.040433524 +0100
|
||||||
|
@@ -1090,6 +1090,7 @@ _bfd_elf_make_section_from_shdr (bfd *ab
|
||||||
|
if (name [0] == '.')
|
||||||
|
{
|
||||||
|
if (strncmp (name, ".debug", 6) == 0
|
||||||
|
+ || strncmp (name, ".gnu.debuglto_.debug_", 21) == 0
|
||||||
|
|| strncmp (name, ".gnu.linkonce.wi.", 17) == 0
|
||||||
|
|| strncmp (name, ".zdebug", 7) == 0)
|
||||||
|
flags |= SEC_DEBUGGING | SEC_ELF_OCTETS;
|
||||||
|
diff -rup binutils.orig/ld/ldlang.c binutils-2.35.2/ld/ldlang.c
|
||||||
|
--- binutils.orig/ld/ldlang.c 2024-06-20 16:18:11.518058118 +0100
|
||||||
|
+++ binutils-2.35.2/ld/ldlang.c 2024-06-20 16:21:50.407756115 +0100
|
||||||
|
@@ -7471,7 +7471,7 @@ lang_gc_sections (void)
|
||||||
|
lang_gc_sections_1 (statement_list.head);
|
||||||
|
|
||||||
|
/* SEC_EXCLUDE is ignored when doing a relocatable link, except in
|
||||||
|
- the special case of debug info. (See bfd/stabs.c)
|
||||||
|
+ the special case of .stabstr debug info. (See bfd/stabs.c)
|
||||||
|
Twiddle the flag here, to simplify later linker code. */
|
||||||
|
if (bfd_link_relocatable (&link_info))
|
||||||
|
{
|
||||||
|
@@ -7483,7 +7483,8 @@ lang_gc_sections (void)
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
for (sec = f->the_bfd->sections; sec != NULL; sec = sec->next)
|
||||||
|
- if ((sec->flags & SEC_DEBUGGING) == 0)
|
||||||
|
+ if ((sec->flags & SEC_DEBUGGING) == 0
|
||||||
|
+ || strcmp (sec->name, ".stabstr") != 0)
|
||||||
|
sec->flags &= ~SEC_EXCLUDE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -rupN binutils.orig/ld/testsuite/ld-elf/pr27590.s binutils-2.35.2/ld/testsuite/ld-elf/pr27590.s
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/pr27590.s 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ binutils-2.35.2/ld/testsuite/ld-elf/pr27590.s 2024-06-20 16:51:39.108295959 +0100
|
||||||
|
@@ -0,0 +1,6 @@
|
||||||
|
+ .section .gnu.debuglto_.debug_macro,"",%progbits
|
||||||
|
+.Ldebug_macro0:
|
||||||
|
+ .dc.a .Ldebug_macro2
|
||||||
|
+ .section .gnu.debuglto_.debug_macro,"G",%progbits,wm4,comdat
|
||||||
|
+.Ldebug_macro2:
|
||||||
|
+ .long 0x4
|
||||||
|
diff -rupN binutils.orig/ld/testsuite/ld-elf/pr27590a.d binutils-2.35.2/ld/testsuite/ld-elf/pr27590a.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/pr27590a.d 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ binutils-2.35.2/ld/testsuite/ld-elf/pr27590a.d 2024-06-20 16:51:39.111295967 +0100
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+#source: pr27590.s
|
||||||
|
+#ld: -r tmpdir/pr27590.o
|
||||||
|
+#readelf: -rW
|
||||||
|
+#xfail: [is_generic]
|
||||||
|
+
|
||||||
|
+Relocation section '\.rel.*\.gnu\.debuglto_\.debug_macro' at offset 0x[0-9a-z]+ contains 2 entries:
|
||||||
|
+[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
|
||||||
|
+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+(\.gnu\.debuglto_\.debug_macro|\.Ldebug_macro2).*
|
||||||
|
+#?.*R_MIPS_NONE.*
|
||||||
|
+#?.*R_MIPS_NONE.*
|
||||||
|
+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+(\.gnu\.debuglto_\.debug_macro|\.Ldebug_macro2).*
|
||||||
|
+#pass
|
||||||
|
diff -rupN binutils.orig/ld/testsuite/ld-elf/pr27590b.d binutils-2.35.2/ld/testsuite/ld-elf/pr27590b.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/pr27590b.d 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ binutils-2.35.2/ld/testsuite/ld-elf/pr27590b.d 2024-06-20 16:51:39.111295967 +0100
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+#source: pr27590.s
|
||||||
|
+#ld: -r tmpdir/pr27590.o --reduce-memory-overheads
|
||||||
|
+#readelf: -rW
|
||||||
|
+#xfail: [is_generic]
|
||||||
|
+
|
||||||
|
+Relocation section '\.rel.*\.gnu\.debuglto_\.debug_macro' at offset 0x[0-9a-z]+ contains 2 entries:
|
||||||
|
+[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
|
||||||
|
+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+(\.gnu\.debuglto_\.debug_macro|\.Ldebug_macro2).*
|
||||||
|
+#?.*R_MIPS_NONE.*
|
||||||
|
+#?.*R_MIPS_NONE.*
|
||||||
|
+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0]+[ \t]+(\.gnu\.debuglto_\.debug_macro|\.Ldebug_macro2).*
|
||||||
|
+#pass
|
@ -2,7 +2,7 @@
|
|||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: binutils%{?_with_debug:-debug}
|
Name: binutils%{?_with_debug:-debug}
|
||||||
Version: 2.35.2
|
Version: 2.35.2
|
||||||
Release: 45%{?dist}
|
Release: 46%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
|
|
||||||
@ -449,6 +449,10 @@ Patch67: binutils-verdef.patch
|
|||||||
# Lifetime: Fixed in 2.43
|
# Lifetime: Fixed in 2.43
|
||||||
Patch68: binutils-objcopy-pe-section-align.patch
|
Patch68: binutils-objcopy-pe-section-align.patch
|
||||||
|
|
||||||
|
# Purpose: Fix handling of .gnu.debuglto_.debug_* sections.
|
||||||
|
# Lifetime: Fixed in 2.37
|
||||||
|
Patch69: binutils-gnu.debuglto_.patch
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
Provides: bundled(libiberty)
|
Provides: bundled(libiberty)
|
||||||
@ -1289,6 +1293,9 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 20 2024 Nick Clifton <nickc@redhat.com> - 2.35.2-46
|
||||||
|
- Fix handling of .gnu.debuglto_.debug_* sections. (RHEL-43758)
|
||||||
|
|
||||||
* Tue Jun 04 2024 Nick Clifton <nickc@redhat.com> - 2.35.2-45
|
* Tue Jun 04 2024 Nick Clifton <nickc@redhat.com> - 2.35.2-45
|
||||||
- Fix AArch64 EFI test. (RHEL-39953)
|
- Fix AArch64 EFI test. (RHEL-39953)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user