LD scripts - using expressions correctly

David Paterson dnpaterson@gmail.com
Tue Jul 8 08:33:00 GMT 2014


OK - I have no idea why I can't get it to build (HAVE_LIMITS_H is
definitely defined via the configure step) but that's a problem for
another thread.

Re the expressions problem, I tried using Alan's re-written version
and it works perfectly when using the current version (2.24) of
Binutils.  A bit of experimenting seems to show that it's the "+="
operator that's up to mischief so I've removed all uses of it from my
scripts, and they're working fine now.

Thanks to Alan for his help, and remember folks, when using LD, just
say "No!" to += :-)

Cheers,

David P.

On 7 July 2014 16:10, David Paterson <dnpaterson@gmail.com> wrote:
> Hmmm, build failure :-
>
> .../libiberty/fibheap.c:38:24: error: 'LONG_MIN
> ' undeclared (first use in this function)
>  #define FIBHEAPKEY_MIN LONG_MIN
>
>  I'm not sure if it's something wrong in my build environment (MinGW)
> or my configure settings, or something else, but I'll perhaps try
> working back to earlier versions and see how it goes.
>
> AT least I know there's likely a fix for my original problem.
>
> DP
>
>
> On 7 July 2014 15:46, David Paterson <dnpaterson@gmail.com> wrote:
>> Thanks.  I'm building at the moment and should be able to test that in
>> a little while :-)
>>
>>
>> On 7 July 2014 15:36, Alan Modra <amodra@gmail.com> wrote:
>>> On Mon, Jul 07, 2014 at 03:06:45PM +0100, David Paterson wrote:
>>>> I should have mentioned I'm using 2.24, but I'll pull the latest
>>>> version from GIT and try that.
>>>
>>> If mainline works for you, then I expect fa72205c was the patch that
>>> fixed your trouble.  Which also means you can work around this by
>>> replacing:
>>>
>>>   _textVMA = (_exec_rom > 0) ? _textLMA : _ram_start;
>>>   _textVMA += _textoffset;
>>>
>>> with:
>>>
>>>   _textVMA = ((_exec_rom > 0) ? _textLMA : _ram_start) + _textoffset;
>>>
>>> --
>>> Alan Modra
>>> Australia Development Lab, IBM



More information about the Binutils mailing list