Don't write to inferior_ptid in tracectf.c
[deliverable/binutils-gdb.git] / gold / options.h
index 152b0c16bb3b507cfbbbf88f45b31e79bb3b0aad..f0e9fbddcd5f77d6a78a405dcc5ecdbe4f786f17 100644 (file)
@@ -1,6 +1,6 @@
 // options.h -- handle command line options for gold  -*- C++ -*-
 
-// Copyright (C) 2006-2018 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.
@@ -946,7 +946,7 @@ class General_options
              {"none", "all", "safe"});
 
   DEFINE_uint(icf_iterations, options::TWO_DASHES , '\0', 0,
-             N_("Number of iterations of ICF (default 2)"), N_("COUNT"));
+             N_("Number of iterations of ICF (default 3)"), N_("COUNT"));
 
   DEFINE_special(incremental, options::TWO_DASHES, '\0',
                 N_("Do an incremental link if possible; "
@@ -1125,6 +1125,12 @@ class General_options
                 N_("Load a plugin library"), N_("PLUGIN"));
   DEFINE_special(plugin_opt, options::TWO_DASHES, '\0',
                 N_("Pass an option to the plugin"), N_("OPTION"));
+#else
+  DEFINE_special(plugin, options::TWO_DASHES, '\0',
+                N_("Load a plugin library (not supported)"), N_("PLUGIN"));
+  DEFINE_special(plugin_opt, options::TWO_DASHES, '\0',
+                N_("Pass an option to the plugin (not supported)"),
+                N_("OPTION"));
 #endif
 
   DEFINE_bool(posix_fallocate, options::TWO_DASHES, '\0', true,
@@ -1176,7 +1182,7 @@ class General_options
 
   DEFINE_bool(rosegment, options::TWO_DASHES, '\0', false,
              N_("Put read-only non-executable sections in their own segment"),
-             NULL);
+             N_("Do not put read-only non-executable sections in their own segment"));
 
   DEFINE_uint64(rosegment_gap, options::TWO_DASHES, '\0', -1U,
                N_("Set offset between executable and read-only segments"),
@@ -1355,6 +1361,10 @@ class General_options
   DEFINE_bool_ignore(warn_constructors, options::TWO_DASHES, '\0',
                     N_("Ignored"), N_("Ignored"));
 
+  DEFINE_bool(warn_drop_version, options::TWO_DASHES, '\0', false,
+             N_("Warn when discarding version information"),
+             N_("Do not warn when discarding version information"));
+
   DEFINE_bool(warn_execstack, options::TWO_DASHES, '\0', false,
              N_("Warn if the stack is executable"),
              N_("Do not warn if the stack is executable"));
@@ -1490,6 +1500,11 @@ class General_options
              N_("Don't mark variables read-only after relocation"));
   DEFINE_uint64(stack_size, options::DASH_Z, '\0', 0,
                N_("Set PT_GNU_STACK segment p_memsz to SIZE"), N_("SIZE"));
+  DEFINE_enum(start_stop_visibility, options::DASH_Z, '\0', "protected",
+              N_("ELF symbol visibility for synthesized "
+                 "__start_* and __stop_* symbols"),
+              ("[default,internal,hidden,protected]"),
+              {"default", "internal", "hidden", "protected"});
   DEFINE_bool(text, options::DASH_Z, '\0', false,
              N_("Do not permit relocations in read-only segments"),
              N_("Permit relocations in read-only segments"));
@@ -1500,6 +1515,10 @@ class General_options
              N_("Move .text.unlikely sections to a separate segment."),
              N_("Do not move .text.unlikely sections to a separate "
                 "segment."));
+  DEFINE_bool(keep_text_section_prefix, options::DASH_Z, '\0', false,
+             N_("Keep .text.hot, .text.startup, .text.exit and .text.unlikely "
+                "as separate sections in the final binary."),
+             N_("Merge all .text.* prefix sections."));
 
 
  public:
@@ -1736,6 +1755,10 @@ class General_options
   orphan_handling_enum() const
   { return this->orphan_handling_enum_; }
 
+  elfcpp::STV
+  start_stop_visibility_enum() const
+  { return this->start_stop_visibility_enum_; }
+
  private:
   // Don't copy this structure.
   General_options(const General_options&);
@@ -1795,6 +1818,10 @@ class General_options
   set_orphan_handling_enum(Orphan_handling value)
   { this->orphan_handling_enum_ = value; }
 
+  void
+  set_start_stop_visibility_enum(elfcpp::STV value)
+  { this->start_stop_visibility_enum_ = value; }
+
   // These are called by finalize() to set up the search-path correctly.
   void
   add_to_library_path_with_sysroot(const std::string& arg)
@@ -1862,6 +1889,8 @@ class General_options
   std::vector<Position_dependent_options*> options_stack_;
   // Orphan handling option, decoded to an enum value.
   Orphan_handling orphan_handling_enum_;
+  // Symbol visibility for __start_* / __stop_* magic symbols.
+  elfcpp::STV start_stop_visibility_enum_;
 };
 
 // The position-dependent options.  We use this to store the state of
This page took 0.025445 seconds and 4 git commands to generate.