summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM R Swami Reddy <MR.Swami.Reddy@nsc.com>2009-09-09 04:49:09 +0000
committerM R Swami Reddy <MR.Swami.Reddy@nsc.com>2009-09-09 04:49:09 +0000
commit1004c3e14acc32a219f141bca170b12174e57ab3 (patch)
tree4af38736225552af4c0f57d0cf941d7b8a044181
parent498199fc743408eb0e6bf6ad326409c5b3fd64a3 (diff)
downloadbinutils-gdb-1004c3e14acc32a219f141bca170b12174e57ab3.tar.gz
2009-09-09 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* elf32-cr16.c (elf32_cr16_relocate_section): Add code to discard the linkonce or linker script discarded section.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-cr16.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b0122766619..9fd34c2e8ea 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-09 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * elf32-cr16.c (elf32_cr16_relocate_section): Add code to discard the
+ linkonce or linker script discarded section.
+
2009-09-09 Alan Modra <amodra@bigpond.net.au>
* elf32-xtensa.c (elf_xtensa_relax_section): Delete -r check.
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index f5e561e7dd1..17be1ff5621 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -1473,6 +1473,20 @@ elf32_cr16_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
unresolved_reloc, warned);
}
+ if (sec != NULL && elf_discarded_section (sec))
+ {
+ /* For relocs against symbols from removed linkonce sections,
+ or sections discarded by a linker script, we just want the
+ section contents zeroed. Avoid any special processing. */
+ _bfd_clear_contents (howto, input_bfd, contents + rel->r_offset);
+ rel->r_info = 0;
+ rel->r_addend = 0;
+ continue;
+ }
+
+ if (info->relocatable)
+ continue;
+
r = cr16_elf_final_link_relocate (howto, input_bfd, output_bfd,
input_section,
contents, rel->r_offset,