--- /dev/null
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c 2011-09-02 12:31:10.000000000 +0300
++++ gcc/config/avr/avr-devices.c 2011-09-02 12:30:51.000000000 +0300
+@@ -295,6 +295,7 @@ const struct mcu_type_s avr_mcu_types[]
+ { "avrxmega7", ARCH_AVRXMEGA7, NULL, 0, 0x2000, "x128a1" },
+ { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__", 0, 0x2000, "x128a1" },
+ { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__", 0, 0x2000, "x128a1u" },
++ { "atxmega128a4u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A4U__", 0, 0x2000, "x128a4u" },
+ /* tiny10 family */
+ { "avrtiny10", ARCH_AVRTINY10, NULL, 0, 0x0040, "tn10" },
+ { "attiny4", ARCH_AVRTINY10, "__AVR_ATtiny4__", 0, 0x0040, "tn4" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr 2011-09-02 12:31:10.000000000 +0300
++++ gcc/config/avr/t-avr 2011-09-02 12:30:51.000000000 +0300
+@@ -300,6 +300,7 @@ MULTILIB_MATCHES = \
+ mmcu?avrxmega6=mmcu?atxmega384c3 \
+ mmcu?avrxmega7=mmcu?atxmega128a1 \
+ mmcu?avrxmega7=mmcu?atxmega128a1u \
++ mmcu?avrxmega7=mmcu?atxmega128a4u \
+ mmcu?avrtiny10=mmcu?attiny4 \
+ mmcu?avrtiny10=mmcu?attiny5 \
+ mmcu?avrtiny10=mmcu?attiny9 \