From e04bb226d539e683446a00856dad272a2885035b Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Nov 06 2019 20:32:55 +0000 Subject: Allow OS specific sections in section groups (arm) Signed-off-by: Johnny Hughes --- diff --git a/SOURCES/binutils-special-sections-in-groups.patch b/SOURCES/binutils-special-sections-in-groups.patch new file mode 100644 index 0000000..7010332 --- /dev/null +++ b/SOURCES/binutils-special-sections-in-groups.patch @@ -0,0 +1,27 @@ +--- binutils.orig/bfd/elf.c 2018-10-19 11:42:10.107277490 +0100 ++++ binutils-2.31.1/bfd/elf.c 2018-10-19 11:44:33.607105801 +0100 +@@ -828,7 +828,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd + } + } + +- if (elf_group_name (newsect) == NULL) ++ if (elf_group_name (newsect) == NULL ++ /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section) ++ but they will not have been added to the group because they do not ++ have contents that the ELF code in the BFD library knows how to ++ process. This is OK though - we rely upon the target backends to ++ handle these sections for us. */ ++ && hdr->sh_type < SHT_LOOS) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%B: no group info for section '%A'"), +@@ -934,7 +940,8 @@ _bfd_elf_setup_sections (bfd *abfd) + else if (idx->shdr->bfd_section) + elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section; + else if (idx->shdr->sh_type != SHT_RELA +- && idx->shdr->sh_type != SHT_REL) ++ && idx->shdr->sh_type != SHT_REL ++ && idx->shdr->sh_type < SHT_LOOS) + { + /* There are some unknown sections in the group. */ + _bfd_error_handler diff --git a/SPECS/binutils.spec b/SPECS/binutils.spec index 1d945cf..2af1447 100644 --- a/SPECS/binutils.spec +++ b/SPECS/binutils.spec @@ -380,6 +380,10 @@ Patch56: binutils-AArch64-gold.patch # Lifetime: Fixed in 2.33 Patch57: binutils-multiple-relocs-for-same-section.patch +# Purpose: Allow OS specific sections in section groups. +# Lifetime: Might be fixed in 2.33 +Patch9999: binutils-special-sections-in-groups.patch + #---------------------------------------------------------------------------- Provides: bundled(libiberty) @@ -562,6 +566,10 @@ using libelf instead of BFD. %patch56 -p1 %patch57 -p1 +%ifarch %{arm} +%patch9999 -p1 +%endif + # We cannot run autotools as there is an exact requirement of autoconf-2.59. # FIXME - this is no longer true. Maybe try reinstating autotool use ? @@ -993,6 +1001,9 @@ exit 0 #---------------------------------------------------------------------------- %changelog +* Wed Nov 6 2019 Pablo Greco - 2.30-58 +- Fix bad linking in armhfp + * Fri Sep 13 2019 Nick Clifton 2.30-58 - Stop the BFD library from complaining about sections with multiple sets of relocations. (#1749084)