aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-01-08 16:46:56 +0000
committerNick Clifton <nickc@redhat.com>2004-01-08 16:46:56 +0000
commit1e7fef1d44576ea9ca318fe51640dd92c7bbb928 (patch)
tree3bfc69878c1b897d959cfb4f826fbf3189d75241 /bfd
parentbfec0b41c9dbc33817c86b2780714c288f1bcefb (diff)
downloadgdb-1e7fef1d44576ea9ca318fe51640dd92c7bbb928.zip
gdb-1e7fef1d44576ea9ca318fe51640dd92c7bbb928.tar.gz
gdb-1e7fef1d44576ea9ca318fe51640dd92c7bbb928.tar.bz2
(coff_arm_relocate_section): Do not alter relocs that are not partial_inplace
during a relocatable link.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-arm.c11
2 files changed, 12 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3bf3ed2..94aa94d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-08 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
+
+ * coff-arm.c (coff_arm_relocate_section): Do not alter relocs that
+ are not partial_inplace during a relocatable link.
+
2004-01-08 Kazu Hirata <kazu@cs.umass.edu>
* elf32-m68k.c (elf_m68k_gc_sweep_hook): Terminate early
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index 9b26123..79bae59 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1734,10 +1734,13 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
#endif
else
#endif /* THUMBEXTENSION */
- rstat = _bfd_final_link_relocate (howto, input_bfd, input_section,
- contents,
- rel->r_vaddr - input_section->vma,
- val, addend);
+ if (info->relocatable && ! howto->partial_inplace)
+ rstat = bfd_reloc_ok;
+ else
+ rstat = _bfd_final_link_relocate (howto, input_bfd, input_section,
+ contents,
+ rel->r_vaddr - input_section->vma,
+ val, addend);
#if 1 /* THUMBEXTENSION */
/* FIXME:
Is this the best way to fix up thumb addresses? krk@cygnus.com