+2010-12-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * dwarf_reader.cc: Remove outdated comment.
+ * gold-threads.cc: Fix typo in error message.
+ * archive.cc: Fix typos in comments.
+ * archive.h: Likewise.
+ * arm-reloc-property.cc: Likewise.
+ * arm-reloc-property.h: Likewise.
+ * arm-reloc.def: Likewise.
+ * arm.cc: Likewise.
+ * attributes.h: Likewise.
+ * cref.cc: Likewise.
+ * ehframe.cc: Likewise.
+ * fileread.h: Likewise.
+ * gold.h: Likewise.
+ * i386.cc: Likewise.
+ * icf.cc: Likewise.
+ * incremental.h: Likewise.
+ * int_encoding.cc: Likewise.
+ * layout.h: Likewise.
+ * main.cc: Likewise.
+ * merge.h: Likewise.
+ * object.cc: Likewise.
+ * object.h: Likewise.
+ * options.cc: Likewise.
+ * readsyms.cc: Likewise.
+ * reduced_debug_output.cc: Likewise.
+ * reloc.cc: Likewise.
+ * script-sections.cc: Likewise.
+ * sparc.cc: Likewise.
+ * symtab.h: Likewise.
+ * target-reloc.h: Likewise.
+ * target.cc: Likewise.
+ * target.h: Likewise.
+ * timer.cc: Likewise.
+ * timer.h: Likewise.
+ * x86_64.cc: Likewise.
+
2010-12-09 Cary Coutant <ccoutant@google.com>
* layout.cc (Layout::layout_gnu_stack): Add warnings for executable
{
// The header of an entry in the archive. This is all readable text,
-// padded with spaces where necesary. If the contents of an archive
+// padded with spaces where necessary. If the contents of an archive
// are all text file, the entire archive is readable.
struct Archive::Archive_header
}
// Select members from the lib group and add them to the link. We walk
-// through the the members, and check if each one up should be included.
+// through the members, and check if each one up should be included.
// If the object says it should be included, we do so. We have to do
// this in a loop, since including one member may create new undefined
// symbols which may be satisfied by other members.
Task_token* next_blocker_;
};
-// This class represents the files surrunded by a --start-lib ... --end-lib.
+// This class represents the files surrounded by a --start-lib ... --end-lib.
class Lib_group
{
Arm_reloc_property_table::Arm_reloc_property_table()
{
- // These appers in arm-reloc.def. Do not rename them.
+ // These appear in arm-reloc.def. Do not rename them.
Parse_expression A("A"), GOT_ORG("GOT_ORG"), NONE("NONE"), P("P"),
Pa("Pa"), S("S"), T("T"), TLS("TLS"), tp("tp");
const bool Y(true), N(false);
namespace gold
{
-// The Arm_reloc_property class is to store information about a paticular
+// The Arm_reloc_property class is to store information about a particular
// relocation code.
class Arm_reloc_property
bool uses_symbol_ : 1;
};
-// Arm_reloc_property_table. This table is used for looking up propeties
-// of relocationt types. The table entries are initialized using information
+// Arm_reloc_property_table. This table is used for looking up properties
+// of relocation types. The table entries are initialized using information
// from arm-reloc.def.
class Arm_reloc_property_table
: NULL);
}
- // Return a string describing the a relocation code that is not
+ // Return a string describing the relocation code that is not
// an implemented static reloc code.
std::string
reloc_name_in_error_message(unsigned int code);
// arm-reloc.def into S-expression strings, which are parsed again to
// build actual expression trees. We do not build the expression trees
// directly because the parser for operations in arm-reloc.def is simpler
- // this way. Coversion from S-expressions to trees is simple.
+ // this way. Conversion from S-expressions to trees is simple.
class Parse_expression
{
public:
// Architecture" (Document number ARM IHI 0044C). The first five columns of
// the table below are derived from Table 4-8 in the ARM ELF document. Each
// relocation from Table 4-8 corresponds to one relocation definition in the
-// table below. A relocation defintion has the following information:
+// table below. A relocation definition has the following information:
//
// Name: This is the name of the relocation without the "R_ARM_" prefix.
//
// is expected to handle these though they should not be generated by fully
// conforming tool-chains.
//
-// Operation: An expression specifying how the linker should performace a
+// Operation: An expression specifying how the linker should perform a
// relocation. If there is no operation or the operation cannot be
// specified, it is "NONE".
//
// Ideally we would like to avoid using global variables but this is used
// very in many places and sometimes in loops. If we use a function
-// returning a static instance of Arm_reloc_property_table, it will very
+// returning a static instance of Arm_reloc_property_table, it will be very
// slow in an threaded environment since the static instance needs to be
// locked. The pointer is below initialized in the
// Target::do_select_as_default_target() hook so that we do not spend time
// If this is a local symbol, this is the index in the defining object.
// Otherwise, it is invalid_index for a global symbol.
unsigned int r_sym_;
- // If r_sym_ is invalid index. This points to a global symbol.
- // Otherwise, this points a relobj. We used the unsized and target
+ // If r_sym_ is an invalid index, this points to a global symbol.
+ // Otherwise, it points to a relobj. We used the unsized and target
// independent Symbol and Relobj classes instead of Sized_symbol<32> and
- // Arm_relobj. This is done to avoid making the stub class a template
+ // Arm_relobj, in order to avoid making the stub class a template
// as most of the stub machinery is endianness-neutral. However, it
// may require a bit of casting done by users of this class.
union
current_data_size() const
{ return this->current_data_size_for_child(); }
- // Add a STUB with using KEY. Caller is reponsible for avoid adding
- // if already a STUB with the same key has been added.
+ // Add a STUB using KEY. The caller is responsible for avoiding addition
+ // if a STUB with the same key has already been added.
void
add_reloc_stub(Reloc_stub* stub, const Reloc_stub::Key& key)
{
}
// Add a Cortex-A8 STUB that fixes up a THUMB branch at ADDRESS.
- // Caller is reponsible for avoid adding if already a STUB with the same
- // address has been added.
+ // The caller is responsible for avoiding addition if a STUB with the same
+ // address has already been added.
void
add_cortex_a8_stub(Arm_address address, Cortex_a8_stub* stub)
{
// number of bytes to be deleted in output. If parts of the input EXIDX
// section are merged a heap allocated Arm_exidx_section_offset_map is store
// in the located PSECTION_OFFSET_MAP. The caller owns the map and is
- // reponsible for releasing it.
+ // responsible for releasing it.
template<bool big_endian>
uint32_t
process_exidx_section(const Arm_exidx_input_section* exidx_input_section,
Target_arm<big_endian>*);
// Find the linked text section of an EXIDX section by looking at the
- // first reloction of the EXIDX section. PSHDR points to the section
+ // first relocation of the EXIDX section. PSHDR points to the section
// headers of a relocation section and PSYMS points to the local symbols.
// PSHNDX points to a location storing the text section index if found.
// Return whether we can find the linked section.
std::vector<Static_reloc> static_relocs_;
};
-// The ARM target has many relocation types with odd-sizes or incontigious
+// The ARM target has many relocation types with odd-sizes or noncontiguous
// bits. The default handling of relocatable relocation cannot process these
// relocations. So we have to extend the default code.
typedef enum
{
STATUS_OKAY, // No error during relocation.
- STATUS_OVERFLOW, // Relocation oveflow.
+ STATUS_OVERFLOW, // Relocation overflow.
STATUS_BAD_RELOC // Relocation cannot be applied.
} Status;
// Insert OFFSET to a 32-bit THUMB conditional branch and return the lower
// instruction. LOWER_INSN is the original lower instruction of the branch.
- // Caller is reponsible for overflow checking.
+ // The caller is responsible for overflow checking.
static inline uint16_t
thumb32_cond_branch_lower(uint16_t lower_insn, int32_t offset)
{
// Determine the type of stub needed, if any, for a relocation of R_TYPE at
// LOCATION to DESTINATION.
// This code is based on the arm_type_of_stub function in
-// bfd/elf32-arm.c. We have changed the interface a liitle to keep the Stub
+// bfd/elf32-arm.c. We have changed the interface a little to keep the Stub
// class simple.
Stub_type
// Stub_table methods.
-// Removel all Cortex-A8 stub.
+// Remove all Cortex-A8 stub.
template<bool big_endian>
void
// dropping. If there is no entry (x0, y0) for an input offset x0,
// the output offset y0 of it is determined by the output offset y1 of
// the smallest input offset x1 > x0 that there is an (x1, y1) entry
- // in the map. If y1 is not -1, then y0 = y1 + x0 - x1. Othewise, y1
+ // in the map. If y1 is not -1, then y0 = y1 + x0 - x1. Otherwise, y1
// y0 is also -1.
if (delete_entry != prev_delete_entry && i != 0)
this->update_offset_map(i - 1, deleted_bytes, prev_delete_entry);
section_size_type section_end_offset =
section_begin_offset + p->data_size();
- // Check to see if we should group the previously seens sections.
+ // Check to see if we should group the previously seen sections.
switch (state)
{
case NO_GROUP:
// harder because we cannot access this information. So we override the
// do_count_local_symbol in parent and scan local symbols to mark
// THUMB functions. This is not the most efficient way but I do not want to
-// slow down other ports by calling a per symbol targer hook inside
+// slow down other ports by calling a per symbol target hook inside
// Sized_relobj<size, big_endian>::do_count_local_symbols.
template<bool big_endian>
if (loccount == 0)
return;
- // Intialize the thumb function bit-vector.
+ // Initialize the thumb function bit-vector.
std::vector<bool> empty_vector(loccount, false);
this->local_symbol_is_thumb_function_.swap(empty_vector);
}
}
-// Find the linked text section of an EXIDX section by looking the the first
+// Find the linked text section of an EXIDX section by looking at the first
// relocation. 4.4.1 of the EHABI specifications says that an EXIDX section
-// must be linked to to its associated code section via the sh_link field of
+// must be linked to its associated code section via the sh_link field of
// its section header. However, some tools are broken and the link is not
// always set. LD just drops such an EXIDX section silently, causing the
// associated code not unwindabled. Here we try a little bit harder to
exidx_input_section->set_has_errors();
}
else if ((text_shdr.get_sh_flags() & elfcpp::SHF_EXECINSTR) == 0)
- // I would like to make this an error but currenlty ld just ignores
+ // I would like to make this an error but currently ld just ignores
// this.
gold_warning(_("EXIDX section %s(%u) links to non-executable section "
"%s(%u) in %s"),
// Process relocations for garbage collection. The ARM target uses .ARM.exidx
// sections for unwinding. These sections are referenced implicitly by
-// text sections linked in the section headers. If we ignore these implict
+// text sections linked in the section headers. If we ignore these implicit
// references, the .ARM.exidx sections and any .ARM.extab sections they use
// will be garbage-collected incorrectly. Hence we override the same function
// in the base class to handle these implicit references.
// All the relocation above are branches except for the PREL31 ones.
// A PREL31 relocation can point to a personality function in a shared
// library. In that case we want to use a PLT because we want to
- // call the personality routine and the dyanmic linkers we care about
+ // call the personality routine and the dynamic linkers we care about
// do not support dynamic PREL31 relocations. An REL31 relocation may
// point to a function whose unwinding behaviour is being described but
// we will not mistakenly generate a PLT for that because we should use
if (exidx_section != NULL
&& exidx_section->type() == elfcpp::SHT_ARM_EXIDX)
{
- // Create __exidx_start and __exdix_end symbols.
+ // Create __exidx_start and __exidx_end symbols.
symtab->define_in_output_data("__exidx_start", NULL,
Symbol_table::PREDEFINED,
exidx_section, 0, 0, elfcpp::STT_OBJECT,
return elfcpp::R_ARM_ABS32;
case elfcpp::R_ARM_TARGET2:
- // This can be any reloc type but ususally is R_ARM_GOT_PREL
+ // This can be any reloc type but usually is R_ARM_GOT_PREL
return elfcpp::R_ARM_GOT_PREL;
default:
|| (out_attr[elfcpp::Tag_ABI_align8_preserved].int_value()
== 0)))
{
- // This error message should be enabled once all non-conformant
+ // This error message should be enabled once all non-conforming
// binaries in the toolchain have had the attributes set
// properly.
// gold_error(_("output 8-byte data alignment conflicts with %s"),
}
break;
case elfcpp::Tag_ABI_VFP_args:
- // Aready done.
+ // Already done.
break;
case elfcpp::Tag_ABI_WMMX_args:
if (in_attr[i].int_value() != out_attr[i].int_value()
// Group input sections for stub generation.
//
-// We goup input sections in an output sections so that the total size,
+// We group input sections in an output section so that the total size,
// including any padding space due to alignment is smaller than GROUP_SIZE
// unless the only input section in group is bigger than GROUP_SIZE already.
// Then an ARM stub table is created to follow the last input section
// in group. For each group an ARM stub table is created an is placed
-// after the last group. If STUB_ALWATS_AFTER_BRANCH is false, we further
+// after the last group. If STUB_ALWAYS_AFTER_BRANCH is false, we further
// extend the group after the stub table.
template<bool big_endian>
{
// Determine the stub group size. The group size is the absolute
// value of the parameter --stub-group-size. If --stub-group-size
- // is passed a negative value, we restict stubs to be always after
+ // is passed a negative value, we restrict stubs to be always after
// the stubbed branches.
int32_t stub_group_size_param =
parameters->options().stub_group_size();
{
// Reorder the known object attributes in output. We want to move
// Tag_conformance to position 4 and Tag_conformance to position 5
- // and shift eveything between 4 .. Tag_conformance - 1 to make room.
+ // and shift everything between 4 .. Tag_conformance - 1 to make room.
if (num == 4)
return elfcpp::Tag_conformance;
if (num == 5)
switch (stub->stub_template()->type())
{
case arm_stub_a8_veneer_b_cond:
- // For a conditional branch, we re-write it to be a uncondition
+ // For a conditional branch, we re-write it to be an unconditional
// branch to the stub. We use the THUMB-2 encoding here.
upper_insn = 0xf000U;
lower_insn = 0xb800U;
// attributes.h -- object attributes for gold -*- C++ -*-
-// Copyright 2009 Free Software Foundation, Inc.
+// Copyright 2009, 2010 Free Software Foundation, Inc.
// Written by Doug Kwan <dougkwan@google.com>.
// This file contains code adapted from BFD.
other_attributes() const
{ return &this->other_attributes_; }
- // Return a new attribute asssociated with TAG.
+ // Return a new attribute associated with TAG.
Object_attribute*
new_attribute(int tag);
void
print_symbol_counts(const Symbol_table*, FILE*) const;
- // Print a cross reference tabl.e
+ // Print a cross reference table.
void
print_cref(const Symbol_table*, FILE*) const;
// Process a single opcode in the .debug.line structure.
-// Templating on size and big_endian would yield more efficient (and
-// simpler) code, but would bloat the binary. Speed isn't important
-// here.
-
template<int size, bool big_endian>
bool
Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
// ehframe.cc -- handle exception frame sections for gold
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
this->set_data_size(data_size);
}
-// Write the data to the flie.
+// Write the data to the file.
void
Eh_frame_hdr::do_write(Output_file* of)
{
// Data owned by File object - nothing done in destructor.
DATA_NOT_OWNED,
- // Data alocated with new[] and owned by this object - should
+ // Data allocated with new[] and owned by this object - should
// use delete[].
DATA_ALLOCATED_ARRAY,
// Data mmapped and owned by this object - should munmap.
err = pthread_mutex_unlock(&once_pointer_control);
if (err != 0)
- gold_fatal(_("pthread_mutex_unlock falied: %s"), strerror(err));
+ gold_fatal(_("pthread_mutex_unlock failed: %s"), strerror(err));
#endif // defined(ENABLE_THREADS)
}
// The Solaris version of locale.h always includes libintl.h. If we
// have been configured with --disable-nls then ENABLE_NLS will not
// be defined and the dummy definitions of bindtextdomain (et al)
- // below will conflict with the defintions in libintl.h. So we
+ // below will conflict with the definitions in libintl.h. So we
// define these values to prevent the bogus inclusion of libintl.h.
# define _LIBINTL_H
# define _LIBGETTEXT_H
bool
do_is_call_to_non_split(const Symbol* sym, unsigned int) const;
- // Adjust -fstack-split code which calls non-stack-split code.
+ // Adjust -fsplit-stack code which calls non-split-stack code.
void
do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
}
// FNOFFSET in section SHNDX in OBJECT is the start of a function
-// compiled with -fstack-split. The function calls non-stack-split
+// compiled with -fsplit-stack. The function calls non-split-stack
// code. We have to change the function so that it always ensures
// that it has enough stack space to run some random function.
for (; it_v != v.end(); ++it_v, ++it_s, ++it_a, ++it_o, ++it_addend_size)
{
// ADDEND_STR stores the symbol value and addend and offset,
- // each atmost 16 hex digits long. it_a points to a pair
+ // each at most 16 hex digits long. it_a points to a pair
// where first is the symbol value and second is the
// addend.
char addend_str[50];
// KEPT_SECTION_ID : Vector which maps folded sections to kept sections.
// ID_SECTION : Vector mapping a section to an unique integer.
// IS_SECN_OR_GROUP_UNIQUE : To check if a section or a group of identical
-// sectionsis already known to be unique.
+// sections is already known to be unique.
// SECTION_CONTENTS : Store the section's text and relocs to non-ICF
// sections.
// Find the .gnu_incremental_inputs and related sections. It selects the
// first section of type SHT_GNU_INCREMENTAL_INPUTS,
- // SHT_GNU_INCRMENTAL_SYMTAB, and SHT_GNU_INCREMENTAL_RELOCS.
+ // SHT_GNU_INCREMENTAL_SYMTAB, and SHT_GNU_INCREMENTAL_RELOCS.
// Returns false if the sections are not found.
bool
find_incremental_inputs_sections(unsigned int* p_inputs_shndx,
-// varint.cc -- variable length and unaligned integer encoding support.
+// int_encoding.cc -- variable length and unaligned integer encoding support.
-// Copyright 2009 Free Software Foundation, Inc.
+// Copyright 2009, 2010 Free Software Foundation, Inc.
// Written by Doug Kwan <dougkwan@google.com> by refactoring scattered
// contents from other files in gold. Original code written by Ian
// Lance Taylor <iant@google.com> and Caleb Howe <cshowe@google.com>.
Incremental_inputs* incremental_inputs_;
// Whether we record output section data created in script
bool record_output_section_data_from_script_;
- // List of output data that needs to be removed at relexation clean up.
+ // List of output data that needs to be removed at relaxation clean up.
Output_section_data_list script_output_section_data_list_;
// Structure to save segment states before entering the relaxation loop.
Segment_states* segment_states_;
// The symbol table. We're going to guess here how many symbols
// we're going to see based on the number of input files. Even when
// this is off, it means at worst we don't quite optimize hashtable
- // resizing as well as we could have (perhap using more memory).
+ // resizing as well as we could have (perhaps using more memory).
Symbol_table symtab(command_line.number_of_input_files() * 1024,
command_line.version_script());
// merge.h -- handle section merging for gold -*- C++ -*-
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
Input_merge_map*
get_input_merge_map(unsigned int shndx);
- // Get or make the the Input_merge_map to use for the section SHNDX
+ // Get or make the Input_merge_map to use for the section SHNDX
// with MERGE_MAP.
Input_merge_map*
get_or_make_input_merge_map(const Merge_map* merge_map, unsigned int shndx);
this->merge_map_.add_mapping(object, shndx, offset, length, output_offset);
}
- // This may be overriden by the child class.
+ // This may be overridden by the child class.
virtual bool
do_is_string()
{ return false; }
}
// If NAME is the name of the special section which indicates that
-// this object was compiled with -fstack-split, mark it accordingly.
+// this object was compiled with -fsplit-stack, mark it accordingly.
bool
Object::handle_split_stack_section(const char* name)
// Finalize the incremental relocation information. Allocates a block
// of relocation entries for each symbol, and sets the reloc_bases_
// array to point to the first entry in each block. Returns the next
-// available reloation index.
+// available relocation index.
void
Relobj::finalize_incremental_relocs(Layout* layout)
// Return the section index of symbol SYM. Set *VALUE to its value in
// the object file. Set *IS_ORDINARY if this is an ordinary section
-// index. not a special cod between SHN_LORESERVE and SHN_HIRESERVE.
+// index, not a special code between SHN_LORESERVE and SHN_HIRESERVE.
// Note that for a symbol which is not defined in this object file,
// this will set *VALUE to 0 and return SHN_UNDEF; it will not return
// the final value of the symbol in the link.
Symbol_table*);
// If NAME is the name of the special section which indicates that
- // this object was compiled with -fstack-split, mark it accordingly,
+ // this object was compiled with -fsplit-stack, mark it accordingly,
// and return true. Otherwise return false.
bool
handle_split_stack_section(const char* name);
// options.c -- handle command line options for gold
-// Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
{
// This flag is TRUE if we should register the command-line options as they
-// are constructed. It is set after contruction of the options within
+// are constructed. It is set after construction of the options within
// class Position_dependent_options.
static bool ready_to_register = false;
// These are set up at the same time -- the variables that accept one
// dash, two, or require -z. A single variable may be in more than
-// one of thes data structures.
+// one of these data structures.
typedef Unordered_map<std::string, One_option*> Option_map;
static Option_map* long_options = NULL;
static One_option* short_options[128];
}
// The function add_excluded_libs() in ld/ldlang.c of GNU ld breaks up a list
-// of names seperated by commas or colons and puts them in a linked list.
+// of names separated by commas or colons and puts them in a linked list.
// We implement the same parsing of names here but store names in an unordered
// map to speed up searching of names.
this->next_blocker_));
}
-// Handle a whole lib group. Other then collecting statisticts, this just
+// Handle a whole lib group. Other than collecting statistics, this just
// mimics what we do for regular object files in the command line.
bool
// reduced_debug_output.cc -- output reduced debugging information to save space
-// Copyright 2008 Free Software Foundation, Inc.
+// Copyright 2008, 2010 Free Software Foundation, Inc.
// Written by Caleb Howe <cshowe@google.com>.
// This file is part of gold.
abbrev_data += LEB_size;
// Together with the abbreviation number these fields make up
- // the header for each abbreviation
+ // the header for each abbreviation.
uint64_t abbrev_type = read_unsigned_LEB_128(abbrev_data, &LEB_size);
abbrev_data += LEB_size;
// This would ordinarily be the has_children field of the
- // abbreviation. But it's going to be false after reducting the
- // information, so there's no point in storing it
+ // abbreviation. But it's going to be false after reducing the
+ // information, so there's no point in storing it.
abbrev_data++;
- // Read to the end of the current abbreviation
+ // Read to the end of the current abbreviation.
// This is indicated by two zero unsigned LEBs in a row. We don't
// need to parse the data yet, so we just scan through the data
// looking for two consecutive 0 bytes indicating the end of the
- // abbreviation
+ // abbreviation.
unsigned char* current_abbrev;
for (current_abbrev = abbrev_data;
current_abbrev[0] || current_abbrev[1];
}
// Process the relocs to generate mappings from source sections to referenced
-// sections. This is used during garbage colletion to determine garbage
+// sections. This is used during garbage collection to determine garbage
// sections.
template<int size, bool big_endian>
// script-sections.cc -- linker script SECTIONS for gold
-// Copyright 2008, 2009 Free Software Foundation, Inc.
+// Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
{ }
// Set section addresses. This includes applying assignments if the
- // the expression is an absolute value.
+ // expression is an absolute value.
virtual void
set_section_addresses(Symbol_table*, Layout*, uint64_t*, uint64_t*,
uint64_t*)
{ return false; }
// Set section addresses. This includes applying assignments if the
- // the expression is an absolute value.
+ // expression is an absolute value.
virtual void
set_section_addresses(Symbol_table*, Layout*, Output_section*, uint64_t,
uint64_t*, uint64_t*, Output_section**, std::string*,
return file_header_size + segment_headers_size;
}
-// Return the amount we have to subtract from the LMA to accomodate
+// Return the amount we have to subtract from the LMA to accommodate
// headers of the given size. The complication is that the file
// header have to be at the start of a page, as otherwise it will not
// be at the start of the file.
// The compiler can put the TLS_GD_ADD instruction
// into the delay slot of the call. If so, we need
// to transpose the two instructions so that the
- // the new sequence works properly.
+ // new sequence works properly.
//
// The test we use is if the instruction in the
// delay slot is an add with destination register
return true;
// A reference to a symbol defined in a dynamic object or to a
- // symbol that is preemptible can not use a RELATIVE relocaiton.
+ // symbol that is preemptible can not use a RELATIVE relocation.
if (this->is_from_dynobj()
|| this->is_undefined()
|| this->is_preemptible())
SORT_COMMONS_BY_ALIGNMENT_ASCENDING
};
- // COUNT is an estimate of how many symbosl will be inserted in the
+ // COUNT is an estimate of how many symbols will be inserted in the
// symbol table. It's ok to put 0 if you don't know; a correct
// guess will just save some CPU by reducing hashtable resizes.
Symbol_table(unsigned int count, const Version_script_info& version_script);
{
// No error.
CFVS_OK,
- // Unspported symbol section.
+ // Unsupported symbol section.
CFVS_UNSUPPORTED_SYMBOL_SECTION,
// No output section.
CFVS_NO_OUTPUT_SECTION
// template parameter Scan must be a class type which provides two
// functions: local() and global(). Those functions implement the
// machine specific part of scanning. We do it this way to
-// avoidmaking a function call for each relocation, and to avoid
+// avoid making a function call for each relocation, and to avoid
// repeating the generic code for each target.
template<int size, bool big_endian, typename Target_type, int sh_type,
// target.cc
-// Copyright 2009 Free Software Foundation, Inc.
+// Copyright 2009, 2010 Free Software Foundation, Inc.
// Written by Doug Kwan <dougkwan@google.com>.
// This file is part of gold.
{
// Return whether NAME is a local label name. This is used to implement the
-// --discard-locals options and can be overriden by children classes to
+// --discard-locals options and can be overridden by child classes to
// implement system-specific behaviour. The logic here is the same as that
// in _bfd_elf_is_local_label_name().
do_adjust_elf_header(unsigned char*, int) const
{ }
- // Virtual function which may be overriden by the child class.
+ // Virtual function which may be overridden by the child class.
virtual bool
do_is_local_label_name(const char*) const;
do_reloc_symbol_index(void*, unsigned int) const
{ gold_unreachable(); }
- // Virtual function that must be overidden by a target which uses
+ // Virtual function that must be overridden by a target which uses
// target specific relocations.
virtual uint64_t
do_reloc_addend(void*, unsigned int, uint64_t) const
}
#ifdef HAVE_TARGET_32_LITTLE
- // Virtual functions which may be overriden by the child class.
+ // Virtual functions which may be overridden by the child class.
virtual Object*
do_make_elf_object(const std::string&, Input_file*, off_t,
const elfcpp::Ehdr<32, false>&);
#endif
#ifdef HAVE_TARGET_32_BIG
- // Virtual functions which may be overriden by the child class.
+ // Virtual functions which may be overridden by the child class.
virtual Object*
do_make_elf_object(const std::string&, Input_file*, off_t,
const elfcpp::Ehdr<32, true>&);
#endif
#ifdef HAVE_TARGET_64_LITTLE
- // Virtual functions which may be overriden by the child class.
+ // Virtual functions which may be overridden by the child class.
virtual Object*
do_make_elf_object(const std::string&, Input_file*, off_t,
const elfcpp::Ehdr<64, false>& ehdr);
#endif
#ifdef HAVE_TARGET_64_BIG
- // Virtual functions which may be overriden by the child class.
+ // Virtual functions which may be overridden by the child class.
virtual Object*
do_make_elf_object(const std::string& name, Input_file* input_file,
off_t offset, const elfcpp::Ehdr<64, true>& ehdr);
#endif
- // Virtual functions which may be overriden by the child class.
+ // Virtual functions which may be overridden by the child class.
virtual Output_section*
do_make_output_section(const char* name, elfcpp::Elf_Word type,
elfcpp::Elf_Xword flags);
- // Virtual function which may be overriden by the child class.
+ // Virtual function which may be overridden by the child class.
virtual bool
do_may_relax() const
{ return parameters->options().relax(); }
- // Virtual function which may be overriden by the child class.
+ // Virtual function which may be overridden by the child class.
virtual bool
do_relax(int, const Input_objects*, Symbol_table*, Layout*, const Task*)
{ return false; }
set_view_to_nop(unsigned char* view, section_size_type view_size,
section_offset_type offset, size_t len) const;
- // This must be overriden by the child class if it has target-specific
+ // This must be overridden by the child class if it has target-specific
// attributes subsection in the attribute section.
virtual int
do_attribute_arg_type(int) const
this->start_time_.sys = 0;
}
-// Start couting the time.
+// Start counting the time.
void
Timer::start()
{
# endif
#endif
-// times returns statistics in clock_t units. This variable will hold the
-// conversion factor to seconds. We use a variable that is initialize once
+// times returns statistics in clock_t units. This variable will hold the
+// conversion factor to seconds. We use a variable that is initialized once
// because sysconf can be slow.
static long ticks_per_sec;
class Timer_init
};
Timer_init timer_init;
-// Write the current time infortamion.
+// Write the current time information.
void
Timer::get_time(TimeStats *now)
{
// timer.h -- helper class for time accounting -*- C++ -*-
-// Copyright 2009 Free Software Foundation, Inc.
+// Copyright 2009, 2010 Free Software Foundation, Inc.
// Written by Rafael Avila de Espindola <espindola@google.com>.
// This file is part of gold.
TimeStats
get_elapsed_time();
- // Start couting the time.
+ // Start counting the time.
void
start();
Timer(const Timer&);
Timer& operator=(const Timer&);
- // Write the current time infortamion.
+ // Write the current time information.
static void
get_time(TimeStats* now);
do_plt_section_for_local(const Relobj*, unsigned int) const
{ return this->plt_section(); }
- // Adjust -fstack-split code which calls non-stack-split code.
+ // Adjust -fsplit-stack code which calls non-split-stack code.
void
do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
}
// FNOFFSET in section SHNDX in OBJECT is the start of a function
-// compiled with -fstack-split. The function calls non-stack-split
+// compiled with -fsplit-stack. The function calls non-split-stack
// code. We have to change the function so that it always ensures
// that it has enough stack space to run some random function.