This is just a small addendum to the option and specs handling: - Document new avr-gcc command options - Change -march= to -mmcu= in some test cases - Add comfigure test to detect whether gas supports -mrmw and --mlink-relax. - Use result of these tests in specs generatio, i.e. omit respective options if they are not supported. Ok to apply? Two issues remain: - The tests that add -mmcu= to the command options will fail because there must not be more than one -mmcu=. Supporting several, incompatible MCUs makes no sense (same for incompatible -march + -mmcu which was the case). In 4.9 this works per accident with unspecified definitions for built-in macros or when the options differ in default settings, for example. - Spaces in the installation path are not supported. It's possible to recover from spaces in -specs= by escaping them in spec function device-specs-file. However this is almost impossible for the device library without changing gcc.c which can use convert_white_space() as needed. Adding more than one escape level is not possible because the '\' would be interpreted as part of the path. Johann gcc/ PR target/65296 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax. * configure: Regenerate. * config.in: Regenerate. * config/avr/gen-avr-mmcu-specs.c (config.h): Include it. (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION. (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION. gcc/ PR target/65296 * doc/invoke.texi (AVR Options) [-mrmw]: Document it. [-mn-flash]: Document it. [__AVR_DEVICE_NAME__]: Document it. [__ARV_ARCH__]: Document avrtiny. gcc/testsuite/ PR target/65296 * gcc.target/avr/tiny-memx: Use -mmcu instead of -march. * gcc.target/avr/tiny-caller-save.c: Same. gcc/ PR target/65296 * configure.ac [avr]: Check as for option -mrmw. * configure: Regenerate. * config.in: Regenerate. * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to assembler options if not HAVE_AS_AVR_MRMW_OPTION.