2004-04-02 Theodore A. Roth * gcc/config/avr/avr.c (avr_mcu_types): Add entries for atmega48, atmega88, atmega168, attiny13, attiny2313 and at90can128. * gcc/config/avr/avr.h (LINK_SPEC): Ditto. (LIB_SPEC): Ditto. (LIBGCC_SPEC): Ditto. (CRT_BINUTILS_SPECS): Ditto. * gcc/config/avr/t-avr (MULTILIB_MATCHES): Ditto. Index: gcc/config/avr/avr.c =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/config/avr/avr.c,v retrieving revision 1.118 diff -u -p -p -r1.118 avr.c --- gcc/config/avr/avr.c 13 Mar 2004 06:43:30 -0000 1.118 +++ gcc/config/avr/avr.c 3 Apr 2004 00:08:14 -0000 @@ -187,19 +187,25 @@ static const struct mcu_type_s avr_mcu_t /* Enhanced, <= 8K. */ { "avr4", 4, NULL }, { "atmega8", 4, "__AVR_ATmega8__" }, + { "atmega48", 4, "__AVR_ATmega48__" }, + { "atmega88", 4, "__AVR_ATmega88__" }, { "atmega8515", 4, "__AVR_ATmega8515__" }, { "atmega8535", 4, "__AVR_ATmega8535__" }, + { "attiny13", 4, "__AVR_ATtiny13__" }, + { "attiny2313", 4, "__AVR_ATtiny2313__" }, /* Enhanced, > 8K. */ { "avr5", 5, NULL }, { "atmega16", 5, "__AVR_ATmega16__" }, { "atmega161", 5, "__AVR_ATmega161__" }, { "atmega162", 5, "__AVR_ATmega162__" }, { "atmega163", 5, "__AVR_ATmega163__" }, + { "atmega168", 5, "__AVR_ATmega168__" }, { "atmega169", 5, "__AVR_ATmega169__" }, { "atmega32", 5, "__AVR_ATmega32__" }, { "atmega323", 5, "__AVR_ATmega323__" }, { "atmega64", 5, "__AVR_ATmega64__" }, { "atmega128", 5, "__AVR_ATmega128__" }, + { "at90can128", 5, "__AVR_AT90CAN128__" }, { "at94k", 5, "__AVR_AT94K__" }, /* Assembler only. */ { "avr1", 1, NULL }, Index: gcc/config/avr/avr.h =================================================================== --- gcc/config/avr/avr.h.orig 2004-03-08 19:59:55.000000000 -0700 +++ gcc/config/avr/avr.h 2004-04-26 14:22:16.382996800 -0600 @@ -2351,12 +2351,12 @@ extern int avr_case_values_threshold; Do not define this macro if it does not need to do anything. */ #define LINK_SPEC " %{!mmcu*:-m avr2}\ -%{mmcu=at90s1200|mmcu=attiny1*|mmcu=attiny28:-m avr1} \ +%{mmcu=at90s1200|mmcu=attiny11|mmcu=attiny12|mmcu=attiny15|mmcu=attiny28:-m avr1} \ %{mmcu=attiny22|mmcu=attiny26|mmcu=at90s2*|mmcu=at90s4*|mmcu=at90s8*|mmcu=at90c8*|mmcu=at86rf401:-m avr2}\ %{mmcu=atmega103|mmcu=atmega603|mmcu=at43*|mmcu=at76*:-m avr3}\ -%{mmcu=atmega8*:-m avr4}\ -%{mmcu=atmega16*|mmcu=atmega32*|mmcu=atmega64|mmcu=atmega128|mmcu=at94k:-m avr5}\ -%{mmcu=atmega64|mmcu=atmega128|mmcu=atmega162|mmcu=atmega169: -Tdata 0x800100} " +%{mmcu=atmega8*|mmcu=atmega48|mmcu=attiny13|mmcu=attiny2313:-m avr4}\ +%{mmcu=atmega16*|mmcu=atmega32*|mmcu=atmega64|mmcu=atmega128|mmcu=at90can128|mmcu=at94k:-m avr5}\ +%{mmcu=atmega48|mmcu=atmega88|mmcu=atmega64|mmcu=atmega128|mmcu=at90can128|mmcu=at90can128|mmcu=atmega162|mmcu=atmega168|mmcu=atmega169: -Tdata 0x800100} " /* A C string constant that tells the GCC driver program options to pass to the linker. It can also specify how to translate options @@ -2365,7 +2365,7 @@ extern int avr_case_values_threshold; Do not define this macro if it does not need to do anything. */ #define LIB_SPEC \ - "%{!mmcu=at90s1*:%{!mmcu=attiny1*:%{!mmcu=attiny28: -lc }}}" + "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}" /* Another C string constant used much like `LINK_SPEC'. The difference between the two is that `LIB_SPEC' is used at the end of the command given to the linker. @@ -2377,7 +2377,7 @@ extern int avr_case_values_threshold; /* No libstdc++ for now. Empty string doesn't work. */ #define LIBGCC_SPEC \ - "%{!mmcu=at90s1*:%{!mmcu=attiny1*:%{!mmcu=attiny28: -lgcc }}}" + "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lgcc }}}}}" /* Another C string constant that tells the GCC driver program how and when to place a reference to `libgcc.a' into the linker command line. This constant is placed both before and after the @@ -2427,17 +2427,23 @@ extern int avr_case_values_threshold; %{mmcu=at43usb355:crt43355.o%s} \ %{mmcu=at76c711:crt76711.o%s} \ %{mmcu=atmega8|mmcu=avr4:crtm8.o%s} \ +%{mmcu=atmega48:crtm48.o%s} \ +%{mmcu=atmega88:crtm88.o%s} \ %{mmcu=atmega8515:crtm8515.o%s} \ %{mmcu=atmega8535:crtm8535.o%s} \ +%{mmcu=attiny13:crttn13.o%s} \ +%{mmcu=attiny2313:crttn2313.o%s} \ %{mmcu=atmega16:crtm16.o%s} \ %{mmcu=atmega161|mmcu=avr5:crtm161.o%s} \ %{mmcu=atmega162:crtm162.o%s} \ %{mmcu=atmega163:crtm163.o%s} \ +%{mmcu=atmega168:crtm168.o%s} \ %{mmcu=atmega169:crtm169.o%s} \ %{mmcu=atmega32:crtm32.o%s} \ %{mmcu=atmega323:crtm323.o%s} \ %{mmcu=atmega64:crtm64.o%s} \ %{mmcu=atmega128:crtm128.o%s} \ +%{mmcu=at90can128:crtcan128.o%s} \ %{mmcu=at94k:crtat94k.o%s}" #define EXTRA_SPECS {"crt_binutils", CRT_BINUTILS_SPECS}, Index: gcc/config/avr/t-avr =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/config/avr/t-avr,v retrieving revision 1.12 diff -u -p -p -r1.12 t-avr --- gcc/config/avr/t-avr 27 Feb 2003 21:45:33 -0000 1.12 +++ gcc/config/avr/t-avr 3 Apr 2004 00:08:14 -0000 @@ -50,13 +50,15 @@ MULTILIB_MATCHES = \ mmcu?avr3=mmcu?at43usb320 mmcu?avr3=mmcu?at43usb355 \ mmcu?avr3=mmcu?at76c711 \ mmcu?avr4=mmcu?atmega8515 mmcu?avr4=mmcu?atmega8535 \ - mmcu?avr4=mmcu?atmega8 \ + mmcu?avr4=mmcu?attiny13 mmcu?avr4=mmcu?attiny2313 \ + mmcu?avr4=mmcu?atmega8 mmcu?avr4=mmcu?atmega48 \ + mmcu?avr4=mmcu?atmega88 \ mmcu?avr5=mmcu?atmega161 mmcu?avr5=mmcu?atmega162 \ mmcu?avr5=mmcu?atmega163 mmcu?avr5=mmcu?atmega169 \ - mmcu?avr5=mmcu?atmega16 \ + mmcu?avr5=mmcu?atmega16 mmcu?avr5=mmcu?atmega168 \ mmcu?avr5=mmcu?atmega323 mmcu?avr5=mmcu?atmega32 \ mmcu?avr5=mmcu?atmega64 mmcu?avr5=mmcu?atmega128 \ - mmcu?avr5=mmcu?at94k + mmcu?avr5=mmcu?at94k mmcu?avr5=mmcu?at90can128 MULTILIB_EXCEPTIONS =