More dynamic object support, initial scripting support.

This commit is contained in:
Ian Lance Taylor
2006-11-14 19:21:05 +00:00
parent 6c73cbb1d9
commit dbe717effb
31 changed files with 3698 additions and 373 deletions

View File

@@ -154,15 +154,6 @@ class Layout
Output_segment*
find_first_load_seg();
// Set the final file offsets of all the segments.
off_t
set_segment_offsets(const Target*, Output_segment*, unsigned int* pshndx);
// Set the final file offsets and section indices of all the
// sections not associated with a segment.
off_t
set_section_offsets(off_t, unsigned int *pshndx);
// Create the output sections for the symbol table.
void
create_symtab_sections(int size, const Input_objects*, Symbol_table*, off_t*,
@@ -177,6 +168,18 @@ class Layout
Output_section_headers*
create_shdrs(int size, bool big_endian, off_t*);
// Create the dynamic symbol table.
void
create_dynamic_symtab(int size, Symbol_table*);
// Create the .dynamic section and PT_DYNAMIC segment.
void
create_dynamic_section();
// Create the .interp section and PT_INTERP segment.
void
create_interp(const Target* target);
// Return whether to include this section in the link.
template<int size, bool big_endian>
bool
@@ -204,6 +207,15 @@ class Layout
make_output_section(const char* name, elfcpp::Elf_Word type,
elfcpp::Elf_Xword flags);
// Set the final file offsets of all the segments.
off_t
set_segment_offsets(const Target*, Output_segment*, unsigned int* pshndx);
// Set the final file offsets and section indices of all the
// sections not associated with a segment.
off_t
set_section_offsets(off_t, unsigned int *pshndx);
// Return whether SEG1 comes before SEG2 in the output file.
static bool
segment_precedes(const Output_segment* seg1, const Output_segment* seg2);