Fix build error in aarch64-linux-tdep.c on macOS
[deliverable/binutils-gdb.git] / ld / ldmain.c
index 6527613c983a1c33152090eb26579832424dcd68..aca9b1bb5d00320a9adaab4be67a19fa1d6ecad0 100644 (file)
@@ -280,6 +280,7 @@ main (int argc, char **argv)
   link_info.keep_memory = TRUE;
   link_info.combreloc = TRUE;
   link_info.strip_discarded = TRUE;
+  link_info.prohibit_multiple_definition_absolute = FALSE;
   link_info.emit_hash = DEFAULT_EMIT_SYSV_HASH;
   link_info.emit_gnu_hash = DEFAULT_EMIT_GNU_HASH;
   link_info.callbacks = &link_callbacks;
@@ -305,8 +306,6 @@ main (int argc, char **argv)
   emulation = get_emulation (argc, argv);
   ldemul_choose_mode (emulation);
   default_target = ldemul_choose_target (argc, argv);
-  config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
-  config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
   lang_init ();
   ldexp_init ();
   ldemul_before_parse ();
@@ -851,6 +850,10 @@ add_archive_element (struct bfd_link_info *info,
       int len;
 
       h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
+      if (h == NULL
+         && info->pei386_auto_import
+         && CONST_STRNEQ (name, "__imp_"))
+       h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE);
 
       if (h == NULL)
        from = NULL;
@@ -970,12 +973,13 @@ multiple_definition (struct bfd_link_info *info,
      discarded, and this is not really a multiple definition at all.
      FIXME: It would be cleaner to somehow ignore symbols defined in
      sections which are being discarded.  */
-  if ((osec->output_section != NULL
-       && !bfd_is_abs_section (osec)
-       && bfd_is_abs_section (osec->output_section))
-      || (nsec->output_section != NULL
-         && !bfd_is_abs_section (nsec)
-         && bfd_is_abs_section (nsec->output_section)))
+  if (!info->prohibit_multiple_definition_absolute
+      && ((osec->output_section != NULL
+          && ! bfd_is_abs_section (osec)
+          && bfd_is_abs_section (osec->output_section))
+         || (nsec->output_section != NULL
+             && !bfd_is_abs_section (nsec)
+             && bfd_is_abs_section (nsec->output_section))))
     return;
 
   name = h->root.string;
This page took 0.02372 seconds and 4 git commands to generate.