// 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.
#define GOLD_TARGET_H
#include "elfcpp.h"
+#include "options.h"
#include "parameters.h"
namespace gold
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;
}
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,
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
// 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
// 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.
// 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.