aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2008-12-02 09:33:12 +0000
committerKai Tietz <kai.tietz@onevision.com>2008-12-02 09:33:12 +0000
commitacac4c696228244258dea61e4b0d50f6e69d929b (patch)
tree62e8feece53c883ff4cf5a6235983c44d7e225d2 /ld
parentf96fc22a9d6991e34fe75cbf84329c31854ea81b (diff)
downloadbinutils-acac4c696228244258dea61e4b0d50f6e69d929b.zip
binutils-acac4c696228244258dea61e4b0d50f6e69d929b.tar.gz
binutils-acac4c696228244258dea61e4b0d50f6e69d929b.tar.bz2
2008-12-02 Kai Tietz <kai.tietz@onevision.com>
* pe-dll.c (make_runtime_pseudo_reloc): Make symtab big enough to hold relocations.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/pe-dll.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 620997a..2adfb63 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-02 Kai Tietz <kai.tietz@onevision.com>
+
+ * pe-dll.c (make_runtime_pseudo_reloc): Make symtab big enough to
+ hold relocations.
+
2008-11-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* emultempl/cr16elf.em (cr16_after_open): New function to handle
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 35836a7..3e67068 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -2284,7 +2284,14 @@ make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = xmalloc (2 * sizeof (asymbol *));
+ if (link_info.pei386_runtime_pseudo_reloc == 2)
+ {
+ symtab = xmalloc ((runtime_pseudp_reloc_v2_init ? 3 : 6) * sizeof (asymbol *));
+ }
+ else
+ {
+ symtab = xmalloc (2 * sizeof (asymbol *));
+ }
rt_rel = quick_section (abfd, ".rdata_runtime_pseudo_reloc",
SEC_HAS_CONTENTS, 2);