diff --git a/gold/ChangeLog b/gold/ChangeLog index d9602014c6..d44c39087a 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,15 @@ 2013-10-11 Roland McGrath + * target.h (Target::adjust_elf_header, Target::do_adjust_elf_header): + Remove const from declaration. + * target.cc (Sized_target::do_adjust_elf_header): Update definition. + * sparc.cc (Target_sparc::do_adjust_elf_header): Likewise. + * output.h (Output_file_header): Remove const from member target_ + and corresponding constructor argument. + * output.cc (Output_file_header::Output_file_header): Update prototype. + (Output_file_header::do_sized_write): Use this->target_ in place + of parameters()->target(). + * testsuite/undef_symbol.cc (Foo::get_a): New method. * configure.ac (MERGE_CONSTANTS_FLAG): New check. diff --git a/gold/output.cc b/gold/output.cc index a5ff988920..348ad646ad 100644 --- a/gold/output.cc +++ b/gold/output.cc @@ -435,7 +435,7 @@ Output_segment_headers::do_size() const // Output_file_header methods. -Output_file_header::Output_file_header(const Target* target, +Output_file_header::Output_file_header(Target* target, const Symbol_table* symtab, const Output_segment_headers* osh) : target_(target), @@ -577,7 +577,7 @@ Output_file_header::do_sized_write(Output_file* of) // Let the target adjust the ELF header, e.g., to set EI_OSABI in // the e_ident field. - parameters->target().adjust_elf_header(view, ehdr_size); + this->target_->adjust_elf_header(view, ehdr_size); of->write_output_view(0, ehdr_size, view); } diff --git a/gold/output.h b/gold/output.h index f5a72993a8..a689a44558 100644 --- a/gold/output.h +++ b/gold/output.h @@ -573,7 +573,7 @@ class Output_segment_headers : public Output_data class Output_file_header : public Output_data { public: - Output_file_header(const Target*, + Output_file_header(Target*, const Symbol_table*, const Output_segment_headers*); @@ -617,7 +617,7 @@ class Output_file_header : public Output_data off_t do_size() const; - const Target* target_; + Target* target_; const Symbol_table* symtab_; const Output_segment_headers* segment_header_; const Output_section_headers* section_header_; diff --git a/gold/sparc.cc b/gold/sparc.cc index 57659cc8ae..cbe95b8606 100644 --- a/gold/sparc.cc +++ b/gold/sparc.cc @@ -217,7 +217,7 @@ class Target_sparc : public Sized_target const elfcpp::Ehdr& ehdr); void - do_adjust_elf_header(unsigned char* view, int len) const; + do_adjust_elf_header(unsigned char* view, int len); private: @@ -4339,7 +4339,7 @@ template void Target_sparc::do_adjust_elf_header( unsigned char* view, - int len) const + int len) { elfcpp::Ehdr_write oehdr(view); diff --git a/gold/target.cc b/gold/target.cc index cc508c5b3a..cad3c95f0f 100644 --- a/gold/target.cc +++ b/gold/target.cc @@ -1,6 +1,6 @@ // target.cc -- target support for gold. -// Copyright 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright 2009, 2010, 2011, 2013 Free Software Foundation, Inc. // Written by Doug Kwan . // This file is part of gold. @@ -219,7 +219,7 @@ Target::do_plt_fde_location(const Output_data* plt, unsigned char*, template void Sized_target::do_adjust_elf_header(unsigned char* view, - int len) const + int len) { elfcpp::ELFOSABI osabi = this->osabi(); if (osabi != elfcpp::ELFOSABI_NONE) diff --git a/gold/target.h b/gold/target.h index 4c58d10ff2..415b7edcf9 100644 --- a/gold/target.h +++ b/gold/target.h @@ -1,6 +1,6 @@ // target.h -- target support for gold -*- C++ -*- -// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 +// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 // Free Software Foundation, Inc. // Written by Ian Lance Taylor . @@ -238,7 +238,7 @@ class Target // Adjust the output file header before it is written out. VIEW // points to the header in external form. LEN is the length. void - adjust_elf_header(unsigned char* view, int len) const + adjust_elf_header(unsigned char* view, int len) { return this->do_adjust_elf_header(view, len); } // Return address and size to plug into eh_frame FDEs associated with a PLT. @@ -548,7 +548,7 @@ class Target // By default, we set the EI_OSABI field if requested (in // Sized_target). virtual void - do_adjust_elf_header(unsigned char*, int) const = 0; + do_adjust_elf_header(unsigned char*, int) = 0; // Return address and size to plug into eh_frame FDEs associated with a PLT. virtual void @@ -1018,7 +1018,7 @@ class Sized_target : public Target // Set the EI_OSABI field if requested. virtual void - do_adjust_elf_header(unsigned char*, int) const; + do_adjust_elf_header(unsigned char*, int); // Handle target specific gc actions when adding a gc reference. virtual void