aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c10
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)
{