OSDN Git Service

* elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return false
authorRichard Henderson <rth@redhat.com>
Wed, 16 Jul 2003 21:47:36 +0000 (21:47 +0000)
committerRichard Henderson <rth@redhat.com>
Wed, 16 Jul 2003 21:47:36 +0000 (21:47 +0000)
        for symbols defined locally plus -Bsymbolic.  Tidy logic.

bfd/ChangeLog
bfd/elfxx-ia64.c

index 7ed0b1e..fafeb74 100644 (file)
@@ -1,3 +1,8 @@
+2003-07-16  Richard Henderson  <rth@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return false
+       for symbols defined locally plus -Bsymbolic.  Tidy logic.
+
 2003-07-15  Richard Sandiford  <rsandifo@redhat.com>
 
        * archures.c (bfd_mach_mips7000): New.
index c78abe7..2c01c97 100644 (file)
@@ -1653,13 +1653,12 @@ elfNN_ia64_dynamic_symbol_p (h, info)
       || h->root.type == bfd_link_hash_defweak)
     return TRUE;
 
-  if ((!info->executable && (!info->symbolic || info->allow_shlib_undefined))
-      || ((h->elf_link_hash_flags
-          & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
-         == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
+  /* If it isn't defined locally, then clearly it's dynamic.  */
+  if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
     return TRUE;
 
-  return FALSE;
+  /* Identify the cases where name binding rules say it resolves local.  */
+  return !(info->executable || info->symbolic);
 }
 \f
 static bfd_boolean