forked from Imagelibrary/binutils-gdb
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.
27 lines
546 B
Raku
27 lines
546 B
Raku
MEMORY
|
|
{
|
|
region1 : ORIGIN = 0x1000, LENGTH = 0x1000 ,
|
|
region2 (r) : org = 0x2000, len = 300
|
|
region3 (wx) : o = 0x4000, l = 4
|
|
region4 (!r) : o = 0x6000 + 60, len = 0x30 * 0x6
|
|
}
|
|
|
|
SECTIONS
|
|
{
|
|
.sec0 : { *(*.sec0) }
|
|
|
|
.sec1 ORIGIN (region1) : { *(*.sec1) } AT> region2
|
|
|
|
fred = ORIGIN (region1) + LENGTH (region1);
|
|
|
|
.sec2 : { *(*.sec2) } > region3 AT> region4
|
|
|
|
.sec3 0x5000 : { *(*.sec3) }
|
|
|
|
.sec4 : { *(*.sec4) } AT> region2
|
|
|
|
.sec5 : { LONG(0x5555) } > region2
|
|
|
|
/DISCARD/ : { *(*) }
|
|
}
|