aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorPhil Blundell <philb@gnu.org>2000-09-03 16:32:02 +0000
committerPhil Blundell <philb@gnu.org>2000-09-03 16:32:02 +0000
commit05924f3654beecbf6c38691e4a2588d944541729 (patch)
tree1e3cf56f317918c4944284404ab32679b9542d9c /bfd
parent574dd9a99834c6fcefe5f1ee5d4864433305dc42 (diff)
downloadgdb-05924f3654beecbf6c38691e4a2588d944541729.zip
gdb-05924f3654beecbf6c38691e4a2588d944541729.tar.gz
gdb-05924f3654beecbf6c38691e4a2588d944541729.tar.bz2
2000-09-03 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_relocate_section): Don't try to relocate references to undefined symbols in debugging sections.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.h9
2 files changed, 13 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3a967f7..191b5d2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2000-09-03 Philip Blundell <philb@gnu.org>
+
+ * elf32-arm.h (elf32_arm_relocate_section): Don't try to relocate
+ references to undefined symbols in debugging sections.
+
2000-09-02 H.J. Lu <hjl@gnu.org>
* reloc.c (BFD_RELOC_SH_COPY, BFD_RELOC_SH_GLOB_DAT,
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
index 716017e..f3b2a44 100644
--- a/bfd/elf32-arm.h
+++ b/bfd/elf32-arm.h
@@ -1794,7 +1794,14 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
(!info->symbolic && h->dynindx != -1)
|| (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
)
- && ((input_section->flags & SEC_ALLOC) != 0)
+ && ((input_section->flags & SEC_ALLOC) != 0
+ /* DWARF will emit R_ARM_ABS32 relocations in its
+ sections against symbols defined externally
+ in shared libraries. We can't do anything
+ with them here. */
+ || ((input_section->flags & SEC_DEBUGGING) != 0
+ && (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
)
relocation_needed = 0;
break;