mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-23 08:23:50 +08:00
Don't warn zero LMA adjustment.
bfd/ 2010-09-09 H.J. Lu <hongjiu.lu@intel.com> PR ld/11998 * elf.c (assign_file_positions_for_load_sections): Don't warn zero LMA adjustment. ld/testsuite/ 2010-09-09 H.J. Lu <hongjiu.lu@intel.com> PR ld/11998 * ld-scripts/rgn-at5.d: New. * ld-scripts/rgn-at5.s: Likewise. * ld-scripts/rgn-at5.t: Likewise.
This commit is contained in:
parent
497462ef9e
commit
a2d1e02801
@ -1,3 +1,9 @@
|
||||
2010-09-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/11998
|
||||
* elf.c (assign_file_positions_for_load_sections): Don't warn
|
||||
zero LMA adjustment.
|
||||
|
||||
2010-09-09 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
bfd/
|
||||
|
@ -4481,8 +4481,9 @@ assign_file_positions_for_load_sections (bfd *abfd,
|
||||
bfd_vma s_start = sec->lma;
|
||||
bfd_vma adjust = s_start - p_end;
|
||||
|
||||
if (s_start < p_end
|
||||
|| p_end < p_start)
|
||||
if (adjust != 0
|
||||
&& (s_start < p_end
|
||||
|| p_end < p_start))
|
||||
{
|
||||
(*_bfd_error_handler)
|
||||
(_("%B: section %A lma %#lx adjusted to %#lx"), abfd, sec,
|
||||
|
@ -1,3 +1,10 @@
|
||||
2010-09-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/11998
|
||||
* ld-scripts/rgn-at5.d: New.
|
||||
* ld-scripts/rgn-at5.s: Likewise.
|
||||
* ld-scripts/rgn-at5.t: Likewise.
|
||||
|
||||
2010-09-07 Andrew Burgess <aburgess@broadcom.com>
|
||||
|
||||
* ld-x86-64/split-by-file.rd: New test.
|
||||
|
17
ld/testsuite/ld-scripts/rgn-at5.d
Normal file
17
ld/testsuite/ld-scripts/rgn-at5.d
Normal file
@ -0,0 +1,17 @@
|
||||
# name: rgn-at5
|
||||
# source: rgn-at5.s
|
||||
# ld: -T rgn-at5.t -z max-page-size=0x1000
|
||||
# objdump: -w -h
|
||||
# xfail: rx-*-*
|
||||
# FAILS on the RX because the linker has to set LMA == VMA for the
|
||||
# Renesas loader.
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Sections:
|
||||
Idx +Name +Size +VMA +LMA +File off +Algn +Flags
|
||||
0 .sec0 +0+2 +0+02000 +0+2000 +0+02000 +.*
|
||||
1 .sec1 +0+2 +0+01000 +0+012c +0+01000 +.*
|
||||
2 .sec2 +0+2 +0+04000 +0+603c +0+04000 +.*
|
||||
3 .sec3 +0+2 +0+05000 +0+412c +0+03000 +.*
|
||||
4 .sec4 +0+2 +0+02002 +0+2002 +0+02002 +.*
|
14
ld/testsuite/ld-scripts/rgn-at5.s
Normal file
14
ld/testsuite/ld-scripts/rgn-at5.s
Normal file
@ -0,0 +1,14 @@
|
||||
.section .sec0, "a"
|
||||
.word 0
|
||||
|
||||
.section .sec1, "a"
|
||||
.word 0x11
|
||||
|
||||
.section .sec2, "a"
|
||||
.word 0x22
|
||||
|
||||
.section .sec3, "a"
|
||||
.word 0x33
|
||||
|
||||
.section .sec4, "a"
|
||||
.word 0x44
|
29
ld/testsuite/ld-scripts/rgn-at5.t
Normal file
29
ld/testsuite/ld-scripts/rgn-at5.t
Normal file
@ -0,0 +1,29 @@
|
||||
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) : AT(LENGTH (region2)) { *(*.sec1) }
|
||||
|
||||
fred = ORIGIN (region1) + LENGTH (region1) ;
|
||||
|
||||
.sec2 : { *(*.sec2) } > region3 AT> region4
|
||||
|
||||
.sec3 0x5000 : { *(*.sec3) }
|
||||
|
||||
/* In theory we could put:
|
||||
|
||||
/DISCARD/ : { *(*) }
|
||||
|
||||
here as we do not need any other sections for this test.
|
||||
In practice however doing so breaks GOLD as it relies upon
|
||||
being able to create/find various other sections such as
|
||||
.dynamic, .dynsym and .gnu.hash. */
|
||||
}
|
Loading…
Reference in New Issue
Block a user