Robustify mi-simplerun.
[deliverable/binutils-gdb.git] / gold / target.h
index fa18fc7a356a1e49647a2d4d3dba10b81c8469b3..30fa0086ca638eca16a2684f35af2deab81692c1 100644 (file)
@@ -1,6 +1,6 @@
 // target.h -- target support for gold   -*- C++ -*-
 
-// Copyright 2006, 2007 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -34,6 +34,7 @@
 #define GOLD_TARGET_H
 
 #include "elfcpp.h"
+#include "options.h"
 #include "parameters.h"
 
 namespace gold
@@ -105,8 +106,8 @@ class Target
   uint64_t
   abi_pagesize() const
   {
-    if (parameters->max_page_size() > 0)
-      return parameters->max_page_size();
+    if (parameters->options().max_page_size() > 0)
+      return parameters->options().max_page_size();
     else
       return this->pti_->abi_pagesize;
   }
@@ -115,8 +116,8 @@ class Target
   uint64_t
   common_pagesize() const
   {
-    if (parameters->common_page_size() > 0)
-      return std::min(parameters->common_page_size(),
+    if (parameters->options().common_page_size() > 0)
+      return std::min(parameters->options().common_page_size(),
                      this->abi_pagesize());
     else
       return std::min(this->pti_->common_pagesize,
@@ -131,6 +132,15 @@ class Target
   is_default_stack_executable() const
   { return this->pti_->is_default_stack_executable; }
 
+  // Return a character which may appear as a prefix for a wrap
+  // symbol.  If this character appears, we strip it when checking for
+  // wrapping and add it back when forming the final symbol name.
+  // This should be '\0' if not special prefix is required, which is
+  // the normal case.
+  char
+  wrap_char() const
+  { return this->pti_->wrap_char; }
+
   // This is called to tell the target to complete any sections it is
   // handling.  After this all sections must have their final size.
   void
@@ -148,7 +158,7 @@ class Target
   // basically one or more NOPS which must fill out the specified
   // length in bytes.
   std::string
-  code_fill(section_size_type length)
+  code_fill(section_size_type length) const
   { return this->do_code_fill(length); }
 
   // Return whether SYM is known to be defined by the ABI.  This is
@@ -178,6 +188,8 @@ class Target
     // Whether an object file with no .note.GNU-stack sections implies
     // that the stack should be executable.
     bool is_default_stack_executable;
+    // Prefix character to strip when checking for wrapping.
+    char wrap_char;
     // The default dynamic linker name.
     const char* dynamic_linker;
     // The default text segment address.
@@ -205,7 +217,7 @@ class Target
   // Virtual function which must be implemented by the child class if
   // needed.
   virtual std::string
-  do_code_fill(section_size_type)
+  do_code_fill(section_size_type) const
   { gold_unreachable(); }
 
   // Virtual function which may be implemented by the child class.
This page took 0.024389 seconds and 4 git commands to generate.