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:
Alan Modra 2013-03-05 02:55:27 +00:00
parent da797b631b
commit 13762d2ee4
8 changed files with 65 additions and 0 deletions

View file

@ -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>
* scripttempl/elf32msp430.sc: Add placement of .data.* sections.

View file

@ -4963,6 +4963,13 @@ lang_size_sections_1
{
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)
lma = align_power (lma, section_alignment);
os->bfd_section->lma = lma;

View file

@ -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>
* ld-arm/tls-local-static.s: New test.

View 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 .*

View file

@ -0,0 +1,6 @@
.text
.long 0
.data
.p2align 8
.long 0

View 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/ : {*(*)}
}

View 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 .*

View 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/ : {*(*)}
}