aboutsummaryrefslogtreecommitdiff
path: root/gold/output.h
diff options
context:
space:
mode:
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*