2000-06-05 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 5 Jun 2000 20:46:21 +0000 (20:46 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 5 Jun 2000 20:46:21 +0000 (20:46 +0000)
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't flag
an error when seeing an undefined symbol with hidden/internal
attribute. It is handled in *_relocate_section ().

bfd/ChangeLog
bfd/elflink.c

index 4d07a18..ddced79 100644 (file)
@@ -1,5 +1,11 @@
 2000-06-05  H.J. Lu  <hjl@gnu.org>
 
+       * elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't flag
+       an error when seeing an undefined symbol with hidden/internal
+       attribute. It is handled in *_relocate_section ().
+
+2000-06-05  H.J. Lu  <hjl@gnu.org>
+
        * elflink.h (elf_fix_symbol_flags): Follow the link for the
        indirect symbol for the ELF_LINK_NON_ELF bit.
        (elf_link_output_extsym): Don't output the indirect symbol even
index c593e49..8039b4f 100644 (file)
@@ -226,21 +226,8 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
        {
        case STV_INTERNAL:
        case STV_HIDDEN:
-         /* This symbol must be defined in the shared object or
-            executable.  */
-         if (h->root.type == bfd_link_hash_undefined)
-           {
-             bfd * abfd = h->root.u.undef.abfd;
-             const char * name = h->root.root.string;
-             
-             (*info->callbacks->undefined_symbol)
-               (info, name, abfd, bfd_und_section_ptr, 0, true);
-
-             /* We have flaged a fatal error. We now treat this as
-                a normal symbol to avoid further error messages. */
-             h->other ^= ELF_ST_VISIBILITY (h->other);
-           }
-         else if (h->root.type != bfd_link_hash_undefweak)
+         if (h->root.type != bfd_link_hash_undefined
+             && h->root.type != bfd_link_hash_undefweak)
            {
              h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
              return true;