From: Sandra Loosemore Date: Fri, 11 Apr 2014 00:14:18 +0000 (-0700) Subject: Ignore non-stub sections for nios2 stub_bfd processing. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1511baeca965fcf4cf36379c6b3f8a0b85263544;p=binutils-gdb.git Ignore non-stub sections for nios2 stub_bfd processing. 2014-04-10 Cesar Philippidis bfd/ * elf32-nios2.c (nios2_elf32_build_stubs): Ignore dynobjs when building function stubs. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0fc016ce966..f961dae800a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-04-10 Cesar Philippidis + + * elf32-nios2.c (nios2_elf32_build_stubs): Ignore dynobjs + when building function stubs. + 2014-04-10 Senthil Kumar Selvaraj * elf32-avr.c: Add DIFF relocations for AVR. diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c index 3a44f1d1825..678f2e3e557 100644 --- a/bfd/elf32-nios2.c +++ b/bfd/elf32-nios2.c @@ -2013,16 +2013,21 @@ nios2_elf32_build_stubs (struct bfd_link_info *info) for (stub_sec = htab->stub_bfd->sections; stub_sec != NULL; stub_sec = stub_sec->next) - { - bfd_size_type size; - - /* Allocate memory to hold the linker stubs. */ - size = stub_sec->size; - stub_sec->contents = bfd_zalloc (htab->stub_bfd, size); - if (stub_sec->contents == NULL && size != 0) - return FALSE; - stub_sec->size = 0; - } + /* The stub_bfd may contain non-stub sections if it is also the + dynobj. Any such non-stub sections are created with the + SEC_LINKER_CREATED flag set, while stub sections do not + have that flag. Ignore any non-stub sections here. */ + if ((stub_sec->flags & SEC_LINKER_CREATED) == 0) + { + bfd_size_type size; + + /* Allocate memory to hold the linker stubs. */ + size = stub_sec->size; + stub_sec->contents = bfd_zalloc (htab->stub_bfd, size); + if (stub_sec->contents == NULL && size != 0) + return FALSE; + stub_sec->size = 0; + } /* Build the stubs as directed by the stub hash table. */ table = &htab->bstab;