summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2006-10-30 21:56:42 +0000
committerPaul Brook <paul@codesourcery.com>2006-10-30 21:56:42 +0000
commit8111a629b6bb82f8318d7e4a3c010dab260c804a (patch)
tree608a39979347a3bc6727488f5749c4bba5819ffa
parentc44b066ea275a1a41d3111e1e9ee77fab619ee41 (diff)
downloadgdb-binutils-csl-arm-2006q3-26.tar.gz
2006-10-30 Paul Brook <paul@codesourcery.com>binutils-csl-sourcerygxx-4_1-26binutils-csl-arm-2006q3-26
bfd/ * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output section is present. (allocate_dynrelocs): Only add export stub for symbols definind in this object.
-rw-r--r--ChangeLog.csl8
-rw-r--r--bfd/elf32-arm.c4
2 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 0a14213f2c6..68f42e78e5a 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,11 @@
+2006-10-30 Paul Brook <paul@codesourcery.com>
+
+ bfd/
+ * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
+ section is present.
+ (allocate_dynrelocs): Only add export stub for symbols definind in
+ this object.
+
2006-10-30 Kazu Hirata <kazu@codesourcery.com>
Merge fido bits:
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index fa9867ec8ea..f842dca2a1a 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -3366,6 +3366,9 @@ elf32_arm_to_thumb_export_stub (struct elf_link_hash_entry *h, void * inf)
BFD_ASSERT (s->output_section != NULL);
sec = eh->export_glue->root.u.def.section;
+
+ BFD_ASSERT (sec->output_section != NULL);
+
val = eh->export_glue->root.u.def.value + sec->output_offset
+ sec->output_section->vma;
myh = elf32_arm_create_thumb_stub (info, h->root.root.string,
@@ -7724,6 +7727,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
/* Allocate stubs for exported Thumb functions on v4t. */
if (!htab->use_blx && h->dynindx != -1
+ && h->def_regular
&& ELF_ST_TYPE (h->type) == STT_ARM_TFUNC
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
{