gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gold / gold.cc
index 18b06b921db5dd719016445567b0c18b8361de04..f02d2aadaf7367efcefd9be67a3e61880dda6185 100644 (file)
@@ -1,6 +1,6 @@
 // gold.cc -- main linker functions
 
-// Copyright (C) 2006-2015 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -175,7 +175,7 @@ queue_initial_tasks(const General_options& options,
                    Workqueue* workqueue, Input_objects* input_objects,
                    Symbol_table* symtab, Layout* layout, Mapfile* mapfile)
 {
-  if (cmdline.begin() == cmdline.end())
+  if (cmdline.number_of_input_files() == 0)
     {
       bool is_ok = false;
       if (options.printed_version())
@@ -492,6 +492,14 @@ queue_middle_tasks(const General_options& options,
   if (timer != NULL)
     timer->stamp(0);
 
+  // We have to support the case of not seeing any input objects, and
+  // generate an empty file.  Existing builds depend on being able to
+  // pass an empty archive to the linker and get an empty object file
+  // out.  In order to do this we need to use a default target.
+  if (input_objects->number_of_input_objects() == 0
+      && layout->incremental_base() == NULL)
+    parameters_force_valid_target();
+
   // Add any symbols named with -u options to the symbol table.
   symtab->add_undefined_symbols_from_command_line(layout);
 
@@ -589,14 +597,6 @@ queue_middle_tasks(const General_options& options,
        }
     }
 
-  // We have to support the case of not seeing any input objects, and
-  // generate an empty file.  Existing builds depend on being able to
-  // pass an empty archive to the linker and get an empty object file
-  // out.  In order to do this we need to use a default target.
-  if (input_objects->number_of_input_objects() == 0
-      && layout->incremental_base() == NULL)
-    parameters_force_valid_target();
-
   int thread_count = options.thread_count_middle();
   if (thread_count == 0)
     thread_count = std::max(2, input_objects->number_of_input_objects());
@@ -631,10 +631,16 @@ queue_middle_tasks(const General_options& options,
          for (++p; p != input_objects->relobj_end(); ++p)
            {
              if ((*p)->uses_split_stack() != uses_split_stack)
-               gold_fatal(_("cannot mix split-stack '%s' and "
-                            "non-split-stack '%s' when using -r"),
-                          (*input_objects->relobj_begin())->name().c_str(),
-                          (*p)->name().c_str());
+               {
+                 const char *name1
+                   = (*input_objects->relobj_begin())->name().c_str();
+                 const char *name2 = (*p)->name().c_str();
+                 const char *name_split = uses_split_stack ? name1 : name2;
+                 const char *name_nosplit = uses_split_stack ? name2 : name1;
+                 gold_fatal(_("cannot mix split-stack '%s' and "
+                              "non-split-stack '%s' when using -r"),
+                            name_split, name_nosplit);
+               }
            }
        }
     }
This page took 0.02533 seconds and 4 git commands to generate.