2015-03-16 21:17 GMT+03:00 Georg-Johann Lay <a...@gjlay.de>: > 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. >
Please apply. Denis.