aboutsummaryrefslogtreecommitdiff
path: root/gold/output.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-02-04 22:54:31 +0000
committerIan Lance Taylor <iant@google.com>2008-02-04 22:54:31 +0000
commit1c4f3631bde4d056e02555d72009693de26da4bf (patch)
treef2ecece1db200a3681dfd01d6f6f429fc00789a2 /gold/output.h
parent15893b88b0e64f14a08e952a07d3e517c7926c8e (diff)
downloadfsf-binutils-gdb-1c4f3631bde4d056e02555d72009693de26da4bf.zip
fsf-binutils-gdb-1c4f3631bde4d056e02555d72009693de26da4bf.tar.gz
fsf-binutils-gdb-1c4f3631bde4d056e02555d72009693de26da4bf.tar.bz2
Implement PHDRS.
Diffstat (limited to 'gold/output.h')
-rw-r--r--gold/output.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gold/output.h b/gold/output.h
index 1354551..032a2bb 100644
--- a/gold/output.h
+++ b/gold/output.h
@@ -2342,6 +2342,12 @@ class Output_segment
this->are_addresses_set_ = true;
}
+ // Set the segment flags. This is only used if we have a PHDRS
+ // clause which explicitly specifies the flags.
+ void
+ set_flags(elfcpp::Elf_Word flags)
+ { this->flags_ = flags; }
+
// Set the address of the segment to ADDR and the offset to *POFF
// and set the addresses and offsets of all contained output
// sections accordingly. Set the section indexes of all contained
@@ -2372,6 +2378,12 @@ class Output_segment
unsigned int
output_section_count() const;
+ // Return the section attached to the list segment with the lowest
+ // load address. This is used when handling a PHDRS clause in a
+ // linker script.
+ Output_section*
+ section_with_lowest_load_address() const;
+
// Write the segment header into *OPHDR.
template<int size, bool big_endian>
void
@@ -2411,6 +2423,13 @@ class Output_segment
unsigned int
dynamic_reloc_count_list(const Output_data_list*) const;
+ // Find the section with the lowest load address in an
+ // Output_data_list.
+ void
+ lowest_load_address_in_list(const Output_data_list* pdl,
+ Output_section** found,
+ uint64_t* found_lma) const;
+
// Write the section headers in the list into V.
template<int size, bool big_endian>
unsigned char*