* elf64-alpha.c (elf64_alpha_check_relocs): Fix typo on maybe_dynamic
authorRichard Henderson <rth@redhat.com>
Sat, 1 Jun 2002 21:25:33 +0000 (21:25 +0000)
committerRichard Henderson <rth@redhat.com>
Sat, 1 Jun 2002 21:25:33 +0000 (21:25 +0000)
        check; don't suppress dynamic relocs for non-allocated sections.

bfd/ChangeLog
bfd/elf64-alpha.c

index 856f3afd2bde868428a5b9d8d5c9681706ee0770..4e02f5f8060b1298435447a4fcf5153085d624c2 100644 (file)
@@ -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.
index 7099ba5d41a04072d6ec94c2c59395298c14612e..7bd9fd5084f936c101a28b05beca8675072d8985 100644 (file)
@@ -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;
            }
        }