This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 08/01/2015 01:41 AM, Alan Modra wrote:
The change in ALIGN behaviour only affected those ". = ALIGN (8)" statements, not the align on the section here: .cs3.internalram : ALIGN (8) Yet the LMA for .cs3.internalram has changed. This indicates to me that something before the snippet you posted caused the problem.
Hmmmm, yes. Backing up a bit, I see that this in the linker script: .rodata : ALIGN (4) { ... __cs3_regions_end = .; . = ALIGN (8); _etext = .; } >rom gives this map output without the patch: 0xa00003b8 __cs3_regions_end = . 0xa00003b8 . = ALIGN (0x8) 0xa00003b8 _etext = . and this with it: 0xa00003b8 __cs3_regions_end = . 0xa00003bc . = ALIGN (0x8) *fill* 0xa00003b8 0x4 0xa00003bc _etext = .That ALIGN directive is definitely doing the wrong thing -- "." is already aligned and inserting the fill is making it unaligned. :-(
I'm not sure how the LMA is going backwards. Even if .cs3.internalram.bss was stripped from the output, it still should have its LMA updated on each phase of lang_size_sections. Can you post a complete testcase?
It'll take me a while to reduce the example to something standalone (not requiring libraries, etc), but I've attached the full linker script and map files. This is for arm-none-eabi target, BTW, but I don't think that should matter in terms of linker script processing.
-Sandra
Attachment:
imx31-rom.ld
Description: Text document
Attachment:
patched.map
Description: Text document
Attachment:
reverted.map
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |