aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2014-04-10 17:14:18 -0700
committerSandra Loosemore <sandra@codesourcery.com>2014-04-10 17:14:18 -0700
commit1511baeca965fcf4cf36379c6b3f8a0b85263544 (patch)
tree614ea72fefb527674fb066716f61c9e13adbaeaa
parent0a1478f501e2470165d469618ddd069e2c7e4f27 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--bfd/elf32-nios2.c25
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;