diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-05-04 21:53:02 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-05-04 21:53:02 +0000 |
commit | fc66a176eb0361280975ef844419c0c2d4e4d30c (patch) | |
tree | 2038f353f46faee11976a1224ab8d87f674ad916 | |
parent | 1bc5dc87121d332679c5663f89abc6960ab4e6a6 (diff) | |
download | gdb-fc66a176eb0361280975ef844419c0c2d4e4d30c.zip gdb-fc66a176eb0361280975ef844419c0c2d4e4d30c.tar.gz gdb-fc66a176eb0361280975ef844419c0c2d4e4d30c.tar.bz2 |
2007-05-04 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_sort_relocs): Return if both .rela.dyn
and .rel.dyn aren't present.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.c | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f4eec5c..d136f6c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-05-04 H.J. Lu <hongjiu.lu@intel.com> + + * elflink.c (elf_link_sort_relocs): Return if both .rela.dyn + and .rel.dyn aren't present. + 2007-05-04 Nick Clifton <nickc@redhat.com> * elflink.c (elf_link_sort_relocs): If both .rela.dyn and .rel.dyn diff --git a/bfd/elflink.c b/bfd/elflink.c index 0e1dc6e..b58cfa6 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -7221,8 +7221,8 @@ static size_t elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec) { asection *dynamic_relocs; - asection * rela_dyn; - asection * rel_dyn; + asection *rela_dyn; + asection *rel_dyn; bfd_size_type count, size; size_t i, ret, sort_elt, ext_size; bfd_byte *sort, *s_non_relative, *p; @@ -7361,10 +7361,12 @@ elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec) /* Make a guess. */ use_rela = TRUE; } - else if (rela_dyn == NULL || rela_dyn->size == 0) + else if (rela_dyn != NULL && rela_dyn->size > 0) + use_rela = TRUE; + else if (rel_dyn != NULL && rel_dyn->size > 0) use_rela = FALSE; else - use_rela = TRUE; + return 0; if (use_rela) { |