diff options
author | Ian Lance Taylor <ian@airs.com> | 2009-11-04 15:56:03 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2009-11-04 15:56:03 +0000 |
commit | f5c870d25d59bc1e6fcb6a836b6bd1981788982c (patch) | |
tree | 5f0302e3a7df3fabd48233a453fdeca714c8116d /gold/arm.cc | |
parent | c7cbc7a8c26acd91b498167e3a2b8625d5eaa109 (diff) | |
download | gdb-f5c870d25d59bc1e6fcb6a836b6bd1981788982c.zip gdb-f5c870d25d59bc1e6fcb6a836b6bd1981788982c.tar.gz gdb-f5c870d25d59bc1e6fcb6a836b6bd1981788982c.tar.bz2 |
* layout.cc (Layout::get_output_section): Add is_interp and
is_dynamic_linker_section parameters. Change all callers.
(Layout::choose_output_section): Likewise.
(Layout::make_output_section): Likewise.
(Layout::add_output_section_data): Add is_dynamic_linker_section
parameter. Change all callers.
* layout.h (class Layout): Update declarations.
* output.h (class Output_section): Add is_interp, set_is_interp,
is_dynamic_linker_section, set_is_dynamic_linker_section methods.
Add is_interp_, is_dynamic_linker_section_ fields. Change
generate_code_fills_at_write_ to a bitfield.
* output.cc (Output_section::Output_sections): Initialize new
fields.
(Output_segment::add_output_section): Add do_sort parameter.
Change all callers.
Diffstat (limited to 'gold/arm.cc')
-rw-r--r-- | gold/arm.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gold/arm.cc b/gold/arm.cc index f0db899..8998032 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -2166,7 +2166,7 @@ Target_arm<big_endian>::got_section(Symbol_table* symtab, Layout* layout) os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS, (elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE), - this->got_); + this->got_, false); os->set_is_relro(); // The old GNU linker creates a .got.plt section. We just @@ -2177,7 +2177,7 @@ Target_arm<big_endian>::got_section(Symbol_table* symtab, Layout* layout) os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS, (elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE), - this->got_plt_); + this->got_plt_, false); os->set_is_relro(); // The first three entries are reserved. @@ -2205,7 +2205,7 @@ Target_arm<big_endian>::rel_dyn_section(Layout* layout) gold_assert(layout != NULL); this->rel_dyn_ = new Reloc_section(parameters->options().combreloc()); layout->add_output_section_data(".rel.dyn", elfcpp::SHT_REL, - elfcpp::SHF_ALLOC, this->rel_dyn_); + elfcpp::SHF_ALLOC, this->rel_dyn_, true); } return this->rel_dyn_; } @@ -3588,7 +3588,7 @@ Output_data_plt_arm<big_endian>::Output_data_plt_arm(Layout* layout, { this->rel_ = new Reloc_section(false); layout->add_output_section_data(".rel.plt", elfcpp::SHT_REL, - elfcpp::SHF_ALLOC, this->rel_); + elfcpp::SHF_ALLOC, this->rel_, true); } template<bool big_endian> @@ -3750,7 +3750,7 @@ Target_arm<big_endian>::make_plt_entry(Symbol_table* symtab, Layout* layout, layout->add_output_section_data(".plt", elfcpp::SHT_PROGBITS, (elfcpp::SHF_ALLOC | elfcpp::SHF_EXECINSTR), - this->plt_); + this->plt_, false); } this->plt_->add_entry(gsym); } @@ -4300,7 +4300,8 @@ Target_arm<big_endian>::do_finalize_sections( == NULL); Output_segment* exidx_segment = layout->make_output_segment(elfcpp::PT_ARM_EXIDX, elfcpp::PF_R); - exidx_segment->add_output_section(exidx_section, elfcpp::PF_R); + exidx_segment->add_output_section(exidx_section, elfcpp::PF_R, + false); } } } |