PR ld/15222
ld/ * ldlang.c (lang_size_sections_1): When given an lma_region align LMA as per VMA only if lma_region is the same as region. ld/testsuite/ * ld-scripts/rgn-at6.s, * ld-scripts/rgn-at6.t, * ld-scripts/rgn-at6.d, * ld-scripts/rgn-at7.t, * ld-scripts/rgn-at7.d: New tests.
This commit is contained in:
parent
da797b631b
commit
13762d2ee4
8 changed files with 65 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2013-03-05 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR ld/15222
|
||||||
|
* ldlang.c (lang_size_sections_1): When given an lma_region align
|
||||||
|
LMA as per VMA only if lma_region is the same as region.
|
||||||
|
|
||||||
2013-02-27 Nick Clifton <nickc@redhat.com>
|
2013-02-27 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* scripttempl/elf32msp430.sc: Add placement of .data.* sections.
|
* scripttempl/elf32msp430.sc: Add placement of .data.* sections.
|
||||||
|
|
|
@ -4963,6 +4963,13 @@ lang_size_sections_1
|
||||||
{
|
{
|
||||||
bfd_vma lma = os->lma_region->current;
|
bfd_vma lma = os->lma_region->current;
|
||||||
|
|
||||||
|
/* When LMA_REGION is the same as REGION, align the LMA
|
||||||
|
as we did for the VMA, possibly including alignment
|
||||||
|
from the bfd section. If a different region, then
|
||||||
|
only align according to the value in the output
|
||||||
|
statement. */
|
||||||
|
if (os->lma_region != os->region)
|
||||||
|
section_alignment = os->section_alignment;
|
||||||
if (section_alignment > 0)
|
if (section_alignment > 0)
|
||||||
lma = align_power (lma, section_alignment);
|
lma = align_power (lma, section_alignment);
|
||||||
os->bfd_section->lma = lma;
|
os->bfd_section->lma = lma;
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-03-05 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* ld-scripts/rgn-at6.s, * ld-scripts/rgn-at6.t, * ld-scripts/rgn-at6.d,
|
||||||
|
* ld-scripts/rgn-at7.t, * ld-scripts/rgn-at7.d: New tests.
|
||||||
|
|
||||||
2013-02-28 Nathan Sidwell <nathan@codesourcery.com>
|
2013-02-28 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* ld-arm/tls-local-static.s: New test.
|
* ld-arm/tls-local-static.s: New test.
|
||||||
|
|
9
ld/testsuite/ld-scripts/rgn-at6.d
Normal file
9
ld/testsuite/ld-scripts/rgn-at6.d
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#source: rgn-at6.s
|
||||||
|
#ld: -T rgn-at6.t
|
||||||
|
#objdump: -h --wide
|
||||||
|
#xfail: rx-*-*
|
||||||
|
# Test that lma is aligned as for vma when lma_region==region.
|
||||||
|
|
||||||
|
#...
|
||||||
|
.* 0+10000 +0+10000 .*
|
||||||
|
.* 0+10100 +0+10100 .*
|
6
ld/testsuite/ld-scripts/rgn-at6.s
Normal file
6
ld/testsuite/ld-scripts/rgn-at6.s
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
.text
|
||||||
|
.long 0
|
||||||
|
|
||||||
|
.data
|
||||||
|
.p2align 8
|
||||||
|
.long 0
|
11
ld/testsuite/ld-scripts/rgn-at6.t
Normal file
11
ld/testsuite/ld-scripts/rgn-at6.t
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
ram : ORIGIN = 0x10000, LENGTH = 0x10000
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.text : {*(.text)} > ram AT> ram
|
||||||
|
.data : ALIGN (16) {*(.data)} > ram AT> ram
|
||||||
|
/DISCARD/ : {*(*)}
|
||||||
|
}
|
9
ld/testsuite/ld-scripts/rgn-at7.d
Normal file
9
ld/testsuite/ld-scripts/rgn-at7.d
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#source: rgn-at6.s
|
||||||
|
#ld: -T rgn-at7.t
|
||||||
|
#objdump: -h --wide
|
||||||
|
#xfail: rx-*-*
|
||||||
|
# Test that lma is only aligned by script when lma_region!=region.
|
||||||
|
|
||||||
|
#...
|
||||||
|
.* 0+10000 +0+20000 .*
|
||||||
|
.* 0+10100 +0+20010 .*
|
12
ld/testsuite/ld-scripts/rgn-at7.t
Normal file
12
ld/testsuite/ld-scripts/rgn-at7.t
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
ram : ORIGIN = 0x10000, LENGTH = 0x10000
|
||||||
|
rom : ORIGIN = 0x20000, LENGTH = 0x10000
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.text : {*(.text)} > ram AT> rom
|
||||||
|
.data : ALIGN (16) {*(.data)} > ram AT> rom
|
||||||
|
/DISCARD/ : {*(*)}
|
||||||
|
}
|
Loading…
Reference in a new issue