diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c --- gcc/config/avr/avr-devices.c 2011-10-28 12:06:09.000000000 +0530 +++ gcc/config/avr/avr-devices.c 2011-10-28 12:15:49.000000000 +0530 @@ -147,6 +147,7 @@ const struct mcu_type_s avr_mcu_types[] { "atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163" }, { "atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", 0, 0x0100, "m164a" }, { "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p" }, + { "atmega164pa", ARCH_AVR5, "__AVR_ATmega164PA__", 0, 0x0100, "m164pa" }, { "atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165" }, { "atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a" }, { "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p" }, @@ -154,6 +155,7 @@ const struct mcu_type_s avr_mcu_types[] { "atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168" }, { "atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", 0, 0x0100, "m168a" }, { "atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p" }, + { "atmega168pa", ARCH_AVR5, "__AVR_ATmega168PA__", 0, 0x0100, "m168pa" }, { "atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169" }, { "atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0x0100, "m169a" }, { "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p" }, @@ -164,6 +166,7 @@ const struct mcu_type_s avr_mcu_types[] { "atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0x0100, "m16m1" }, { "atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0x0100, "m16u4" }, { "atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32" }, + { "atmega32a", ARCH_AVR5, "__AVR_ATmega32A__", 0, 0x0060, "m32a" }, { "atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323" }, { "atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0x0100, "m324a" }, { "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p" }, @@ -192,6 +195,7 @@ const struct mcu_type_s avr_mcu_types[] { "atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__", 0, 0x0100, "m32u6" }, { "atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406" }, { "atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64" }, + { "atmega64a", ARCH_AVR5, "__AVR_ATmega64A__", 0, 0x0100, "m64a" }, { "atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640" }, { "atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644" }, { "atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", 0, 0x0100, "m644a" }, diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr --- gcc/config/avr/t-avr 2011-10-28 12:04:00.000000000 +0530 +++ gcc/config/avr/t-avr 2011-10-28 12:15:49.000000000 +0530 @@ -178,6 +178,7 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega163 \ mmcu?avr5=mmcu?atmega164a \ mmcu?avr5=mmcu?atmega164p \ + mmcu?avr5=mmcu?atmega164pa \ mmcu?avr5=mmcu?atmega165 \ mmcu?avr5=mmcu?atmega165a \ mmcu?avr5=mmcu?atmega165p \ @@ -185,11 +186,13 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega168 \ mmcu?avr5=mmcu?atmega168a \ mmcu?avr5=mmcu?atmega168p \ + mmcu?avr5=mmcu?atmega168pa \ mmcu?avr5=mmcu?atmega169 \ mmcu?avr5=mmcu?atmega169a \ mmcu?avr5=mmcu?atmega169p \ mmcu?avr5=mmcu?atmega169pa \ mmcu?avr5=mmcu?atmega32 \ + mmcu?avr5=mmcu?atmega32a \ mmcu?avr5=mmcu?atmega323 \ mmcu?avr5=mmcu?atmega324a \ mmcu?avr5=mmcu?atmega324p \ @@ -216,6 +219,7 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega64rfa2 \ mmcu?avr5=mmcu?atmega64rfr2 \ mmcu?avr5=mmcu?atmega64 \ + mmcu?avr5=mmcu?atmega64a \ mmcu?avr5=mmcu?atmega640 \ mmcu?avr5=mmcu?atmega644 \ mmcu?avr5=mmcu?atmega644a \