forked from Imagelibrary/binutils-gdb
* 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.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user