[Patch, avr] Place progmem.data from avr-libc above other progmem
Nick Clifton
nickc@redhat.com
Wed May 18 09:36:00 GMT 2016
Hi Senthil,
>>> avr-libc's vfprint handling uses a lookup table located in flash
>>> if float format specifiers are involved. If user code also has
>>> lots of flash data (in section .progmem.data), then
>>> avr-libc's progmem data gets pushed beyond the 64 K word limit. The
>>> avr-libc code doesn't expect this to happen and vfprintf stops working correctly.
>>
>> Doesn't this indicate a problem with the linker - in that it does not
>> report to the user that the code is broken and that accesses above the 64k
>> limit are being made without use of the memx address space modifier ?
>
> Do you mean reloc processing should have detected the overflow?
It could be that, or some other mechanism. I am just saying that if there is
the potential for the linker to produce a broken binary because the user has
failed to annotate their memory references correctly then it would be a good
idea for the linker to generate an error message. Assuming that it possible
of course. I am not familiar with the AVR architecture, so I do not know what
is and is not do-able.
Cheers
Nick
More information about the Binutils
mailing list