ld: Add -Bno-symbolic
[deliverable/binutils-gdb.git] / ld / emultempl / vms.em
index 30c1a1602c7e1e5671079eec0068ac4af8109775..243064f8993d393e976c53c6d065ed9e979ac3e4 100644 (file)
@@ -1,6 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright 2010, 2012
-#   Free Software Foundation, Inc.
+#   Copyright (C) 2010-2021 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -29,11 +28,11 @@ static void
 gld${EMULATION_NAME}_before_parse (void)
 {
   ldfile_set_output_arch ("${ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
-  input_flags.dynamic = TRUE;
-  config.has_shared = FALSE; /* Not yet.  */
+  input_flags.dynamic = true;
+  config.has_shared = false; /* Not yet.  */
 
   /* For ia64, harmless for alpha.  */
-  link_info.emit_hash = FALSE;
+  link_info.emit_hash = false;
   link_info.spare_dynamic_tags = 0;
 }
 
@@ -51,15 +50,15 @@ gld${EMULATION_NAME}_create_output_section_statements (void)
 /* Try to open a dynamic archive.  This is where we know that VMS
    shared images (dynamic libraries) have an extension of .exe.  */
 
-static bfd_boolean
+static bool
 gld${EMULATION_NAME}_open_dynamic_archive (const char *arch ATTRIBUTE_UNUSED,
-                                           search_dirs_type *search,
-                                           lang_input_statement_type *entry)
+                                          search_dirs_type *search,
+                                          lang_input_statement_type *entry)
 {
   char *string;
 
-  if (! entry->flags.maybe_archive)
-    return FALSE;
+  if (! entry->flags.maybe_archive || entry->flags.full_name_provided)
+    return false;
 
   string = (char *) xmalloc (strlen (search->name)
                             + strlen (entry->filename)
@@ -70,12 +69,12 @@ gld${EMULATION_NAME}_open_dynamic_archive (const char *arch ATTRIBUTE_UNUSED,
   if (! ldfile_try_open_bfd (string, entry))
     {
       free (string);
-      return FALSE;
+      return false;
     }
 
   entry->filename = string;
 
-  return TRUE;
+  return true;
 }
 
 static int
@@ -86,7 +85,7 @@ gld${EMULATION_NAME}_find_potential_libraries
 }
 
 /* Place an orphan section.  We use this to put random OVR sections.
-   Much borrowed from elf32.em.  */
+   Much borrowed from elf.em.  */
 
 static lang_output_section_statement_type *
 vms_place_orphan (asection *s,
@@ -102,7 +101,7 @@ vms_place_orphan (asection *s,
 
   /* We have nothing to say for anything other than a final link or an excluded
      section.  */
-  if (link_info.relocatable
+  if (bfd_link_relocatable (&link_info)
       || (s->flags & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD)
     return NULL;
 
@@ -117,7 +116,7 @@ vms_place_orphan (asection *s,
 
   if (hold_data.os != NULL)
     {
-      lang_add_section (&hold_data.os->children, s, NULL, hold_data.os);
+      lang_add_section (&hold_data.os->children, s, NULL, NULL, hold_data.os);
       return hold_data.os;
     }
   else
@@ -153,20 +152,20 @@ gld${EMULATION_NAME}_list_options (FILE *file)
   fprintf (file, _("  --identification <string>          Set the identification of the output\n"));
 }
 
-static bfd_boolean
+static bool
 gld${EMULATION_NAME}_handle_option (int optc)
 {
   switch (optc)
     {
     default:
-      return FALSE;
+      return false;
 
     case OPTION_IDENTIFICATION:
       /* Currently ignored.  */
       break;
     }
 
-  return TRUE;
+  return true;
 }
 
 EOF
@@ -175,6 +174,7 @@ if test "$OUTPUT_FORMAT" = "elf64-ia64-vms"; then
 
 fragment <<EOF
 #include "elf-bfd.h"
+#include "ldelfgen.h"
 EOF
 
 source_em ${srcdir}/emultempl/elf-generic.em
@@ -199,8 +199,8 @@ gld${EMULATION_NAME}_before_allocation (void)
   if (elf_hash_table (&link_info)->dynamic_sections_created
       && bed->elf_backend_size_dynamic_sections
       && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd,
-                                                      &link_info))
-    einfo ("%P%F: failed to set dynamic section sizes: %E\n");
+                                                     &link_info))
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   before_allocation_default ();
 }
@@ -208,9 +208,12 @@ gld${EMULATION_NAME}_before_allocation (void)
 static void
 gld${EMULATION_NAME}_after_allocation (void)
 {
-  bfd_boolean need_layout = bfd_elf_discard_info (link_info.output_bfd,
-                                                 &link_info);
-  gld${EMULATION_NAME}_map_segments (need_layout);
+  int need_layout = bfd_elf_discard_info (link_info.output_bfd, &link_info);
+
+  if (need_layout < 0)
+    einfo (_("%X%P: .eh_frame/.stab edit: %E\n"));
+  else
+    ldelf_map_segments (need_layout);
 }
 
 static void
This page took 0.025562 seconds and 4 git commands to generate.