2006-11-29 Paul Brook <paul@codesourcery.com>
authorPaul Brook <paul@codesourcery.com>
Wed, 29 Nov 2006 17:40:29 +0000 (17:40 +0000)
committerPaul Brook <paul@codesourcery.com>
Wed, 29 Nov 2006 17:40:29 +0000 (17:40 +0000)
bfd/
* elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
section is present.
(allocate_dynrelocs): Only add export stub for symbols defined in
this object.

bfd/ChangeLog
bfd/elf32-arm.c

index 0aee9b321560a2e118a11775781f64744ff363e2..d68e8765c4a0d27dc5cfca06d5e00b2009e1fd85 100644 (file)
@@ -1,3 +1,17 @@
+2006-11-29  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
+       section is present.
+       (allocate_dynrelocs): Only add export stub for symbols defined in
+       this object.
+
+2006-11-29  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
+       section is present.
+       (allocate_dynrelocs): Only add export stub for symbols defined in
+       this object.
+
 2006-11-29  Paul Brook  <paul@codesourcery.com>
        Julian Brown  <julian@codesourcery.com>
 
index 86e8bff488252b1539cf7f6f8a1b887108bf801f..881bd6013e944e2649a28b79f5830a420613e0ba 100644 (file)
@@ -3380,6 +3380,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,
@@ -7749,6 +7752,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)
     {