aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2007-02-12 11:18:11 +0000
committerAlan Modra <amodra@gmail.com>2007-02-12 11:18:11 +0000
commit4aac632ee9db7d3ff11e6ee1ca4f487ac6868e46 (patch)
tree10bc405c8cd398d2a099794a4df9b640729f916e /bfd
parent8da3dbc59acb44f417fef548b4015fb4f538a8c8 (diff)
downloadgdb-4aac632ee9db7d3ff11e6ee1ca4f487ac6868e46.zip
gdb-4aac632ee9db7d3ff11e6ee1ca4f487ac6868e46.tar.gz
gdb-4aac632ee9db7d3ff11e6ee1ca4f487ac6868e46.tar.bz2
* elflink.c (evaluate_complex_relocation_symbols): Ignore relocs
with a zero symbol index.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5dcf47b..605c795 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2007-02-12 Alan Modra <amodra@bigpond.net.au>
+ * elflink.c (evaluate_complex_relocation_symbols): Ignore relocs
+ with a zero symbol index.
+
+2007-02-12 Alan Modra <amodra@bigpond.net.au>
+
* elflink.c (bfd_elf_discard_info): Tidy setting of "eh".
2007-02-05 Dave Brolley <brolley@redhat.com>
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 0b40641..d76faae 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -6769,7 +6769,10 @@ evaluate_complex_relocation_symbols (bfd * input_bfd,
index = ELF32_R_SYM (rel->r_info);
if (bed->s->arch_size == 64)
index >>= 24;
-
+
+ if (index == STN_UNDEF)
+ continue;
+
if (index < locsymcount)
{
/* The symbol is local. */