aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-06-01 21:25:33 +0000
committerRichard Henderson <rth@redhat.com>2002-06-01 21:25:33 +0000
commitc853d7f69e3c1c12fb8ec1d389c68fbd55b2b9f8 (patch)
tree4f563fd43948027dd3945f972eb7b3f254d3a0e3
parent4f4608125d11ed8d8ffc874255cfcb2a56203e2a (diff)
downloadgdb-c853d7f69e3c1c12fb8ec1d389c68fbd55b2b9f8.zip
gdb-c853d7f69e3c1c12fb8ec1d389c68fbd55b2b9f8.tar.gz
gdb-c853d7f69e3c1c12fb8ec1d389c68fbd55b2b9f8.tar.bz2
* elf64-alpha.c (elf64_alpha_check_relocs): Fix typo on maybe_dynamic
check; don't suppress dynamic relocs for non-allocated sections.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-alpha.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 856f3af..4e02f5f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-01 Richard Henderson <rth@redhat.com>
+
+ * elf64-alpha.c (elf64_alpha_check_relocs): Fix typo on maybe_dynamic
+ check; don't suppress dynamic relocs for non-allocated sections.
+
2002-05-31 Alan Modra <amodra@bigpond.net.au>
* bfd-in2.h: Regenerate.
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 7099ba5..7bd9fd5 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -2640,7 +2640,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
if (h && ((info->shared
&& (!info->symbolic || info->allow_shlib_undefined))
|| ! (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
- || h->root.type == bfd_link_hash_defweak))
+ || h->root.root.type == bfd_link_hash_defweak))
maybe_dynamic = true;
need = 0;
@@ -2815,12 +2815,13 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
else
rent->count++;
}
- else if (info->shared && (sec->flags & SEC_ALLOC))
+ else if (info->shared)
{
/* If this is a shared library, and the section is to be
loaded into memory, we need a RELATIVE reloc. */
sreloc->_raw_size += sizeof (Elf64_External_Rela);
- if (sec->flags & SEC_READONLY)
+ if ((sec->flags & (SEC_READONLY | SEC_ALLOC))
+ == (SEC_READONLY | SEC_ALLOC))
info->flags |= DF_TEXTREL;
}
}