diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2014-04-10 17:14:18 -0700 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2014-04-10 17:14:18 -0700 |
commit | 1511baeca965fcf4cf36379c6b3f8a0b85263544 (patch) | |
tree | 614ea72fefb527674fb066716f61c9e13adbaeaa | |
parent | 0a1478f501e2470165d469618ddd069e2c7e4f27 (diff) | |
download | gdb-1511baeca965fcf4cf36379c6b3f8a0b85263544.zip gdb-1511baeca965fcf4cf36379c6b3f8a0b85263544.tar.gz gdb-1511baeca965fcf4cf36379c6b3f8a0b85263544.tar.bz2 |
Ignore non-stub sections for nios2 stub_bfd processing.
2014-04-10 Cesar Philippidis <cesar@codesourcery.com>
bfd/
* elf32-nios2.c (nios2_elf32_build_stubs): Ignore dynobjs
when building function stubs.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-nios2.c | 25 |
2 files changed, 20 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0fc016c..f961dae 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-04-10 Cesar Philippidis <cesar@codesourcery.com> + + * elf32-nios2.c (nios2_elf32_build_stubs): Ignore dynobjs + when building function stubs. + 2014-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> * elf32-avr.c: Add DIFF relocations for AVR. diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c index 3a44f1d..678f2e3 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; |