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.
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 0a14213..68f42e7 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 fa9867e..f842dca 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -3366,6 +3366,9 @@
   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 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)
     {