diff options
author | Nick Clifton <nickc@redhat.com> | 2010-10-06 08:58:59 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2010-10-06 08:58:59 +0000 |
commit | ea5cae92bdd0686144ac42346d32c58e6f0e0b16 (patch) | |
tree | c8b3bc69800b8c40581a0b39dd1c198e565ffb17 /gold/testsuite | |
parent | c0e4ee6b249d0e2fc3f3e4e0864e00faf93fe126 (diff) | |
download | gdb-ea5cae92bdd0686144ac42346d32c58e6f0e0b16.zip gdb-ea5cae92bdd0686144ac42346d32c58e6f0e0b16.tar.gz gdb-ea5cae92bdd0686144ac42346d32c58e6f0e0b16.tar.bz2 |
* 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/testsuite')
-rw-r--r-- | gold/testsuite/memory_test.s | 10 | ||||
-rwxr-xr-x | gold/testsuite/memory_test.sh | 19 | ||||
-rw-r--r-- | gold/testsuite/memory_test.t | 8 |
3 files changed, 25 insertions, 12 deletions
diff --git a/gold/testsuite/memory_test.s b/gold/testsuite/memory_test.s index dbb63ea..ce8576c 100644 --- a/gold/testsuite/memory_test.s +++ b/gold/testsuite/memory_test.s @@ -1,14 +1,14 @@ .section .sec0, "a" - .word 0 + .long 0 .section .sec1, "a" - .word 0x11 + .long 0x11 .section .sec2, "a" - .word 0x22 + .long 0x22 .section .sec3, "a" - .word 0x33 + .long 0x33 .section .sec4, "a" - .word 0x44 + .long 0x44 diff --git a/gold/testsuite/memory_test.sh b/gold/testsuite/memory_test.sh index 5c172f4..db3917a 100755 --- a/gold/testsuite/memory_test.sh +++ b/gold/testsuite/memory_test.sh @@ -23,6 +23,14 @@ # MA 02110-1301, USA. +# NOTE: The linker script used in this test (memory_test.t) +# should be the same as the one used in the rgn-at5 linker +# test (ld/testsuite/ld-scripts/rgn-at5.t). +# +# Modulo some section ordering the output from GOLD in this +# test should be the same as the output from GNU LD in the +# rgn-at5 test. + check() { file=$1 @@ -36,13 +44,14 @@ check() } check memory_test.stdout \ - " LOAD 0x001000 0x0*00000000 0x0*00000000 0x00000\?2 0x00000\?2 R 0x1000" + " LOAD 0x001000 0x0*02000 0x0*02000 0x0*04 0x0*04 R 0x1000" check memory_test.stdout \ - " LOAD 0x00112c 0x0*00001000 0x0*0000012c 0x00000\?2 0x00000\?2 R 0x1000" + " LOAD 0x001004 0x0*01000 0x0*02004 0x0*04 0x0*04 R 0x1000" check memory_test.stdout \ - " LOAD 0x002000 0x0*00005000 0x0*00005000 0x00000\?2 0x00000\?2 R 0x1000" + " LOAD 0x001008 0x0*02008 0x0*02008 0x0*08 0x0*08 R 0x1000" check memory_test.stdout \ - " LOAD 0x00203c 0x0*00004000 0x0*0000603c 0x00000\?2 0x00000\?2 R 0x1000" - + " LOAD 0x002000 0x0*05000 0x0*05000 0x0*04 0x0*04 R 0x1000" +check memory_test.stdout \ + " LOAD 0x00203c 0x0*04000 0x0*0603c 0x0*04 0x0*04 R 0x1000" exit 0 diff --git a/gold/testsuite/memory_test.t b/gold/testsuite/memory_test.t index 5963c93..3a35994 100644 --- a/gold/testsuite/memory_test.t +++ b/gold/testsuite/memory_test.t @@ -10,13 +10,17 @@ SECTIONS { .sec0 : { *(*.sec0) } - .sec1 ORIGIN (region1) : AT(LENGTH (region2)) { *(*.sec1) } + .sec1 ORIGIN (region1) : { *(*.sec1) } AT> region2 - fred = ORIGIN (region1) + LENGTH (region1) ; + fred = ORIGIN (region1) + LENGTH (region1); .sec2 : { *(*.sec2) } > region3 AT> region4 .sec3 0x5000 : { *(*.sec3) } + .sec4 : { *(*.sec4) } AT> region2 + + .sec5 : { LONG(0x5555) } > region2 + /DISCARD/ : { *(*) } } |