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]

Re: Large lma delta using binutils 2.19


On Tue, Mar 02, 2010 at 05:24:55PM +0000, James Blackburn wrote:
> Thanks for the prompt reply!
>
> On 02/03/2010 17:14, H.J. Lu wrote:
>> to ensure that LMA of .data.init_task section is always equal to its
>> VMA...  You can add AT (ADDR(section)) to force LMA of
>> .data.init_task section equal to its VMA. It will work with both old
>> and new linkers.
>
> I spotted the commit that made the change.  Unfortunately we have a whole bunch of existing chip test suites, orthogonal to the tool-chain, that use their own custom linker scripts. It would be unfortunate to invalidate all these existing tests...

If you're unwilling to fix the test scripts so that they work with
both old and new ld, then your best option may be to not update ld or
to create your own custom ld.  I don't think we should contemplate
changing the default back;  The new behaviour has been in GNU ld for
over three and a half years.

>From the history on the mailing list, you'll see that the change was
particularly beneficial for overlays.  More than that, it's a less
suprising default.  If someone writes a script where some sections
have VMA expressions and others don't, the expectation is that the
VMAs for those sections without an explicit address will simply follow
on from the previous section.  My change made that happen for LMAs
too.  That helps when compiler changes introduce a new section that
isn't handled by a script.  You're much more likely to get the new
(orphan) section placed with the right LMA.

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]