aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-09-28 09:45:33 +0000
committerNick Clifton <nickc@redhat.com>2009-09-28 09:45:33 +0000
commitcaa83f8b08be81c0f5a93fd8beee392eeac826bc (patch)
tree938d28131809fc700206f5990d812e16a8f417ff /bfd/elf.c
parentfc9f1df98e169c50b9cc1b7b016a3fb712c3af1f (diff)
downloadgdb-caa83f8b08be81c0f5a93fd8beee392eeac826bc.zip
gdb-caa83f8b08be81c0f5a93fd8beee392eeac826bc.tar.gz
gdb-caa83f8b08be81c0f5a93fd8beee392eeac826bc.tar.bz2
PR 10478
* elf.c (bfd_section_from_shdr): Allow SHN_BEFORE and SHN_AFTER section link values in x86 binaries. * elfcode.h (elf_object_p): Likewise. * readelf.c (get_elf_section_flags): Allow SHN_BEFORE and SHN_AFTER section link values in x86 binaries. (process_section_headers): Likewise.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r--bfd/elf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf.c b/bfd/elf.c
index e7116d8..4a32929 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1518,10 +1518,11 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
return FALSE;
if (hdr->sh_link > elf_numsections (abfd))
{
- /* PR 10478: Accept sparc binaries with a sh_link
+ /* PR 10478: Accept Solaris binaries with a sh_link
field set to SHN_BEFORE or SHN_AFTER. */
switch (bfd_get_arch (abfd))
{
+ case bfd_arch_i386:
case bfd_arch_sparc:
if (hdr->sh_link == (SHN_LORESERVE & 0xffff) /* SHN_BEFORE */
|| hdr->sh_link == ((SHN_LORESERVE + 1) & 0xffff) /* SHN_AFTER */)