diff options
author | Nick Clifton <nickc@redhat.com> | 2011-06-09 10:36:20 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-06-09 10:36:20 +0000 |
commit | ba85c43e2c325ceb90f8716fa9a05590c32aef5d (patch) | |
tree | 4addccc0d288815b3722e8cd3f644cd64ebf8f1f /bfd | |
parent | c56791bbad4c8e1e0afbf6b3ae4a5d7e91ee8742 (diff) | |
download | gdb-ba85c43e2c325ceb90f8716fa9a05590c32aef5d.zip gdb-ba85c43e2c325ceb90f8716fa9a05590c32aef5d.tar.gz gdb-ba85c43e2c325ceb90f8716fa9a05590c32aef5d.tar.bz2 |
PR ld/12845
* elf.c (_bfd_elf_init_private_section_data): Add an assertion
that the output section has an allocated bfd_elf_section_data
structure.
* elfxx-mips.c (mips_elf_check_symbols): Do not create a stub for
symbols in sections that have been removed by garbage collection.
* emultempl/mipself.em (mips_add_stub_section): Do not add stubs
for sections that have been removed by garbage collection.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 9 | ||||
-rw-r--r-- | bfd/elf.c | 2 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 25fa50b..40abe45 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2011-06-09 Nick Clifton <nickc@redhat.com> + + PR ld/12845 + * elf.c (_bfd_elf_init_private_section_data): Add an assertion + that the output section has an allocated bfd_elf_section_data + structure. + * elfxx-mips.c (mips_elf_check_symbols): Do not create a stub for + symbols in sections that have been removed by garbage collection. + 2011-06-08 H.J. Lu <hongjiu.lu@intel.com> * elf64-x86-64.c (elf_x86_64_check_relocs): Allow R_X86_64_64 @@ -6272,6 +6272,8 @@ _bfd_elf_init_private_section_data (bfd *ibfd, || obfd->xvec->flavour != bfd_target_elf_flavour) return TRUE; + BFD_ASSERT (elf_section_data (osec) != NULL); + /* For objcopy and relocatable link, don't copy the output ELF section type from input if the output BFD section flags have been set to something different. For a final link allow some flags diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 5c4636a..d5f677f 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -1727,6 +1727,11 @@ mips_elf_check_symbols (struct mips_elf_link_hash_entry *h, void *data) if (mips_elf_local_pic_function_p (h)) { + /* PR 12845: If H is in a section that has been garbage + collected it will have its output section set to *ABS*. */ + if (bfd_is_abs_section (h->root.root.u.def.section->output_section)) + return TRUE; + /* H is a function that might need $25 to be valid on entry. If we're creating a non-PIC relocatable object, mark H as being PIC. If we're creating a non-relocatable object with |