[patch,avr]: Part5: Fix various problems with specs and specs file generation.
Georg-Johann Lay
avr@gjlay.de
Mon Mar 16 18:18:00 GMT 2015
This patch introduces a new avr specific command option '-nodevicelib' so that
linking of libdev.a can be bypassed.
The argument of -specs= is suffixed by %s instead of supplying the absolute
path. That way -specs= works with installation path that contains spaces.
avr_mct_t.library_name and its initializers in avr-mcus.def are cleaned up.
This field was used to define __AVR_DEV_LIB_NAME__. If no device macro is
defined because a device is not supported by avr-gcc, that hook macro can be
defined to tell avr/io.h where to find the device's header file.
This means it is pointless to define __AVR_DEV_LIB_NAME__ in avr-gcc:
If a device is supported, the device macro (e.g. __AVR_ATmega8__) is defined
and __AVR_DEV_LIB_NAME__ will never be used.
The patch adds more help text to the device specs file to inform a potential
reader about the role of the hook macro __AVR_DEV_LIB_NAME__.
The patch also removes specs known to GCC and which don't directly depend on
the device from the device specs file. This makes the specs file smaller and
easier less confusing.
Ok for trunk?
Johann
PR target/65296
* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [AVR1]: Don't link
libgcc.a, libc.a, libm.a.
* config/avr/specs.h: Same.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
which don't (directly) depend on the device. Print more help.
(*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
(*cpp): Don't define __AVR_DEV_LIB_NAME__.
* config/avr/driver-avr.c: Remove -nodevicelib from option list in
case of an error.
(avr_devicespecs_file): Use suffix "%s" instead of absolute path.
for specs file name instead of absolute path.
* config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
* config/avr/avr-mcus.def: Same: Adjust initializers.
* config/avr/avr.opt (-nodevicelib): New option.
* doc/invoke.texi (AVR Options): Document it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr65296-part5.diff
Type: text/x-patch
Size: 72734 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150316/7111ce8c/attachment.bin>
More information about the Gcc-patches
mailing list