summaryrefslogtreecommitdiff
path: root/gold/script-sections.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2010-10-06 08:58:59 +0000
committerNick Clifton <nickc@redhat.com>2010-10-06 08:58:59 +0000
commitea5cae92bdd0686144ac42346d32c58e6f0e0b16 (patch)
treec8b3bc69800b8c40581a0b39dd1c198e565ffb17 /gold/script-sections.h
parentc0e4ee6b249d0e2fc3f3e4e0864e00faf93fe126 (diff)
* script-sections.cc(class Memory_region): Remove
current_lma_offset_ field. Rename current_vma_offset_ to current_offset_. Add last_section_ field. (Memory_region::get_current_vma_address): Rename to get_current_address. (Memory_region::get_current_lma_address): Delete. (Memory_region::increment_vma_offset): Rename to increment_offset. (Memory_region::increment_lma_offset): Delete. (Memory_region::attributes_compatible): New method. Returns true if the provided section is compatible with the region. (Memory_region::get_last_section): New method. Returns the last section to use the region. (Memory_region::set_last_section): New method. Stores the last section to use the region. (Script_sections::block_in_region): New method. Returns true if a block of memory is contained within a region. (Script_sections::find_memory_region): New method. Locates a memory region to be used to set a VMA or LMA address. (Output_section_definition::set_section_addresses): Add code to check for addresses set by memory regions. (Output_segment::set_section_addresses): Remove memory region walking code. (Script_sections::create_segment): Add a warning if a header segment is created outside of any region. * script-sections.h (class Script_sections): Add prototypes for find_memory_region and block_in_region methods. * testsuite/memory_test.s: Use .long instead of .word. * testsuite/memory_test.t: Add some more output sections. * testsuite/memory_test.sh: Update expected output. * ld.texinfo: Update description of computation of VMA and LMA addresses for output sections. * ld-scripts/rgn-at5.t: Add some more output sections. * ld-scripts/rgn-at5.d: Update expected output.
Diffstat (limited to 'gold/script-sections.h')
-rw-r--r--gold/script-sections.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/gold/script-sections.h b/gold/script-sections.h
index 1a0b760793..ee1adaeb79 100644
--- a/gold/script-sections.h
+++ b/gold/script-sections.h
@@ -234,10 +234,20 @@ class Script_sections
Expression*
find_memory_region_length(const char*, size_t);
- // Find a memory region.
+ // Find a memory region by name.
Memory_region*
find_memory_region(const char*, size_t);
+ // Find a memory region that should be used by a given output section.
+ Memory_region*
+ find_memory_region(Output_section_definition*, bool,
+ Output_section_definition**);
+
+ // Returns true if the provide block of memory is contained
+ // within a memory region.
+ bool
+ block_in_region(Symbol_table*, Layout*, uint64_t, uint64_t) const;
+
// Set the memory region of the section.
void
set_memory_region(Memory_region*, bool);