On 04.07.2017 20:11, Richard Sandiford wrote:
Georg-Johann Lay <a...@gjlay.de> writes:
Hi,

This patch adds support for devices that can access flash memory
by LD* instructions, hence there is no need to put .rodata in RAM.

The default linker script for the new multilib versions already
supports this feature, it's similar to avrtiny, cf.

https://sourceware.org/PR21472

This patch does the following:

* Add multilib variants avrxmega3 and avrxmega3/short-calls.

* Add new option -mshort-calls for multilib selection between
    devices with <= 8KiB flash and > 8KiB flash.

* Add specs handling for -mshort-calls:  The compiler knows
    if this option is needed or not appropriate (similar to -msp8).

* Add new ISA feature AVR_ISA_RCALL for multilib selection
    via -mshort-calls.

* Add a new row to architecture description that contains the
    start address of flash memory in the RAM address range.
    (The actual value is not needed).

* For devices with flash in RAM space, don't let .rodata
    objects trigger need for __do_copy_data.

* Add some devices.

* Add configure test for Binutils PR21472.

Sorry if this has already been discussed, but it's useful to be
able to do things like:

   .../configure --target=avr-elf --with-cpu=arc700
   make -j... all-gcc

as a basic sanity test of a pan-target patch.  (I usually do
before-and-after assembly comparisons too if no changes are
expected.)  The way the configure test is written means that
it's no longer possible to do this without first building a
trunk version of binutils for avr-elf.

Thanks,
Richard

Okay, I already thought of a less aggressive approach, I'll
try to address it soon.

Johann


Reply via email to