Joern Rennecke
2014-10-08 17:50:32 UTC
As the steering commitee still hasn't spoken on the maintainership issue,
apparently this still has to go the write-after-approval route.
The purpose of this patch is to make it possible to add support for new
devices (MCUs) to the AVR toolchain, without having to re-build the
entire toolchain. This capability is desirable because new MCUs are added
fairly frequently.
There are multiple parts of the toolchain involved.
gcc changes multilibbing to key off the new -march option; the -mmcu option
is translated via DRIVER_SELF_SPECS into a -specs option, and the
individual spec files contain the required settings like -march, and various
more detailed settings (some of which are for new options).
binutils provides new relocation and relaxation facilities to allow referring
symbolically to symbol differences and/or I/O addresses.
avr-libc puts the device-specifc header settings in avr/io*.h, and a few
small device-specific likbale functions into a device-specific library.
The other toolchain parts are staged here:
***@github.com:embecosm/avr-binutils-gdb.git avr-mainline
***@github.com:embecosm/avr-libc.git avr-libc-embecosm-mainline
Attached is the GCC patch for the basic device package infrastructure.
OK to apply?
I intend to send the patch sets for avrtiny support (modified for device
package support) and for libstdc++-v3 support next, each building on the
previous patch set. The avrtiny support is also dependent on the
caller-save patch https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00420.html ,
as avr-libc won't build otherwise.
apparently this still has to go the write-after-approval route.
The purpose of this patch is to make it possible to add support for new
devices (MCUs) to the AVR toolchain, without having to re-build the
entire toolchain. This capability is desirable because new MCUs are added
fairly frequently.
There are multiple parts of the toolchain involved.
gcc changes multilibbing to key off the new -march option; the -mmcu option
is translated via DRIVER_SELF_SPECS into a -specs option, and the
individual spec files contain the required settings like -march, and various
more detailed settings (some of which are for new options).
binutils provides new relocation and relaxation facilities to allow referring
symbolically to symbol differences and/or I/O addresses.
avr-libc puts the device-specifc header settings in avr/io*.h, and a few
small device-specific likbale functions into a device-specific library.
The other toolchain parts are staged here:
***@github.com:embecosm/avr-binutils-gdb.git avr-mainline
***@github.com:embecosm/avr-libc.git avr-libc-embecosm-mainline
Attached is the GCC patch for the basic device package infrastructure.
OK to apply?
I intend to send the patch sets for avrtiny support (modified for device
package support) and for libstdc++-v3 support next, each building on the
previous patch set. The avrtiny support is also dependent on the
caller-save patch https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00420.html ,
as avr-libc won't build otherwise.