PR gdb/12659:
[binutils-gdb.git] / gold / parameters.cc
index 1b371d8e5bbcb08d5f1e1a701d67a13f0f15662f..7fc5730ee732134382ed61a8afa6f73855dddcc4 100644 (file)
@@ -64,7 +64,7 @@ Set_parameters_target_once set_parameters_target_once(&static_parameters);
 // Class Parameters.
 
 Parameters::Parameters()
-   : errors_(NULL), options_(NULL), target_(NULL),
+   : errors_(NULL), timer_(NULL), options_(NULL), target_(NULL),
      doing_static_link_valid_(false), doing_static_link_(false),
      debug_(0), incremental_mode_(General_options::INCREMENTAL_OFF),
      set_parameters_target_once_(&set_parameters_target_once)
@@ -78,6 +78,13 @@ Parameters::set_errors(Errors* errors)
   this->errors_ = errors;
 }
 
+void
+Parameters::set_timer(Timer* timer)
+{
+  gold_assert(this->timer_ == NULL);
+  this->timer_ = timer;
+}
+
 void
 Parameters::set_options(const General_options* options)
 {
@@ -248,6 +255,14 @@ Parameters::incremental() const
   return this->incremental_mode_ != General_options::INCREMENTAL_OFF;
 }
 
+// Return true if we are doing a full incremental link.
+
+bool
+Parameters::incremental_full() const
+{
+  return this->incremental_mode_ == General_options::INCREMENTAL_FULL;
+}
+
 // Return true if we are doing an incremental update.
 
 bool
@@ -261,6 +276,10 @@ void
 set_parameters_errors(Errors* errors)
 { static_parameters.set_errors(errors); }
 
+void
+set_parameters_timer(Timer* timer)
+{ static_parameters.set_timer(timer); }
+
 void
 set_parameters_options(const General_options* options)
 { static_parameters.set_options(options); }
@@ -338,7 +357,13 @@ parameters_force_valid_target()
                                 is_big_endian,
                                 elfcpp::GOLD_DEFAULT_OSABI,
                                 0);
-  gold_assert(target != NULL);
+
+  if (target == NULL)
+    {
+      gold_assert(is_big_endian != GOLD_DEFAULT_BIG_ENDIAN);
+      gold_fatal(_("no supported target for -EB/-EL option"));
+    }
+
   set_parameters_target(target);
 }