bfd: update to AC_INIT
[deliverable/binutils-gdb.git] / ld / ldmain.c
index d006ed5d3e8ae4ce28fb095360fee09d24d2ea8d..15f8ebf201f199d11c8c440a3dee6840d03a8c72 100644 (file)
@@ -88,25 +88,13 @@ int g_switch_value = 8;
 /* Nonzero means print names of input files as processed.  */
 bfd_boolean trace_files;
 
-/* Nonzero means same, but note open failures, too.  */
-bfd_boolean trace_file_tries;
+/* Nonzero means report actions taken by the linker, and describe the linker script in use.  */
+bfd_boolean verbose;
 
 /* Nonzero means version number was printed, so exit successfully
    instead of complaining if no input files are given.  */
 bfd_boolean version_printed;
 
-/* Nonzero means link in every member of an archive.  */
-bfd_boolean whole_archive;
-
-/* True means only create DT_NEEDED entries for dynamic libraries
-   if they actually satisfy some reference in a regular object.  */
-bfd_boolean add_DT_NEEDED_for_regular;
-
-/* True means create DT_NEEDED entries for dynamic libraries that
-   are DT_NEEDED by dynamic libraries specifically mentioned on
-   the command line.  */
-bfd_boolean add_DT_NEEDED_for_dynamic;
-
 /* TRUE if we should demangle symbol names.  */
 bfd_boolean demangling;
 
@@ -172,6 +160,8 @@ static struct bfd_link_callbacks link_callbacks =
   ldlang_override_segment_assignment
 };
 
+static bfd_assert_handler_type default_bfd_assert_handler;
+
 struct bfd_link_info link_info;
 \f
 static void
@@ -185,6 +175,17 @@ ld_cleanup (void)
     unlink_if_ordinary (output_filename);
 }
 
+/* If there's a BFD assertion, we'll notice and exit with an error
+   unless otherwise instructed.  */
+
+static void
+ld_bfd_assert_handler (const char *fmt, const char *bfdver,
+                      const char *file, int line)
+{
+  (*default_bfd_assert_handler) (fmt, bfdver, file, line);
+  config.make_executable = FALSE;
+}
+
 int
 main (int argc, char **argv)
 {
@@ -211,6 +212,11 @@ main (int argc, char **argv)
 
   bfd_set_error_program_name (program_name);
 
+  /* We want to notice and fail on those nasty BFD assertions which are
+     likely to signal incorrect output being generated but otherwise may
+     leave no trace.  */
+  default_bfd_assert_handler = bfd_set_assert_handler (ld_bfd_assert_handler);
+
   xatexit (ld_cleanup);
 
   /* Set up the sysroot directory.  */
@@ -334,7 +340,7 @@ main (int argc, char **argv)
       lex_string = NULL;
     }
 
-  if (trace_file_tries)
+  if (verbose)
     {
       if (saved_script_handle)
        info_msg (_("using external linker script:"));
@@ -767,9 +773,9 @@ add_archive_element (struct bfd_link_info *info,
          file.filesize = arelt_size (abfd);
          file.fd = fd;
          plugin_maybe_claim (&file, input);
-         if (input->claimed)
+         if (input->flags.claimed)
            {
-             input->claim_archive = TRUE;
+             input->flags.claim_archive = TRUE;
              *subsbfd = input->the_bfd;
            }
        }
@@ -855,7 +861,7 @@ add_archive_element (struct bfd_link_info *info,
        minfo ("(%s)\n", name);
     }
 
-  if (trace_files || trace_file_tries)
+  if (trace_files || verbose)
     info_msg ("%I\n", &orig_input);
   return TRUE;
 }
This page took 0.024037 seconds and 4 git commands to generate.