aboutsummaryrefslogtreecommitdiff
path: root/gold/layout.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-11-04 15:56:03 +0000
committerIan Lance Taylor <ian@airs.com>2009-11-04 15:56:03 +0000
commitf5c870d25d59bc1e6fcb6a836b6bd1981788982c (patch)
tree5f0302e3a7df3fabd48233a453fdeca714c8116d /gold/layout.h
parentc7cbc7a8c26acd91b498167e3a2b8625d5eaa109 (diff)
downloadbinutils-f5c870d25d59bc1e6fcb6a836b6bd1981788982c.zip
binutils-f5c870d25d59bc1e6fcb6a836b6bd1981788982c.tar.gz
binutils-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/layout.h')
-rw-r--r--gold/layout.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/gold/layout.h b/gold/layout.h
index 675c658..71afa96 100644
--- a/gold/layout.h
+++ b/gold/layout.h
@@ -360,11 +360,13 @@ class Layout
layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags);
// Add an Output_section_data to the layout. This is used for
- // special sections like the GOT section.
+ // special sections like the GOT section. IS_DYNAMIC_LINKER_SECTION
+ // is true for sections which are used by the dynamic linker, such
+ // as dynamic reloc sections.
Output_section*
add_output_section_data(const char* name, elfcpp::Elf_Word type,
elfcpp::Elf_Xword flags,
- Output_section_data*);
+ Output_section_data*, bool is_dynamic_linker_section);
// Create dynamic sections if necessary.
void
@@ -745,18 +747,21 @@ class Layout
// Return the output section for NAME, TYPE and FLAGS.
Output_section*
get_output_section(const char* name, Stringpool::Key name_key,
- elfcpp::Elf_Word type, elfcpp::Elf_Xword flags);
+ elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
+ bool is_interp, bool is_dynamic_linker_section);
// Choose the output section for NAME in RELOBJ.
Output_section*
choose_output_section(const Relobj* relobj, const char* name,
elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
- bool is_input_section);
+ bool is_input_section, bool is_interp,
+ bool is_dynamic_linker_section);
// Create a new Output_section.
Output_section*
make_output_section(const char* name, elfcpp::Elf_Word type,
- elfcpp::Elf_Xword flags);
+ elfcpp::Elf_Xword flags, bool is_interp,
+ bool is_dynamic_linker_section);
// Attach a section to a segment.
void