diff options
author | Alan Modra <amodra@gmail.com> | 2008-02-04 00:09:04 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2008-02-04 00:09:04 +0000 |
commit | e44a2c9c3dd1e12fd2707c6407d3763fa8acae17 (patch) | |
tree | fc6ed5ac0f925500880dc82814b8cc27a316df3c | |
parent | ce43ce4475d418368fcb46eca3d9457cb18e461c (diff) | |
download | gdb-e44a2c9c3dd1e12fd2707c6407d3763fa8acae17.zip gdb-e44a2c9c3dd1e12fd2707c6407d3763fa8acae17.tar.gz gdb-e44a2c9c3dd1e12fd2707c6407d3763fa8acae17.tar.bz2 |
PR ld/5692
* elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort
on non-ELF input.
* elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
processing on non-ELF input.
-rw-r--r-- | bfd/ChangeLog | 8 | ||||
-rw-r--r-- | bfd/elf.c | 6 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 12 |
3 files changed, 21 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 76b95d8..218fce6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2008-02-04 Alan Modra <amodra@bigpond.net.au> + + PR ld/5692 + * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort + on non-ELF input. + * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue + processing on non-ELF input. + 2008-01-31 Marc Gauthier <marc@tensilica.com> * config.bfd (xtensa*-*-*): Recognize processor variants. @@ -351,6 +351,9 @@ bfd_elf_get_elf_syms (bfd *ibfd, bfd_size_type amt; file_ptr pos; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + abort (); + if (symcount == 0) return intsym_buf; @@ -363,9 +366,6 @@ bfd_elf_get_elf_syms (bfd *ibfd, alloc_ext = NULL; alloc_extshndx = NULL; bed = get_elf_backend_data (ibfd); - /* PR ld/5692: Check for non-ELF files. */ - if (bed == NULL) - return NULL; extsym_size = bed->s->sizeof_sym; amt = symcount * extsym_size; pos = symtab_hdr->sh_offset + symoffset * extsym_size; diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 3146499..b9bc502 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -1,6 +1,6 @@ /* 32-bit ELF support for ARM - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 - Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -8524,6 +8524,11 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, Elf_Internal_Shdr *symtab_hdr; asection *srel; + /* FIXME: Here and elsewhere the test for an ELF input BFD is + not sufficiently strict. Since we use elf32_arm_tdata and + elf32_arm_section_data, we should only allow those targets + that in fact have such data. This of course is the set of + targets defined in this file. */ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) continue; @@ -8601,6 +8606,9 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, /* Here we rummage through the found bfds to collect glue information. */ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) { + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + continue; + /* Initialise mapping tables for code/data. */ bfd_elf32_arm_init_maps (ibfd); |