aboutsummaryrefslogtreecommitdiff
path: root/gold/layout.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-11-14 19:21:05 +0000
committerIan Lance Taylor <iant@google.com>2006-11-14 19:21:05 +0000
commitdbe717effbdf31236088837f4686fd5ad5e71893 (patch)
treefd5ed267334d62fadcaf7ff7132c0a7287553ed8 /gold/layout.h
parent6c73cbb1d9a26d1c4d9bd5464832846b7c049b9d (diff)
downloadfsf-binutils-gdb-dbe717effbdf31236088837f4686fd5ad5e71893.zip
fsf-binutils-gdb-dbe717effbdf31236088837f4686fd5ad5e71893.tar.gz
fsf-binutils-gdb-dbe717effbdf31236088837f4686fd5ad5e71893.tar.bz2
More dynamic object support, initial scripting support.
Diffstat (limited to 'gold/layout.h')
-rw-r--r--gold/layout.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/gold/layout.h b/gold/layout.h
index fa34617..759fd85 100644
--- a/gold/layout.h
+++ b/gold/layout.h
@@ -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);