aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite
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/testsuite
parentc0e4ee6b249d0e2fc3f3e4e0864e00faf93fe126 (diff)
downloadgdb-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.s10
-rwxr-xr-xgold/testsuite/memory_test.sh19
-rw-r--r--gold/testsuite/memory_test.t8
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/ : { *(*) }
}