Blame SOURCES/binutils-special-sections-in-groups.patch
|
Pablo Greco |
e04bb2 |
--- binutils.orig/bfd/elf.c 2018-10-19 11:42:10.107277490 +0100
|
|
Pablo Greco |
e04bb2 |
+++ binutils-2.31.1/bfd/elf.c 2018-10-19 11:44:33.607105801 +0100
|
|
Pablo Greco |
e04bb2 |
@@ -828,7 +828,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
|
|
Pablo Greco |
e04bb2 |
}
|
|
Pablo Greco |
e04bb2 |
}
|
|
Pablo Greco |
e04bb2 |
|
|
Pablo Greco |
e04bb2 |
- if (elf_group_name (newsect) == NULL)
|
|
Pablo Greco |
e04bb2 |
+ if (elf_group_name (newsect) == NULL
|
|
Pablo Greco |
e04bb2 |
+ /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section)
|
|
Pablo Greco |
e04bb2 |
+ but they will not have been added to the group because they do not
|
|
Pablo Greco |
e04bb2 |
+ have contents that the ELF code in the BFD library knows how to
|
|
Pablo Greco |
e04bb2 |
+ process. This is OK though - we rely upon the target backends to
|
|
Pablo Greco |
e04bb2 |
+ handle these sections for us. */
|
|
Pablo Greco |
e04bb2 |
+ && hdr->sh_type < SHT_LOOS)
|
|
Pablo Greco |
e04bb2 |
{
|
|
Pablo Greco |
e04bb2 |
/* xgettext:c-format */
|
|
Pablo Greco |
e04bb2 |
_bfd_error_handler (_("%B: no group info for section '%A'"),
|
|
Pablo Greco |
e04bb2 |
@@ -934,7 +940,8 @@ _bfd_elf_setup_sections (bfd *abfd)
|
|
Pablo Greco |
e04bb2 |
else if (idx->shdr->bfd_section)
|
|
Pablo Greco |
e04bb2 |
elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section;
|
|
Pablo Greco |
e04bb2 |
else if (idx->shdr->sh_type != SHT_RELA
|
|
Pablo Greco |
e04bb2 |
- && idx->shdr->sh_type != SHT_REL)
|
|
Pablo Greco |
e04bb2 |
+ && idx->shdr->sh_type != SHT_REL
|
|
Pablo Greco |
e04bb2 |
+ && idx->shdr->sh_type < SHT_LOOS)
|
|
Pablo Greco |
e04bb2 |
{
|
|
Pablo Greco |
e04bb2 |
/* There are some unknown sections in the group. */
|
|
Pablo Greco |
e04bb2 |
_bfd_error_handler
|