[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