From 3ccd393ff5ef4a0f3b5d2fa23e02104dca7e34ae Mon Sep 17 00:00:00 2001 From: kosmo Date: Sun, 19 Feb 2012 20:52:06 +0000 Subject: [PATCH] - synchronized patches with Atmel official AVR8-GNU toolchain. - downgraded to 2.20.1 - epoch 1 Changed files: 300-binutils-2.20.1-avr-size.patch -> 1.1 301-binutils-2.20.1-avr-coff.patch -> 1.1 302-binutils-2.20.1-new-sections.patch -> 1.1 303-binutils-2.20.1-as-dwarf.patch -> 1.1 304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch -> 1.1 305-binutils-2.20.1-assembler-options.patch -> 1.1 400-binutils-2.20.1-xmega.patch -> 1.1 401-binutils-2.20.1-new-devices.patch -> 1.1 402-binutils-2.20.1-avrtiny10.patch -> 1.1 403-binutils-2.20.1-xmega128a1u-64a1u.patch -> 1.1 404-binutils-2.20.1-atxmega32x1.patch -> 1.1 405-binutils-2.20.1-atxmega128b1.patch -> 1.1 406-binutils-2.20.1-atxmega256a3bu.patch -> 1.1 407-binutils-2.20.1-at90pwm161.patch -> 1.1 408-binutils-2.20.1-atmega16hvb-32hvb.patch -> 1.1 409-binutils-2.20.1-atmega32_5_50_90_pa.patch -> 1.1 410-binutils-2.20.1-attiny1634.patch -> 1.1 411-binutils-2.20.1-atmega48pa.patch -> 1.1 412-binutils-2.20.1-atxmega_16_32_a4u.patch -> 1.1 413-binutils-2.20.1-atxmega64_128_192_256a3u.patch -> 1.1 414-binutils-2.20.1-atmegarfr2_a2.patch -> 1.1 415-binutils-2.20.1-atmega165pa.patch -> 1.1 416-binutils-2.20.1-atxmega384c3.patch -> 1.1 417-binutils-2.20.1-attiny80.patch -> 1.1 418-binutils-2.20.1-atxmega128a4u.patch -> 1.1 419-binutils-2.20.1-atxmega64d4.patch -> 1.1 420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch -> 1.1 421-binutils-2.20.1-atxmega64_128_b3.patch -> 1.1 422-binutils-2.20.1-atxmega64b1.patch -> 1.1 423-binutils-2.20.1-atmega_8a_128a_1284.patch -> 1.1 424-binutils-2.20.1-atxmega64a4u.patch -> 1.1 425-binutils-2.20.1-atxmega128d4.patch -> 1.1 426-binutils-2.20.1-atmxt336s.patch -> 1.1 427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch -> 1.1 428-binutils-2.20.1-atxmega384d3.patch -> 1.1 429-binutils-2.20.1-atmega48hvf.patch -> 1.1 430-binutils-2.20.1-atmega26hvg.patch -> 1.1 431-binutils-2.20.1-atmxt224_224e.patch -> 1.1 431-binutils-2.20.1-atxmega192c3.patch -> 1.1 500-binutils-2.20.1-bug13789.patch -> 1.1 501-binutils-2.20.1-bug13113.patch -> 1.1 crossavr-binutils-avr-coff.patch -> 1.4 crossavr-binutils-avr-size.patch -> 1.4 crossavr-binutils-new-sections.patch -> 1.3 crossavr-binutils-xmega.patch -> 1.4 crossavr-binutils.spec -> 1.38 --- ...atch => 300-binutils-2.20.1-avr-size.patch | 179 ++++++-- ...atch => 301-binutils-2.20.1-avr-coff.patch | 232 +++++----- ... => 302-binutils-2.20.1-new-sections.patch | 4 +- 303-binutils-2.20.1-as-dwarf.patch | 29 ++ ...s-2.20.1-dwarf2-AVRStudio-workaround.patch | 28 ++ 305-binutils-2.20.1-assembler-options.patch | 12 + ...a.patch => 400-binutils-2.20.1-xmega.patch | 414 +++++++++--------- 401-binutils-2.20.1-new-devices.patch | 229 ++++++++++ 402-binutils-2.20.1-avrtiny10.patch | 218 +++++++++ 403-binutils-2.20.1-xmega128a1u-64a1u.patch | 42 ++ 404-binutils-2.20.1-atxmega32x1.patch | 38 ++ 405-binutils-2.20.1-atxmega128b1.patch | 36 ++ 406-binutils-2.20.1-atxmega256a3bu.patch | 34 ++ 407-binutils-2.20.1-at90pwm161.patch | 73 +++ 408-binutils-2.20.1-atmega16hvb-32hvb.patch | 52 +++ 409-binutils-2.20.1-atmega32_5_50_90_pa.patch | 88 ++++ 410-binutils-2.20.1-attiny1634.patch | 36 ++ 411-binutils-2.20.1-atmega48pa.patch | 39 ++ 412-binutils-2.20.1-atxmega_16_32_a4u.patch | 87 ++++ ...tils-2.20.1-atxmega64_128_192_256a3u.patch | 81 ++++ 414-binutils-2.20.1-atmegarfr2_a2.patch | 98 +++++ 415-binutils-2.20.1-atmega165pa.patch | 34 ++ 416-binutils-2.20.1-atxmega384c3.patch | 46 ++ 417-binutils-2.20.1-attiny80.patch | 34 ++ 418-binutils-2.20.1-atxmega128a4u.patch | 34 ++ 419-binutils-2.20.1-atxmega64d4.patch | 36 ++ ...ils-2.20.1-atmega164pa_168pa_32a_64a.patch | 89 ++++ 421-binutils-2.20.1-atxmega64_128_b3.patch | 61 +++ 422-binutils-2.20.1-atxmega64b1.patch | 34 ++ 423-binutils-2.20.1-atmega_8a_128a_1284.patch | 65 +++ 424-binutils-2.20.1-atxmega64a4u.patch | 34 ++ 425-binutils-2.20.1-atxmega128d4.patch | 37 ++ 426-binutils-2.20.1-atmxt336s.patch | 50 +++ ...-2.20.1-atxmega16c4_32c4_128c3_256c3.patch | 92 ++++ 428-binutils-2.20.1-atxmega384d3.patch | 43 ++ 429-binutils-2.20.1-atmega48hvf.patch | 42 ++ 430-binutils-2.20.1-atmega26hvg.patch | 43 ++ 431-binutils-2.20.1-atmxt224_224e.patch | 44 ++ 431-binutils-2.20.1-atxmega192c3.patch | 34 ++ 500-binutils-2.20.1-bug13789.patch | 377 ++++++++++++++++ 501-binutils-2.20.1-bug13113.patch | 114 +++++ crossavr-binutils.spec | 97 +++- 42 files changed, 3113 insertions(+), 376 deletions(-) rename crossavr-binutils-avr-size.patch => 300-binutils-2.20.1-avr-size.patch (66%) rename crossavr-binutils-avr-coff.patch => 301-binutils-2.20.1-avr-coff.patch (95%) rename crossavr-binutils-new-sections.patch => 302-binutils-2.20.1-new-sections.patch (88%) create mode 100644 303-binutils-2.20.1-as-dwarf.patch create mode 100644 304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch create mode 100644 305-binutils-2.20.1-assembler-options.patch rename crossavr-binutils-xmega.patch => 400-binutils-2.20.1-xmega.patch (74%) create mode 100644 401-binutils-2.20.1-new-devices.patch create mode 100644 402-binutils-2.20.1-avrtiny10.patch create mode 100644 403-binutils-2.20.1-xmega128a1u-64a1u.patch create mode 100644 404-binutils-2.20.1-atxmega32x1.patch create mode 100644 405-binutils-2.20.1-atxmega128b1.patch create mode 100644 406-binutils-2.20.1-atxmega256a3bu.patch create mode 100644 407-binutils-2.20.1-at90pwm161.patch create mode 100644 408-binutils-2.20.1-atmega16hvb-32hvb.patch create mode 100644 409-binutils-2.20.1-atmega32_5_50_90_pa.patch create mode 100644 410-binutils-2.20.1-attiny1634.patch create mode 100644 411-binutils-2.20.1-atmega48pa.patch create mode 100644 412-binutils-2.20.1-atxmega_16_32_a4u.patch create mode 100644 413-binutils-2.20.1-atxmega64_128_192_256a3u.patch create mode 100644 414-binutils-2.20.1-atmegarfr2_a2.patch create mode 100644 415-binutils-2.20.1-atmega165pa.patch create mode 100644 416-binutils-2.20.1-atxmega384c3.patch create mode 100644 417-binutils-2.20.1-attiny80.patch create mode 100644 418-binutils-2.20.1-atxmega128a4u.patch create mode 100644 419-binutils-2.20.1-atxmega64d4.patch create mode 100644 420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch create mode 100644 421-binutils-2.20.1-atxmega64_128_b3.patch create mode 100644 422-binutils-2.20.1-atxmega64b1.patch create mode 100644 423-binutils-2.20.1-atmega_8a_128a_1284.patch create mode 100644 424-binutils-2.20.1-atxmega64a4u.patch create mode 100644 425-binutils-2.20.1-atxmega128d4.patch create mode 100644 426-binutils-2.20.1-atmxt336s.patch create mode 100644 427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch create mode 100644 428-binutils-2.20.1-atxmega384d3.patch create mode 100644 429-binutils-2.20.1-atmega48hvf.patch create mode 100644 430-binutils-2.20.1-atmega26hvg.patch create mode 100644 431-binutils-2.20.1-atmxt224_224e.patch create mode 100644 431-binutils-2.20.1-atxmega192c3.patch create mode 100644 500-binutils-2.20.1-bug13789.patch create mode 100644 501-binutils-2.20.1-bug13113.patch diff --git a/crossavr-binutils-avr-size.patch b/300-binutils-2.20.1-avr-size.patch similarity index 66% rename from crossavr-binutils-avr-size.patch rename to 300-binutils-2.20.1-avr-size.patch index 49a79dd..e9065e9 100644 --- a/crossavr-binutils-avr-size.patch +++ b/300-binutils-2.20.1-avr-size.patch @@ -1,8 +1,8 @@ AVR specific only --------------------------------------------------------------------------------- +=========================================================== --- binutils/size.c 2007-08-06 13:56:14.000000000 -0600 +++ binutils/size.c 2007-09-13 09:13:10.281250000 -0600 -@@ -35,10 +35,31 @@ +@@ -36,10 +36,31 @@ #include "getopt.h" #include "bucomm.h" @@ -36,7 +36,7 @@ AVR specific only /* Program options. */ static enum -@@ -47,9 +68,8 @@ static enum +@@ -48,9 +69,8 @@ static enum } radix = decimal; @@ -47,7 +47,7 @@ AVR specific only static int show_version = 0; static int show_help = 0; static int show_totals = 0; -@@ -63,6 +83,163 @@ static bfd_size_type total_textsize; +@@ -64,6 +84,246 @@ static bfd_size_type total_textsize; /* Program exit status. */ static int return_code = 0; @@ -63,12 +63,18 @@ AVR specific only +#define AVR4K 4096UL +#define AVR8K 8192UL +#define AVR16K 16384UL ++#define AVR20K 20480UL +#define AVR24K 24576UL +#define AVR32K 32768UL ++#define AVR36K 36864UL +#define AVR40K 40960UL +#define AVR64K 65536UL ++#define AVR68K 69632UL +#define AVR128K 131072UL ++#define AVR136K 139264UL ++#define AVR200K 204800UL +#define AVR256K 262144UL ++#define AVR264K 270336UL + +typedef struct +{ @@ -80,129 +86,206 @@ AVR specific only + +avr_device_t avr[] = +{ ++ {"atxmega256a3", AVR264K, AVR16K, AVR4K}, ++ {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, ++ {"atxmega256d3", AVR264K, AVR16K, AVR4K}, ++ + {"atmega2560", AVR256K, AVR8K, AVR4K}, + {"atmega2561", AVR256K, AVR8K, AVR4K}, -+ {"atxmega256a3", AVR256K, AVR8K, AVR4K}, -+ {"atxmega256a3b", AVR256K, AVR8K, AVR4K}, -+ {"atxmega256a3v", AVR256K, AVR8K, AVR4K}, + -+ {"at43usb320", AVR128K, 608UL, 0}, ++ {"atxmega192a3", AVR200K, AVR16K, AVR2K}, ++ {"atxmega192d3", AVR200K, AVR16K, AVR2K}, ++ ++ {"atxmega128a1", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128a3", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128d3", AVR136K, AVR8K, AVR2K}, ++ ++ {"at43usb320", AVR128K, 608UL, 0UL}, + {"at90can128", AVR128K, AVR4K, AVR4K}, + {"at90usb1286", AVR128K, AVR8K, AVR4K}, + {"at90usb1287", AVR128K, AVR8K, AVR4K}, + {"atmega128", AVR128K, AVR4K, AVR4K}, + {"atmega1280", AVR128K, AVR8K, AVR4K}, + {"atmega1281", AVR128K, AVR8K, AVR4K}, -+ {"atmega1284P", AVR128K, AVR16K, AVR4K}, -+ {"atmega103", AVR128K, 4000UL, AVR4K}, -+ {"atxmega128a1", AVR128K, AVR8K, AVR2K}, -+ {"atxmega128a3", AVR128K, AVR16K, AVR2K}, ++ {"atmega1284p", AVR128K, AVR16K, AVR4K}, ++ {"atmega128rfa1", AVR128K, AVR16K, AVR4K}, ++ {"atmega103", AVR128K, 4000UL, AVR4K}, ++ ++ {"atxmega64a1", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64a3", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64d3", AVR68K, AVR4K, AVR2K}, + + {"at90can64", AVR64K, AVR4K, AVR2K}, ++ {"at90scr100", AVR64K, AVR4K, AVR2K}, + {"at90usb646", AVR64K, AVR4K, AVR2K}, + {"at90usb647", AVR64K, AVR4K, AVR2K}, + {"atmega64", AVR64K, AVR4K, AVR2K}, + {"atmega640", AVR64K, AVR8K, AVR4K}, + {"atmega644", AVR64K, AVR4K, AVR2K}, ++ {"atmega644a", AVR64K, AVR4K, AVR2K}, + {"atmega644p", AVR64K, AVR4K, AVR2K}, ++ {"atmega644pa", AVR64K, AVR4K, AVR2K}, + {"atmega645", AVR64K, AVR4K, AVR2K}, ++ {"atmega645a", AVR64K, AVR4K, AVR2K}, ++ {"atmega645p", AVR64K, AVR4K, AVR2K}, + {"atmega6450", AVR64K, AVR4K, AVR2K}, ++ {"atmega6450a", AVR64K, AVR4K, AVR2K}, ++ {"atmega6450p", AVR64K, AVR4K, AVR2K}, + {"atmega649", AVR64K, AVR4K, AVR2K}, ++ {"atmega649a", AVR64K, AVR4K, AVR2K}, ++ {"atmega649p", AVR64K, AVR4K, AVR2K}, + {"atmega6490", AVR64K, AVR4K, AVR2K}, -+ {"atxmega64a1", AVR64K, AVR4K, AVR2K}, -+ {"atxmega64a3", AVR64K, AVR4K, AVR2K}, ++ {"atmega6490a", AVR64K, AVR4K, AVR2K}, ++ {"atmega6490p", AVR64K, AVR4K, AVR2K}, ++ {"atmega64c1", AVR64K, AVR4K, AVR2K}, ++ {"atmega64hve", AVR64K, AVR4K, AVR1K}, ++ {"atmega64m1", AVR64K, AVR4K, AVR2K}, ++ {"m3000", AVR64K, AVR4K, 0UL}, + -+ {"atmega406", AVR40K, AVR2K, AVR512}, ++ {"atmega406", AVR40K, AVR2K, AVR512}, ++ ++ {"atxmega32a4", AVR36K, AVR4K, AVR1K}, ++ {"atxmega32d4", AVR36K, AVR4K, AVR1K}, + + {"at90can32", AVR32K, AVR2K, AVR1K}, -+ {"at94k", AVR32K, AVR4K, 0}, ++ {"at94k", AVR32K, AVR4K, 0UL}, + {"atmega32", AVR32K, AVR2K, AVR1K}, + {"atmega323", AVR32K, AVR2K, AVR1K}, ++ {"atmega324a", AVR32K, AVR2K, AVR1K}, + {"atmega324p", AVR32K, AVR2K, AVR1K}, ++ {"atmega324pa", AVR32K, AVR2K, AVR1K}, + {"atmega325", AVR32K, AVR2K, AVR1K}, ++ {"atmega325a", AVR32K, AVR2K, AVR1K}, + {"atmega325p", AVR32K, AVR2K, AVR1K}, + {"atmega3250", AVR32K, AVR2K, AVR1K}, ++ {"atmega3250a", AVR32K, AVR2K, AVR1K}, + {"atmega3250p", AVR32K, AVR2K, AVR1K}, ++ {"atmega328", AVR32K, AVR2K, AVR1K}, + {"atmega328p", AVR32K, AVR2K, AVR1K}, + {"atmega329", AVR32K, AVR2K, AVR1K}, ++ {"atmega329a", AVR32K, AVR2K, AVR1K}, + {"atmega329p", AVR32K, AVR2K, AVR1K}, ++ {"atmega329pa", AVR32K, AVR2K, AVR1K}, + {"atmega3290", AVR32K, AVR2K, AVR1K}, ++ {"atmega3290a", AVR32K, AVR2K, AVR1K}, + {"atmega3290p", AVR32K, AVR2K, AVR1K}, + {"atmega32hvb", AVR32K, AVR2K, AVR1K}, + {"atmega32c1", AVR32K, AVR2K, AVR1K}, ++ {"atmega32hvb", AVR32K, AVR2K, AVR1K}, + {"atmega32m1", AVR32K, AVR2K, AVR1K}, ++ {"atmega32u2", AVR32K, AVR1K, AVR1K}, + {"atmega32u4", AVR32K, 2560UL, AVR1K}, + {"atmega32u6", AVR32K, 2560UL, AVR1K}, + -+ {"at43usb355", AVR24K, 1120, 0}, ++ {"at43usb355", AVR24K, 1120UL, 0UL}, ++ ++ {"atxmega16a4", AVR20K, AVR2K, AVR1K}, ++ {"atxmega16d4", AVR20K, AVR2K, AVR1K}, + -+ {"at76c711", AVR16K, AVR2K, 0}, ++ {"at76c711", AVR16K, AVR2K, 0UL}, + {"at90pwm216", AVR16K, AVR1K, AVR512}, + {"at90pwm316", AVR16K, AVR1K, AVR512}, + {"at90usb162", AVR16K, AVR512, AVR512}, + {"atmega16", AVR16K, AVR1K, AVR512}, ++ {"atmega16a", AVR16K, AVR1K, AVR512}, + {"atmega161", AVR16K, AVR1K, AVR512}, + {"atmega162", AVR16K, AVR1K, AVR512}, + {"atmega163", AVR16K, AVR1K, AVR512}, + {"atmega164", AVR16K, AVR1K, AVR512}, ++ {"atmega164a", AVR16K, AVR1K, AVR512}, + {"atmega164p", AVR16K, AVR1K, AVR512}, ++ {"atmega165a", AVR16K, AVR1K, AVR512}, + {"atmega165", AVR16K, AVR1K, AVR512}, + {"atmega165p", AVR16K, AVR1K, AVR512}, + {"atmega168", AVR16K, AVR1K, AVR512}, ++ {"atmega168a", AVR16K, AVR1K, AVR512}, + {"atmega168p", AVR16K, AVR1K, AVR512}, + {"atmega169", AVR16K, AVR1K, AVR512}, ++ {"atmega169a", AVR16K, AVR1K, AVR512}, + {"atmega169p", AVR16K, AVR1K, AVR512}, ++ {"atmega169pa", AVR16K, AVR1K, AVR512}, ++ {"atmega16hva", AVR16K, 768UL, AVR256}, ++ {"atmega16hva2", AVR16K, AVR1K, AVR256}, ++ {"atmega16hvb", AVR16K, AVR1K, AVR512}, ++ {"atmega16m1", AVR16K, AVR1K, AVR512}, ++ {"atmega16u2", AVR16K, AVR512, AVR512}, + {"atmega16u4", AVR16K, 1280UL, AVR512}, + {"attiny167", AVR16K, AVR512, AVR512}, + -+ {"at90c8534", AVR8K, 352, AVR512}, ++ {"at90c8534", AVR8K, 352UL, AVR512}, + {"at90pwm1", AVR8K, AVR512, AVR512}, + {"at90pwm2", AVR8K, AVR512, AVR512}, + {"at90pwm2b", AVR8K, AVR512, AVR512}, + {"at90pwm3", AVR8K, AVR512, AVR512}, + {"at90pwm3b", AVR8K, AVR512, AVR512}, ++ {"at90pwm81", AVR8K, AVR256, AVR512}, + {"at90s8515", AVR8K, AVR512, AVR512}, + {"at90s8535", AVR8K, AVR512, AVR512}, + {"at90usb82", AVR8K, AVR512, AVR512}, ++ {"ata6289", AVR8K, AVR512, 320UL}, + {"atmega8", AVR8K, AVR1K, AVR512}, + {"atmega8515", AVR8K, AVR512, AVR512}, + {"atmega8535", AVR8K, AVR512, AVR512}, + {"atmega88", AVR8K, AVR1K, AVR512}, ++ {"atmega88a", AVR8K, AVR1K, AVR512}, + {"atmega88p", AVR8K, AVR1K, AVR512}, ++ {"atmega88pa", AVR8K, AVR1K, AVR512}, ++ {"atmega8hva", AVR8K, 768UL, AVR256}, ++ {"atmega8u2", AVR8K, AVR512, AVR512}, + {"attiny84", AVR8K, AVR512, AVR512}, ++ {"attiny84a", AVR8K, AVR512, AVR512}, + {"attiny85", AVR8K, AVR512, AVR512}, + {"attiny861", AVR8K, AVR512, AVR512}, -+ {"attiny88", AVR8K, AVR256, AVR64}, ++ {"attiny861a", AVR8K, AVR512, AVR512}, ++ {"attiny87", AVR8K, AVR512, AVR512}, ++ {"attiny88", AVR8K, AVR512, AVR64}, + -+ {"at90s4414", AVR4K, 352, AVR256}, ++ {"at90s4414", AVR4K, 352UL, AVR256}, + {"at90s4433", AVR4K, AVR128, AVR256}, -+ {"at90s4434", AVR4K, 352, AVR256}, ++ {"at90s4434", AVR4K, 352UL, AVR256}, + {"atmega48", AVR4K, AVR512, AVR256}, ++ {"atmega48a", AVR4K, AVR512, AVR256}, + {"atmega48p", AVR4K, AVR512, AVR256}, ++ {"attiny4313", AVR4K, AVR256, AVR256}, + {"attiny43u", AVR4K, AVR256, AVR64}, + {"attiny44", AVR4K, AVR256, AVR256}, ++ {"attiny44a", AVR4K, AVR256, AVR256}, + {"attiny45", AVR4K, AVR256, AVR256}, + {"attiny461", AVR4K, AVR256, AVR256}, ++ {"attiny461a", AVR4K, AVR256, AVR256}, + {"attiny48", AVR4K, AVR256, AVR64}, + -+ {"at86rf401", AVR2K, 224, AVR128}, ++ {"at86rf401", AVR2K, 224UL, AVR128}, + {"at90s2313", AVR2K, AVR128, AVR128}, + {"at90s2323", AVR2K, AVR128, AVR128}, -+ {"at90s2333", AVR2K, 224, AVR128}, ++ {"at90s2333", AVR2K, 224UL, AVR128}, + {"at90s2343", AVR2K, AVR128, AVR128}, -+ {"attiny22", AVR2K, 224, AVR128}, ++ {"attiny20", AVR2K, AVR128, 0UL}, ++ {"attiny22", AVR2K, 224UL, AVR128}, + {"attiny2313", AVR2K, AVR128, AVR128}, ++ {"attiny2313a", AVR2K, AVR128, AVR128}, + {"attiny24", AVR2K, AVR128, AVR128}, ++ {"attiny24a", AVR2K, AVR128, AVR128}, + {"attiny25", AVR2K, AVR128, AVR128}, + {"attiny26", AVR2K, AVR128, AVR128}, + {"attiny261", AVR2K, AVR128, AVR128}, -+ {"attiny28", AVR2K, 0, 0}, ++ {"attiny261a", AVR2K, AVR128, AVR128}, ++ {"attiny28", AVR2K, 0UL, 0UL}, ++ {"attiny40", AVR2K, AVR256, 0UL}, + -+ {"at90s1200", AVR1K, 0, AVR64}, -+ {"attiny11", AVR1K, 0, AVR64}, -+ {"attiny12", AVR1K, 0, AVR64}, ++ {"at90s1200", AVR1K, 0UL, AVR64}, ++ {"attiny9", AVR1K, 32UL, 0UL}, ++ {"attiny10", AVR1K, 32UL, 0UL}, ++ {"attiny11", AVR1K, 0UL, AVR64}, ++ {"attiny12", AVR1K, 0UL, AVR64}, + {"attiny13", AVR1K, AVR64, AVR64}, -+ {"attiny15", AVR1K, 0, AVR64}, ++ {"attiny13a", AVR1K, AVR64, AVR64}, ++ {"attiny15", AVR1K, 0UL, AVR64}, ++ ++ {"attiny4", AVR512, 32UL, 0UL}, ++ {"attiny5", AVR512, 32UL, 0UL}, +}; + +static char *avrmcu = NULL; @@ -211,7 +294,7 @@ AVR specific only static char *target = NULL; /* Forward declarations. */ -@@ -78,7 +247,8 @@ usage (FILE *stream, int status) +@@ -79,7 +337,8 @@ usage (FILE *stream, int status) fprintf (stream, _(" Displays the sizes of sections inside binary files\n")); fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n")); fprintf (stream, _(" The options are:\n\ @@ -221,7 +304,7 @@ AVR specific only -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\ -t --totals Display the total sizes (Berkeley only)\n\ --common Display total size for *COM* syms\n\ -@@ -87,11 +257,7 @@ usage (FILE *stream, int status) +@@ -88,11 +337,7 @@ usage (FILE *stream, int status) -h --help Display this information\n\ -v --version Display the program's version\n\ \n"), @@ -234,7 +317,7 @@ AVR specific only ); list_supported_targets (program_name, stream); if (REPORT_BUGS_TO[0] && status == 0) -@@ -102,6 +268,7 @@ usage (FILE *stream, int status) +@@ -103,6 +359,7 @@ usage (FILE *stream, int status) #define OPTION_FORMAT (200) #define OPTION_RADIX (OPTION_FORMAT + 1) #define OPTION_TARGET (OPTION_RADIX + 1) @@ -242,7 +325,7 @@ AVR specific only static struct option long_options[] = { -@@ -109,6 +276,7 @@ static struct option long_options[] = +@@ -110,6 +368,7 @@ static struct option long_options[] = {"format", required_argument, 0, OPTION_FORMAT}, {"radix", required_argument, 0, OPTION_RADIX}, {"target", required_argument, 0, OPTION_TARGET}, @@ -250,7 +333,7 @@ AVR specific only {"totals", no_argument, &show_totals, 1}, {"version", no_argument, &show_version, 1}, {"help", no_argument, &show_help, 1}, -@@ -140,7 +308,7 @@ main (int argc, char **argv) +@@ -141,7 +399,7 @@ main (int argc, char **argv) bfd_init (); set_default_bfd_target (); @@ -259,7 +342,7 @@ AVR specific only (int *) 0)) != EOF) switch (c) { -@@ -149,11 +317,15 @@ main (int argc, char **argv) +@@ -150,11 +409,15 @@ main (int argc, char **argv) { case 'B': case 'b': @@ -277,7 +360,7 @@ AVR specific only break; default: non_fatal (_("invalid argument to --format: %s"), optarg); -@@ -161,6 +333,10 @@ main (int argc, char **argv) +@@ -162,6 +424,10 @@ main (int argc, char **argv) } break; @@ -288,7 +371,7 @@ AVR specific only case OPTION_TARGET: target = optarg; break; -@@ -189,11 +365,14 @@ main (int argc, char **argv) +@@ -190,11 +457,14 @@ main (int argc, char **argv) break; case 'A': @@ -305,7 +388,7 @@ AVR specific only case 'v': case 'V': show_version = 1; -@@ -239,7 +418,7 @@ main (int argc, char **argv) +@@ -240,7 +509,7 @@ main (int argc, char **argv) for (; optind < argc;) display_file (argv[optind++]); @@ -314,7 +397,7 @@ AVR specific only { bfd_size_type total = total_textsize + total_datasize + total_bsssize; -@@ -600,13 +779,117 @@ print_sysv_format (bfd *file) +@@ -599,13 +869,117 @@ print_sysv_format (bfd *file) printf ("\n\n"); } @@ -347,9 +430,9 @@ AVR specific only + int rammax = 0; + int eeprommax = 0; + asection *section; -+ bfd_size_type avr_datasize = 0; -+ bfd_size_type avr_textsize = 0; -+ bfd_size_type avr_bsssize = 0; ++ bfd_size_type datasize = 0; ++ bfd_size_type textsize = 0; ++ bfd_size_type bsssize = 0; + bfd_size_type bootloadersize = 0; + bfd_size_type noinitsize = 0; + bfd_size_type eepromsize = 0; @@ -364,11 +447,11 @@ AVR specific only + } + + if ((section = bfd_get_section_by_name (file, ".data")) != NULL) -+ avr_datasize = bfd_section_size (file, section); ++ datasize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".text")) != NULL) -+ avr_textsize = bfd_section_size (file, section); ++ textsize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".bss")) != NULL) -+ avr_bsssize = bfd_section_size (file, section); ++ bsssize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL) + bootloadersize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL) @@ -376,8 +459,8 @@ AVR specific only + if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL) + eepromsize = bfd_section_size (file, section); + -+ bfd_size_type text = avr_textsize + avr_datasize + bootloadersize; -+ bfd_size_type data = avr_datasize + avr_bsssize + noinitsize; ++ bfd_size_type text = textsize + datasize + bootloadersize; ++ bfd_size_type data = datasize + bsssize + noinitsize; + bfd_size_type eeprom = eepromsize; + + printf ("AVR Memory Usage\n" diff --git a/crossavr-binutils-avr-coff.patch b/301-binutils-2.20.1-avr-coff.patch similarity index 95% rename from crossavr-binutils-avr-coff.patch rename to 301-binutils-2.20.1-avr-coff.patch index ad6596a..c21327f 100644 --- a/crossavr-binutils-avr-coff.patch +++ b/301-binutils-2.20.1-avr-coff.patch @@ -1,7 +1,7 @@ -diff -uNdr binutils-2.21-orig.0/bfd/Makefile.am binutils-2.21/bfd/Makefile.am ---- binutils-2.21-orig.0/bfd/Makefile.am 2010-12-08 09:37:33.000000000 +0100 -+++ binutils-2.21/bfd/Makefile.am 2011-06-17 18:17:52.000000000 +0200 -@@ -232,6 +232,8 @@ +diff -ruwN bfd/Makefile.am bfd/Makefile.am +--- bfd/Makefile.am 2009-10-16 17:17:44.000000000 +0530 ++++ bfd/Makefile.am 2010-03-11 12:13:23.069283600 +0530 +@@ -228,6 +228,8 @@ coff-apollo.lo \ coff-arm.lo \ coff-aux.lo \ @@ -10,7 +10,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/Makefile.am binutils-2.21/bfd/Makefile.am coff-go32.lo \ coff-h8300.lo \ coff-h8500.lo \ -@@ -413,6 +415,8 @@ +@@ -411,6 +413,8 @@ coff-apollo.c \ coff-arm.c \ coff-aux.c \ @@ -19,10 +19,10 @@ diff -uNdr binutils-2.21-orig.0/bfd/Makefile.am binutils-2.21/bfd/Makefile.am coff-go32.c \ coff-h8300.c \ coff-h8500.c \ -diff -uNdr binutils-2.21-orig.0/bfd/Makefile.in binutils-2.21/bfd/Makefile.in ---- binutils-2.21-orig.0/bfd/Makefile.in 2010-12-08 09:37:36.000000000 +0100 -+++ binutils-2.21/bfd/Makefile.in 2011-06-17 18:17:52.000000000 +0200 -@@ -532,6 +532,8 @@ +diff -ruwN bfd/Makefile.in bfd/Makefile.in +--- bfd/Makefile.in 2009-10-16 17:17:48.000000000 +0530 ++++ bfd/Makefile.in 2010-03-11 12:13:23.084906900 +0530 +@@ -524,6 +524,8 @@ coff-apollo.lo \ coff-arm.lo \ coff-aux.lo \ @@ -31,7 +31,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/Makefile.in binutils-2.21/bfd/Makefile.in coff-go32.lo \ coff-h8300.lo \ coff-h8500.lo \ -@@ -713,6 +715,8 @@ +@@ -707,6 +709,8 @@ coff-apollo.c \ coff-arm.c \ coff-aux.c \ @@ -40,9 +40,9 @@ diff -uNdr binutils-2.21-orig.0/bfd/Makefile.in binutils-2.21/bfd/Makefile.in coff-go32.c \ coff-h8300.c \ coff-h8500.c \ -diff -uNdr binutils-2.21-orig.0/bfd/coff-avr.c binutils-2.21/bfd/coff-avr.c ---- binutils-2.21-orig.0/bfd/coff-avr.c 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/bfd/coff-avr.c 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/coff-avr.c bfd/coff-avr.c +--- bfd/coff-avr.c 1970-01-01 05:30:00.000000000 +0530 ++++ bfd/coff-avr.c 2010-03-11 12:13:23.100530200 +0530 @@ -0,0 +1,613 @@ +/* BFD back-end for Atmel AVR COFF files. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003 @@ -657,9 +657,9 @@ diff -uNdr binutils-2.21-orig.0/bfd/coff-avr.c binutils-2.21/bfd/coff-avr.c + + COFF_SWAP_TABLE +}; -diff -uNdr binutils-2.21-orig.0/bfd/coff-ext-avr.c binutils-2.21/bfd/coff-ext-avr.c ---- binutils-2.21-orig.0/bfd/coff-ext-avr.c 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/bfd/coff-ext-avr.c 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/coff-ext-avr.c bfd/coff-ext-avr.c +--- bfd/coff-ext-avr.c 1970-01-01 05:30:00.000000000 +0530 ++++ bfd/coff-ext-avr.c 2010-03-11 12:13:23.131776800 +0530 @@ -0,0 +1,428 @@ +/* BFD back-end for Atmel AVR "extended" COFF files. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003 @@ -1089,15 +1089,15 @@ diff -uNdr binutils-2.21-orig.0/bfd/coff-ext-avr.c binutils-2.21/bfd/coff-ext-av + + COFF_SWAP_TABLE +}; -diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h ---- binutils-2.21-orig.0/bfd/coffcode.h 2010-11-04 17:03:22.000000000 +0100 -+++ binutils-2.21/bfd/coffcode.h 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/coffcode.h bfd/coffcode.h +--- bfd/coffcode.h 2009-09-10 17:17:12.000000000 +0530 ++++ bfd/coffcode.h 2010-03-11 12:13:23.147400100 +0530 @@ -1,3 +1,4 @@ + /* Support for the generic parts of most COFF variants, for BFD. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -@@ -1934,6 +1935,17 @@ + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +@@ -1910,6 +1911,17 @@ coff->relocbase = 0; coff->local_toc_sym_map = 0; @@ -1115,7 +1115,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h /* make_abs_section(abfd);*/ return TRUE; -@@ -1958,17 +1970,6 @@ +@@ -1934,17 +1946,6 @@ coff->sym_filepos = internal_f->f_symptr; @@ -1133,7 +1133,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h coff->timestamp = internal_f->f_timdat; obj_raw_syment_count (abfd) = -@@ -2100,6 +2101,11 @@ +@@ -2076,6 +2077,11 @@ } break; #endif @@ -1145,7 +1145,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h #ifdef MC68MAGIC case MC68MAGIC: case M68MAGIC: -@@ -2879,6 +2885,13 @@ +@@ -2871,6 +2877,13 @@ return TRUE; #endif @@ -1159,7 +1159,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h #ifdef PPCMAGIC case bfd_arch_powerpc: *magicp = PPCMAGIC; -@@ -3705,6 +3718,11 @@ +@@ -3698,6 +3711,11 @@ section.s_page = 0; #endif @@ -1171,7 +1171,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h #ifdef COFF_WITH_PE section.s_paddr = 0; #endif -@@ -4051,6 +4069,17 @@ +@@ -4042,6 +4060,17 @@ internal_a.magic = ZMAGIC; #endif @@ -1189,7 +1189,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h #if defined(PPC_PE) #define __A_MAGIC_SET__ internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC; -@@ -4113,8 +4142,16 @@ +@@ -4109,8 +4138,16 @@ #endif } @@ -1206,7 +1206,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h /* Now should write relocs, strings, syms. */ obj_sym_filepos (abfd) = sym_base; -@@ -4672,6 +4709,10 @@ +@@ -4668,6 +4705,10 @@ /* In PE, 0x69 (105) denotes a weak external symbol. */ case C_NT_WEAK: #endif @@ -1217,7 +1217,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h switch (coff_classify_symbol (abfd, &src->u.syment)) { case COFF_SYMBOL_GLOBAL: -@@ -4895,7 +4936,9 @@ +@@ -4891,7 +4932,9 @@ && src->u.syment.n_scnum == 0) break; /* Fall through. */ @@ -1227,9 +1227,9 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h case C_ULABEL: /* Undefined label. */ case C_USTATIC: /* Undefined static. */ #ifndef COFF_WITH_PE -diff -uNdr binutils-2.21-orig.0/bfd/coffgen.c binutils-2.21/bfd/coffgen.c ---- binutils-2.21-orig.0/bfd/coffgen.c 2010-04-27 16:42:50.000000000 +0200 -+++ binutils-2.21/bfd/coffgen.c 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/coffgen.c bfd/coffgen.c +--- bfd/coffgen.c 2009-09-10 17:17:12.000000000 +0530 ++++ bfd/coffgen.c 2010-03-11 12:13:23.163023400 +0530 @@ -699,6 +699,20 @@ if (last_file != NULL) last_file->n_value = native_index; @@ -1330,9 +1330,9 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffgen.c binutils-2.21/bfd/coffgen.c new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt); if (!new_symbol->native) return NULL; -diff -uNdr binutils-2.21-orig.0/bfd/coffswap.h binutils-2.21/bfd/coffswap.h ---- binutils-2.21-orig.0/bfd/coffswap.h 2009-09-05 09:56:22.000000000 +0200 -+++ binutils-2.21/bfd/coffswap.h 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/coffswap.h bfd/coffswap.h +--- bfd/coffswap.h 2009-09-07 13:45:15.000000000 +0530 ++++ bfd/coffswap.h 2010-03-11 12:13:23.178646700 +0530 @@ -383,7 +383,11 @@ void * ext1, int type, @@ -1360,10 +1360,10 @@ diff -uNdr binutils-2.21-orig.0/bfd/coffswap.h binutils-2.21/bfd/coffswap.h } else memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN); -diff -uNdr binutils-2.21-orig.0/bfd/config.bfd binutils-2.21/bfd/config.bfd ---- binutils-2.21-orig.0/bfd/config.bfd 2010-12-01 12:03:10.000000000 +0100 -+++ binutils-2.21/bfd/config.bfd 2011-06-17 18:17:52.000000000 +0200 -@@ -338,6 +338,7 @@ +diff -ruwN bfd/config.bfd bfd/config.bfd +--- bfd/config.bfd 2009-08-06 23:08:00.000000000 +0530 ++++ bfd/config.bfd 2010-03-11 12:13:23.178646700 +0530 +@@ -339,6 +339,7 @@ avr-*-*) targ_defvec=bfd_elf32_avr_vec @@ -1371,10 +1371,10 @@ diff -uNdr binutils-2.21-orig.0/bfd/config.bfd binutils-2.21/bfd/config.bfd ;; bfin-*-*) -diff -uNdr binutils-2.21-orig.0/bfd/configure binutils-2.21/bfd/configure ---- binutils-2.21-orig.0/bfd/configure 2010-12-08 09:37:34.000000000 +0100 -+++ binutils-2.21/bfd/configure 2011-06-17 18:17:52.000000000 +0200 -@@ -15035,6 +15035,8 @@ +diff -ruwN bfd/configure bfd/configure +--- bfd/configure 2009-10-16 17:17:47.000000000 +0530 ++++ bfd/configure 2010-03-11 12:13:23.209893300 +0530 +@@ -14782,6 +14782,8 @@ armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;; armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;; armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;; @@ -1383,9 +1383,9 @@ diff -uNdr binutils-2.21-orig.0/bfd/configure binutils-2.21/bfd/configure b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;; b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;; bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;; -diff -uNdr binutils-2.21-orig.0/bfd/configure.in binutils-2.21/bfd/configure.in ---- binutils-2.21-orig.0/bfd/configure.in 2010-12-08 09:37:33.000000000 +0100 -+++ binutils-2.21/bfd/configure.in 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN bfd/configure.in bfd/configure.in +--- bfd/configure.in 2009-10-16 17:17:44.000000000 +0530 ++++ bfd/configure.in 2010-03-11 12:13:23.209893300 +0530 @@ -670,6 +670,8 @@ armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;; armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;; @@ -1395,10 +1395,10 @@ diff -uNdr binutils-2.21-orig.0/bfd/configure.in binutils-2.21/bfd/configure.in b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;; b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;; bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;; -diff -uNdr binutils-2.21-orig.0/bfd/targets.c binutils-2.21/bfd/targets.c ---- binutils-2.21-orig.0/bfd/targets.c 2010-10-22 14:08:28.000000000 +0200 -+++ binutils-2.21/bfd/targets.c 2011-06-17 18:17:52.000000000 +0200 -@@ -575,6 +575,8 @@ +diff -ruwN bfd/targets.c bfd/targets.c +--- bfd/targets.c 2009-09-10 17:17:13.000000000 +0530 ++++ bfd/targets.c 2010-03-11 12:13:23.225516600 +0530 +@@ -564,6 +564,8 @@ extern const bfd_target armpe_little_vec; extern const bfd_target armpei_big_vec; extern const bfd_target armpei_little_vec; @@ -1407,7 +1407,7 @@ diff -uNdr binutils-2.21-orig.0/bfd/targets.c binutils-2.21/bfd/targets.c extern const bfd_target b_out_vec_big_host; extern const bfd_target b_out_vec_little_host; extern const bfd_target bfd_pei_ia64_vec; -@@ -911,6 +913,8 @@ +@@ -890,6 +892,8 @@ &armpe_little_vec, &armpei_big_vec, &armpei_little_vec, @@ -1416,19 +1416,19 @@ diff -uNdr binutils-2.21-orig.0/bfd/targets.c binutils-2.21/bfd/targets.c &b_out_vec_big_host, &b_out_vec_little_host, #ifdef BFD64 -diff -uNdr binutils-2.21-orig.0/binutils/Makefile.am binutils-2.21/binutils/Makefile.am ---- binutils-2.21-orig.0/binutils/Makefile.am 2010-11-05 14:23:02.000000000 +0100 -+++ binutils-2.21/binutils/Makefile.am 2011-06-17 18:20:09.000000000 +0200 -@@ -103,7 +103,7 @@ +diff -ruwN binutils/Makefile.am binutils/Makefile.am +--- binutils/Makefile.am 2009-09-09 13:43:23.000000000 +0530 ++++ binutils/Makefile.am 2010-03-11 12:13:23.241139900 +0530 +@@ -101,7 +101,7 @@ resbin.c rescoff.c resrc.c resres.c \ size.c srconv.c stabs.c strings.c sysdump.c \ - unwind-ia64.c elfedit.c version.c \ + unwind-ia64.c version.c \ - windres.c winduni.c wrstabs.c \ + windres.c winduni.c wrcoff.c wrstabs.c \ windmc.c mclex.c GENERATED_CFILES = \ -@@ -111,7 +111,7 @@ +@@ -109,7 +109,7 @@ defparse.c deflex.c nlmheader.c rcparse.c mcparse.c DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c @@ -1437,10 +1437,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/Makefile.am binutils-2.21/binutils/Make # Code shared by all the binutils. BULIBS = bucomm.c version.c filemode.c -diff -uNdr binutils-2.21-orig.0/binutils/Makefile.in binutils-2.21/binutils/Makefile.in ---- binutils-2.21-orig.0/binutils/Makefile.in 2010-11-05 14:23:02.000000000 +0100 -+++ binutils-2.21/binutils/Makefile.in 2011-06-17 18:20:34.000000000 +0200 -@@ -131,7 +131,7 @@ +diff -ruwN binutils/Makefile.in binutils/Makefile.in +--- binutils/Makefile.in 2009-09-09 13:43:23.000000000 +0530 ++++ binutils/Makefile.in 2010-03-11 12:13:23.241139900 +0530 +@@ -126,7 +126,7 @@ nm_new_OBJECTS = $(am_nm_new_OBJECTS) nm_new_LDADD = $(LDADD) am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \ @@ -1449,16 +1449,16 @@ diff -uNdr binutils-2.21-orig.0/binutils/Makefile.in binutils-2.21/binutils/Make am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT) am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \ rename.$(OBJEXT) $(am__objects_3) $(am__objects_1) -@@ -444,7 +444,7 @@ +@@ -439,7 +439,7 @@ resbin.c rescoff.c resrc.c resres.c \ size.c srconv.c stabs.c strings.c sysdump.c \ - unwind-ia64.c elfedit.c version.c \ + unwind-ia64.c version.c \ - windres.c winduni.c wrstabs.c \ + windres.c winduni.c wrcoff.c wrstabs.c \ windmc.c mclex.c GENERATED_CFILES = \ -@@ -452,7 +452,7 @@ +@@ -447,7 +447,7 @@ defparse.c deflex.c nlmheader.c rcparse.c mcparse.c DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c @@ -1467,10 +1467,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/Makefile.in binutils-2.21/binutils/Make # Code shared by all the binutils. BULIBS = bucomm.c version.c filemode.c -diff -uNdr binutils-2.21-orig.0/binutils/bucomm.c binutils-2.21/binutils/bucomm.c ---- binutils-2.21-orig.0/binutils/bucomm.c 2010-10-06 00:48:34.000000000 +0200 -+++ binutils-2.21/binutils/bucomm.c 2011-06-17 18:17:52.000000000 +0200 -@@ -558,6 +558,32 @@ +diff -ruwN binutils/bucomm.c binutils/bucomm.c +--- binutils/bucomm.c 2009-09-14 17:13:26.000000000 +0530 ++++ binutils/bucomm.c 2010-03-11 12:13:23.256763200 +0530 +@@ -550,6 +550,32 @@ return ret; } @@ -1502,10 +1502,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/bucomm.c binutils-2.21/binutils/bucomm. + /* Returns the size of the named file. If the file does not exist, or if it is not a real file, then a suitable non-fatal - error message is printed and (off_t) -1 is returned. */ -diff -uNdr binutils-2.21-orig.0/binutils/bucomm.h binutils-2.21/binutils/bucomm.h ---- binutils-2.21-orig.0/binutils/bucomm.h 2009-09-02 09:22:31.000000000 +0200 -+++ binutils-2.21/binutils/bucomm.h 2011-06-17 18:17:52.000000000 +0200 + error message is printed and zero is returned. */ +diff -ruwN binutils/bucomm.h binutils/bucomm.h +--- binutils/bucomm.h 2009-09-02 12:52:31.000000000 +0530 ++++ binutils/bucomm.h 2010-03-11 12:13:23.272386500 +0530 @@ -58,6 +58,8 @@ off_t get_file_size (const char *); @@ -1515,9 +1515,9 @@ diff -uNdr binutils-2.21-orig.0/binutils/bucomm.h binutils-2.21/binutils/bucomm. extern char *program_name; /* filemode.c */ -diff -uNdr binutils-2.21-orig.0/binutils/budbg.h binutils-2.21/binutils/budbg.h ---- binutils-2.21-orig.0/binutils/budbg.h 2009-09-02 09:22:31.000000000 +0200 -+++ binutils-2.21/binutils/budbg.h 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN binutils/budbg.h binutils/budbg.h +--- binutils/budbg.h 2009-09-02 12:52:31.000000000 +0530 ++++ binutils/budbg.h 2010-03-11 12:13:23.272386500 +0530 @@ -52,8 +52,11 @@ extern bfd_boolean write_ieee_debugging_info (bfd *, void *); @@ -1531,9 +1531,9 @@ diff -uNdr binutils-2.21-orig.0/binutils/budbg.h binutils-2.21/binutils/budbg.h + (bfd *abfd, void *, long *symcountp, asymbol ***); + #endif -diff -uNdr binutils-2.21-orig.0/binutils/debug.c binutils-2.21/binutils/debug.c ---- binutils-2.21-orig.0/binutils/debug.c 2009-09-10 15:40:44.000000000 +0200 -+++ binutils-2.21/binutils/debug.c 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN binutils/debug.c binutils/debug.c +--- binutils/debug.c 2009-09-14 17:13:26.000000000 +0530 ++++ binutils/debug.c 2010-03-11 12:13:23.288009800 +0530 @@ -31,6 +31,7 @@ #include #include "bfd.h" @@ -1662,10 +1662,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/debug.c binutils-2.21/binutils/debug.c + /* Not found, pass the original name on. */ + return oname; +} -diff -uNdr binutils-2.21-orig.0/binutils/debug.h binutils-2.21/binutils/debug.h ---- binutils-2.21-orig.0/binutils/debug.h 2009-09-10 15:40:44.000000000 +0200 -+++ binutils-2.21/binutils/debug.h 2011-06-17 18:17:52.000000000 +0200 -@@ -441,6 +441,12 @@ +diff -ruwN binutils/debug.h binutils/debug.h +--- binutils/debug.h 2009-09-14 17:13:26.000000000 +0530 ++++ binutils/debug.h 2010-03-11 12:13:23.288009800 +0530 +@@ -440,6 +440,12 @@ extern bfd_boolean debug_start_source (void *, const char *); @@ -1678,10 +1678,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/debug.h binutils-2.21/binutils/debug.h /* Record a function definition. This implicitly starts a function block. The debug_type argument is the type of the return value. The bfd_boolean indicates whether the function is globally visible. -diff -uNdr binutils-2.21-orig.0/binutils/doc/objcopy.1 binutils-2.21/binutils/doc/objcopy.1 ---- binutils-2.21-orig.0/binutils/doc/objcopy.1 2010-12-08 09:39:12.000000000 +0100 -+++ binutils-2.21/binutils/doc/objcopy.1 2011-06-17 18:24:32.000000000 +0200 -@@ -203,6 +203,8 @@ +diff -ruwN binutils/doc/objcopy.1 binutils/doc/objcopy.1 +--- binutils/doc/objcopy.1 2009-10-16 17:22:19.000000000 +0530 ++++ binutils/doc/objcopy.1 2010-03-11 12:13:23.303633100 +0530 +@@ -202,6 +202,8 @@ [\fB\-\-readonly\-text\fR] [\fB\-\-pure\fR] [\fB\-\-impure\fR] @@ -1690,7 +1690,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/doc/objcopy.1 binutils-2.21/binutils/do [\fB\-\-file\-alignment=\fR\fInum\fR] [\fB\-\-heap=\fR\fIsize\fR] [\fB\-\-image\-base=\fR\fIaddress\fR] -@@ -911,6 +913,23 @@ +@@ -885,6 +887,23 @@ It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR linker input file. .RE @@ -1711,12 +1711,12 @@ diff -uNdr binutils-2.21-orig.0/binutils/doc/objcopy.1 binutils-2.21/binutils/do +takes precedence over any \fB\-\-change\-pathname\fR option. For some +debugging formats that cannot handle long filenames, this options is +implied (notably, some COFF debugging formats). - .IP "\fB\-\-compress\-debug\-sections\fR" 4 - .IX Item "--compress-debug-sections" - Compress \s-1DWARF\s0 debug sections using zlib. -diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcopy.c ---- binutils-2.21-orig.0/binutils/objcopy.c 2010-10-29 14:10:25.000000000 +0200 -+++ binutils-2.21/binutils/objcopy.c 2011-06-17 18:17:52.000000000 +0200 + .IP "\fB\-V\fR" 4 + .IX Item "-V" + .PD 0 +diff -ruwN binutils/objcopy.c binutils/objcopy.c +--- binutils/objcopy.c 2009-09-14 17:13:26.000000000 +0530 ++++ binutils/objcopy.c 2010-03-11 12:13:23.319256400 +0530 @@ -32,6 +32,7 @@ #include "elf-bfd.h" #include @@ -1725,7 +1725,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop #include "coff/internal.h" #include "libcoff.h" -@@ -308,6 +309,8 @@ +@@ -297,6 +298,8 @@ OPTION_IMPURE, OPTION_EXTRACT_SYMBOL, OPTION_REVERSE_BYTES, @@ -1734,7 +1734,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop OPTION_FILE_ALIGNMENT, OPTION_HEAP, OPTION_IMAGE_BASE, -@@ -358,10 +361,12 @@ +@@ -346,10 +349,12 @@ {"adjust-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS}, {"adjust-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS}, {"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE}, @@ -1747,7 +1747,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop {"change-section-address", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS}, {"change-section-lma", required_argument, 0, OPTION_CHANGE_SECTION_LMA}, {"change-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_VMA}, -@@ -554,6 +559,8 @@ +@@ -543,6 +548,8 @@ --prefix-alloc-sections \n\ Add to start of every allocatable\n\ section name\n\ @@ -1756,7 +1756,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop --file-alignment Set PE file alignment to \n\ --heap [,] Set PE reserve/commit heap to /\n\ \n\ -@@ -1006,6 +1013,8 @@ +@@ -999,6 +1006,8 @@ asymbol **from = isyms, **to = osyms; long src_count = 0, dst_count = 0; int relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0; @@ -1765,7 +1765,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop for (; src_count < symcount; src_count++) { -@@ -1106,7 +1115,8 @@ +@@ -1099,7 +1108,8 @@ || bfd_is_com_section (bfd_get_section (sym))) keep = strip_symbols != STRIP_UNNEEDED; else if ((flags & BSF_DEBUGGING) != 0) /* Debugging symbol. */ @@ -1775,7 +1775,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop && strip_symbols != STRIP_UNNEEDED && ! convert_debugging); else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym))) -@@ -2857,6 +2867,10 @@ +@@ -2817,6 +2827,10 @@ return write_ieee_debugging_info (obfd, dhandle); if (bfd_get_flavour (obfd) == bfd_target_coff_flavour @@ -1786,7 +1786,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop || bfd_get_flavour (obfd) == bfd_target_elf_flavour) { bfd_byte *syms, *strings; -@@ -3707,6 +3721,30 @@ +@@ -3641,6 +3655,30 @@ prefix_alloc_sections_string = optarg; break; @@ -1817,9 +1817,9 @@ diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcop case OPTION_READONLY_TEXT: bfd_flags_to_set |= WP_TEXT; bfd_flags_to_clear &= ~WP_TEXT; -diff -uNdr binutils-2.21-orig.0/binutils/rdcoff.c binutils-2.21/binutils/rdcoff.c ---- binutils-2.21-orig.0/binutils/rdcoff.c 2009-09-02 09:22:32.000000000 +0200 -+++ binutils-2.21/binutils/rdcoff.c 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN binutils/rdcoff.c binutils/rdcoff.c +--- binutils/rdcoff.c 2009-09-02 12:52:32.000000000 +0530 ++++ binutils/rdcoff.c 2010-03-11 12:13:23.334879700 +0530 @@ -82,6 +82,9 @@ struct coff_slots *slots; /* Basic types. */ @@ -1963,10 +1963,10 @@ diff -uNdr binutils-2.21-orig.0/binutils/rdcoff.c binutils-2.21/binutils/rdcoff. if (ISFCN (syment.n_type)) { fnname = name; -diff -uNdr binutils-2.21-orig.0/binutils/wrcoff.c binutils-2.21/binutils/wrcoff.c ---- binutils-2.21-orig.0/binutils/wrcoff.c 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/binutils/wrcoff.c 2011-06-17 18:17:52.000000000 +0200 -@@ -0,0 +1,3412 @@ +diff -ruwN binutils/wrcoff.c binutils/wrcoff.c +--- binutils/wrcoff.c 1970-01-01 05:30:00.000000000 +0530 ++++ binutils/wrcoff.c 2010-03-11 12:13:23.366126300 +0530 +@@ -0,0 +1,3410 @@ +/* wrcoff.c -- Generate (AVR) COFF debugging information + Copyright 2003 Free Software Foundation, Inc. + @@ -3010,7 +3010,7 @@ diff -uNdr binutils-2.21-orig.0/binutils/wrcoff.c binutils-2.21/binutils/wrcoff. + struct coff_struct_hash_entry *shash; + struct coff_enum_hash_entry *ehash; + struct coff_private_symdata *priv; -+ unsigned int type, numaux, arydim, size, nele, nderived; ++ unsigned int type, numaux, arydim, size, i, nele, nderived; + const char *name; + bfd_boolean oldavrcoff = (info->flags & (COFF_FL_AVR | COFF_FL_EXT_AVR)) + == COFF_FL_AVR; @@ -3269,8 +3269,6 @@ diff -uNdr binutils-2.21-orig.0/binutils/wrcoff.c binutils-2.21/binutils/wrcoff. + + if (ISARY (type)) + { -+ unsigned i; -+ + /* Compute size of entire array. */ + for (i = 0, nele = 1; i < arydim; i++) + nele *= aux->x_sym.x_fcnary.x_ary.x_dimen[i]; @@ -5379,9 +5377,9 @@ diff -uNdr binutils-2.21-orig.0/binutils/wrcoff.c binutils-2.21/binutils/wrcoff. + + return TRUE; +} -diff -uNdr binutils-2.21-orig.0/include/coff/avr.h binutils-2.21/include/coff/avr.h ---- binutils-2.21-orig.0/include/coff/avr.h 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/include/coff/avr.h 2011-06-17 18:17:52.000000000 +0200 +diff -ruwN include/coff/avr.h include/coff/avr.h +--- include/coff/avr.h 1970-01-01 05:30:00.000000000 +0530 ++++ include/coff/avr.h 2010-03-11 12:13:23.381749600 +0530 @@ -0,0 +1,110 @@ +/* coff information for Atmel AVR. + @@ -5493,10 +5491,10 @@ diff -uNdr binutils-2.21-orig.0/include/coff/avr.h binutils-2.21/include/coff/av + +#define RELOC struct external_reloc +#define RELSZ 10 -diff -uNdr binutils-2.21-orig.0/include/coff/internal.h binutils-2.21/include/coff/internal.h ---- binutils-2.21-orig.0/include/coff/internal.h 2010-04-15 12:26:07.000000000 +0200 -+++ binutils-2.21/include/coff/internal.h 2011-06-17 18:17:52.000000000 +0200 -@@ -647,6 +647,8 @@ +diff -ruwN include/coff/internal.h include/coff/internal.h +--- include/coff/internal.h 2009-09-02 12:51:39.000000000 +0530 ++++ include/coff/internal.h 2010-03-11 12:13:23.381749600 +0530 +@@ -646,6 +646,8 @@ }; diff --git a/crossavr-binutils-new-sections.patch b/302-binutils-2.20.1-new-sections.patch similarity index 88% rename from crossavr-binutils-new-sections.patch rename to 302-binutils-2.20.1-new-sections.patch index f14f04d..c1dac97 100644 --- a/crossavr-binutils-new-sections.patch +++ b/302-binutils-2.20.1-new-sections.patch @@ -1,6 +1,6 @@ -diff -ruw ld/scripttempl/avr.sc ld/scripttempl/avr.sc +diff -ruwN ld/scripttempl/avr.sc ld/scripttempl/avr.sc --- ld/scripttempl/avr.sc 2009-10-09 18:42:35.000000000 +0530 -+++ ld/scripttempl/avr.sc 2010-02-12 20:09:24.070812400 +0530 ++++ ld/scripttempl/avr.sc 2010-03-11 12:26:00.563046000 +0530 @@ -7,6 +7,9 @@ text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH diff --git a/303-binutils-2.20.1-as-dwarf.patch b/303-binutils-2.20.1-as-dwarf.patch new file mode 100644 index 0000000..6aade2d --- /dev/null +++ b/303-binutils-2.20.1-as-dwarf.patch @@ -0,0 +1,29 @@ +diff -ruwN gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2010-03-11 14:56:16.484109300 +0530 ++++ gas/config/tc-avr.c 2010-03-11 14:58:59.248690500 +0530 +@@ -24,6 +24,7 @@ + #include "as.h" + #include "safe-ctype.h" + #include "subsegs.h" ++#include "dwarf2dbg.h" + + struct avr_opcodes_s + { +@@ -1368,6 +1369,7 @@ + + dwarf2_emit_insn (0); + ++ dwarf2_emit_insn (0); + /* We used to set input_line_pointer to the result of get_operands, + but that is wrong. Our caller assumes we don't change it. */ + { +diff -ruwN gas/config/tc-avr.h gas/config/tc-avr.h +--- gas/config/tc-avr.h 2010-03-11 14:56:16.484109300 +0530 ++++ gas/config/tc-avr.h 2010-03-11 14:58:59.264313900 +0530 +@@ -147,3 +147,6 @@ + + /* This target is buggy, and sets fix size too large. */ + #define TC_FX_SIZE_SLACK(FIX) 2 ++ ++/* keep DWARF2_ADDR_SIZE in consistency with C compiler produced information */ ++#define DWARF2_ADDR_SIZE(bfd) 4 diff --git a/304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch b/304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch new file mode 100644 index 0000000..a75b26b --- /dev/null +++ b/304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch @@ -0,0 +1,28 @@ +diff -ruwN gas/dwarf2dbg.c gas/dwarf2dbg.c +--- gas/dwarf2dbg.c 2010-03-11 15:06:25.773290700 +0530 ++++ gas/dwarf2dbg.c 2010-03-11 15:08:20.410311300 +0530 +@@ -112,8 +112,11 @@ + Note: If you want to change this, you'll have to update the + "standard_opcode_lengths" table that is emitted below in + out_debug_line(). */ ++#ifndef TC_AVR + #define DWARF2_LINE_OPCODE_BASE 13 +- ++#else ++#define DWARF2_LINE_OPCODE_BASE 10 ++#endif + #ifndef DWARF2_LINE_BASE + /* Minimum line offset in a special line info. opcode. This value + was chosen to give a reasonable range of values. */ +@@ -1439,9 +1442,11 @@ + out_byte (0); /* DW_LNS_set_basic_block */ + out_byte (0); /* DW_LNS_const_add_pc */ + out_byte (1); /* DW_LNS_fixed_advance_pc */ ++#ifndef TC_AVR + out_byte (0); /* DW_LNS_set_prologue_end */ + out_byte (0); /* DW_LNS_set_epilogue_begin */ + out_byte (1); /* DW_LNS_set_isa */ ++#endif + + out_file_list (); + diff --git a/305-binutils-2.20.1-assembler-options.patch b/305-binutils-2.20.1-assembler-options.patch new file mode 100644 index 0000000..18ecaac --- /dev/null +++ b/305-binutils-2.20.1-assembler-options.patch @@ -0,0 +1,12 @@ +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-02-08 10:59:27.000000000 -0600 ++++ gas/config/tc-avr.c 2011-02-08 11:01:47.000000000 -0600 +@@ -378,7 +378,7 @@ void + md_show_usage (FILE *stream) + { + fprintf (stream, +- _("AVR options:\n" ++ _("AVR Assembler options:\n" + " -mmcu=[avr-name] select microcontroller variant\n" + " [avr-name] can be:\n" + " avr1 - classic AVR core without data RAM\n" diff --git a/crossavr-binutils-xmega.patch b/400-binutils-2.20.1-xmega.patch similarity index 74% rename from crossavr-binutils-xmega.patch rename to 400-binutils-2.20.1-xmega.patch index fc44d43..7f6e084 100644 --- a/crossavr-binutils-xmega.patch +++ b/400-binutils-2.20.1-xmega.patch @@ -1,7 +1,30 @@ -diff -uNdr binutils-2.21-orig.2/bfd/archures.c binutils-2.21/bfd/archures.c ---- binutils-2.21-orig.2/bfd/archures.c 2010-07-23 16:52:46.000000000 +0200 -+++ binutils-2.21/bfd/archures.c 2011-06-17 18:29:41.000000000 +0200 -@@ -373,6 +373,13 @@ +avrxmega1 +avrxmega2 +avrxmega3 +avrxmega4 +avrxmega5 +avrxmega6 +avrxmega7 +atxmega16a4 +atxmega16d4 +atxmega32d4 +atxmega32a4 +atxmega64a3 +atxmega64d3 +atxmega64a1 +atxmega128a3 +atxmega128d3 +atxmega192a3 +atxmega192d3 +atxmega256a3 +atxmega256a3b +atxmega256d3 +atxmega128a1 +======================================================= +diff -Naurp bfd/archures.c bfd/archures.c +--- bfd/archures.c 2009-09-10 06:47:11.000000000 -0500 ++++ bfd/archures.c 2011-06-07 11:44:52.000000000 -0500 +@@ -368,6 +368,13 @@ DESCRIPTION .#define bfd_mach_avr5 5 .#define bfd_mach_avr51 51 .#define bfd_mach_avr6 6 @@ -15,10 +38,10 @@ diff -uNdr binutils-2.21-orig.2/bfd/archures.c binutils-2.21/bfd/archures.c . bfd_arch_bfin, {* ADI Blackfin *} .#define bfd_mach_bfin 1 . bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *} -diff -uNdr binutils-2.21-orig.2/bfd/bfd-in2.h binutils-2.21/bfd/bfd-in2.h ---- binutils-2.21-orig.2/bfd/bfd-in2.h 2010-11-03 03:31:02.000000000 +0100 -+++ binutils-2.21/bfd/bfd-in2.h 2011-06-17 18:29:41.000000000 +0200 -@@ -2053,6 +2053,13 @@ +diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h +--- bfd/bfd-in2.h 2010-02-03 07:28:24.000000000 -0600 ++++ bfd/bfd-in2.h 2011-06-07 11:44:52.000000000 -0500 +@@ -2042,6 +2042,13 @@ enum bfd_architecture #define bfd_mach_avr5 5 #define bfd_mach_avr51 51 #define bfd_mach_avr6 6 @@ -32,10 +55,10 @@ diff -uNdr binutils-2.21-orig.2/bfd/bfd-in2.h binutils-2.21/bfd/bfd-in2.h bfd_arch_bfin, /* ADI Blackfin */ #define bfd_mach_bfin 1 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ -diff -uNdr binutils-2.21-orig.2/bfd/cpu-avr.c binutils-2.21/bfd/cpu-avr.c ---- binutils-2.21-orig.2/bfd/cpu-avr.c 2009-09-02 09:18:36.000000000 +0200 -+++ binutils-2.21/bfd/cpu-avr.c 2011-06-17 18:29:41.000000000 +0200 -@@ -133,7 +133,29 @@ +diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c +--- bfd/cpu-avr.c 2009-09-02 02:18:36.000000000 -0500 ++++ bfd/cpu-avr.c 2011-06-07 11:44:52.000000000 -0500 +@@ -133,7 +133,29 @@ static const bfd_arch_info_type arch_inf N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]), /* 3-Byte PC. */ @@ -66,10 +89,10 @@ diff -uNdr binutils-2.21-orig.2/bfd/cpu-avr.c binutils-2.21/bfd/cpu-avr.c }; const bfd_arch_info_type bfd_avr_arch = -diff -uNdr binutils-2.21-orig.2/bfd/elf32-avr.c binutils-2.21/bfd/elf32-avr.c ---- binutils-2.21-orig.2/bfd/elf32-avr.c 2010-10-25 17:54:13.000000000 +0200 -+++ binutils-2.21/bfd/elf32-avr.c 2011-06-17 18:29:41.000000000 +0200 -@@ -1340,6 +1340,34 @@ +diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c +--- bfd/elf32-avr.c 2009-09-02 02:18:36.000000000 -0500 ++++ bfd/elf32-avr.c 2011-06-07 11:44:52.000000000 -0500 +@@ -1328,6 +1328,34 @@ bfd_elf_avr_final_write_processing (bfd case bfd_mach_avr6: val = E_AVR_MACH_AVR6; break; @@ -104,7 +127,7 @@ diff -uNdr binutils-2.21-orig.2/bfd/elf32-avr.c binutils-2.21/bfd/elf32-avr.c } elf_elfheader (abfd)->e_machine = EM_AVR; -@@ -1402,6 +1430,34 @@ +@@ -1390,6 +1418,34 @@ elf32_avr_object_p (bfd *abfd) case E_AVR_MACH_AVR6: e_set = bfd_mach_avr6; break; @@ -139,22 +162,16 @@ diff -uNdr binutils-2.21-orig.2/bfd/elf32-avr.c binutils-2.21/bfd/elf32-avr.c } } return bfd_default_set_arch_mach (abfd, bfd_arch_avr, -diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc-avr.c ---- binutils-2.21-orig.2/gas/config/tc-avr.c 2010-06-28 16:06:57.000000000 +0200 -+++ binutils-2.21/gas/config/tc-avr.c 2011-06-17 18:29:41.000000000 +0200 -@@ -27,20 +27,21 @@ - - struct avr_opcodes_s +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-06-07 11:47:11.000000000 -0500 ++++ gas/config/tc-avr.c 2011-06-07 11:44:52.000000000 -0500 +@@ -30,18 +30,19 @@ struct avr_opcodes_s { -- char * name; -- char * constraints; -- int insn_size; /* In words. */ -- int isa; -+ char *name; -+ char *constraints; + char * name; + char * constraints; + char *opcode; -+ int insn_size; /* In words. */ -+ int isa; + int insn_size; /* In words. */ + int isa; unsigned int bin_opcode; }; @@ -170,7 +187,7 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- }; const char comment_chars[] = ";"; -@@ -79,6 +80,13 @@ +@@ -80,6 +81,13 @@ static struct mcu_type_s mcu_types[] = {"avr5", AVR_ISA_AVR51, bfd_mach_avr5}, {"avr51", AVR_ISA_AVR51, bfd_mach_avr51}, {"avr6", AVR_ISA_AVR6, bfd_mach_avr6}, @@ -184,14 +201,14 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- {"at90s1200", AVR_ISA_1200, bfd_mach_avr1}, {"attiny11", AVR_ISA_AVR1, bfd_mach_avr1}, {"attiny12", AVR_ISA_AVR1, bfd_mach_avr1}, -@@ -237,6 +245,21 @@ - {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51}, +@@ -216,6 +224,21 @@ static struct mcu_type_s mcu_types[] = + {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51}, {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6}, {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, -+ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega3}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, @@ -206,7 +223,7 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- {NULL, 0, 0} }; -@@ -413,6 +436,11 @@ +@@ -393,6 +416,11 @@ md_show_usage (FILE *stream) " avr5 - enhanced AVR core with up to 64K program memory\n" " avr51 - enhanced AVR core with up to 128K program memory\n" " avr6 - enhanced AVR core with up to 256K program memory\n" @@ -218,7 +235,7 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- " or immediate microcontroller name.\n")); fprintf (stream, _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" -@@ -840,7 +868,12 @@ +@@ -820,7 +848,12 @@ avr_operand (struct avr_opcodes_s *opcod if (*str == '+') { ++str; @@ -232,7 +249,7 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- } /* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */ -@@ -957,6 +990,16 @@ +@@ -937,6 +970,16 @@ avr_operand (struct avr_opcodes_s *opcod } break; @@ -249,10 +266,10 @@ diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc- case '?': break; -diff -uNdr binutils-2.21-orig.2/gas/doc/c-avr.texi binutils-2.21/gas/doc/c-avr.texi ---- binutils-2.21-orig.2/gas/doc/c-avr.texi 2010-04-09 05:48:54.000000000 +0200 -+++ binutils-2.21/gas/doc/c-avr.texi 2011-06-17 18:29:41.000000000 +0200 -@@ -85,6 +85,27 @@ +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2009-09-02 02:24:21.000000000 -0500 ++++ gas/doc/c-avr.texi 2011-06-07 11:44:52.000000000 -0500 +@@ -80,6 +80,27 @@ atmega128rfa1, at90can128, at90usb1286, Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types: atmega2560, atmega2561). @@ -280,9 +297,9 @@ diff -uNdr binutils-2.21-orig.2/gas/doc/c-avr.texi binutils-2.21/gas/doc/c-avr.t @cindex @code{-mall-opcodes} command line option, AVR @item -mall-opcodes Accept all AVR opcodes, even if not supported by @code{-mmcu}. -diff -uNdr binutils-2.21-orig.2/include/elf/avr.h binutils-2.21/include/elf/avr.h ---- binutils-2.21-orig.2/include/elf/avr.h 2010-04-15 12:26:08.000000000 +0200 -+++ binutils-2.21/include/elf/avr.h 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp include/elf/avr.h include/elf/avr.h +--- include/elf/avr.h 2008-08-09 00:35:13.000000000 -0500 ++++ include/elf/avr.h 2011-06-07 11:44:52.000000000 -0500 @@ -40,6 +40,13 @@ #define E_AVR_MACH_AVR5 5 #define E_AVR_MACH_AVR51 51 @@ -297,10 +314,10 @@ diff -uNdr binutils-2.21-orig.2/include/elf/avr.h binutils-2.21/include/elf/avr. /* Relocations. */ START_RELOC_NUMBERS (elf_avr_reloc_type) -diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcode/avr.h ---- binutils-2.21-orig.2/include/opcode/avr.h 2010-04-15 12:26:09.000000000 +0200 -+++ binutils-2.21/include/opcode/avr.h 2011-06-17 18:29:41.000000000 +0200 -@@ -31,6 +31,8 @@ +diff -Naurp include/opcode/avr.h include/opcode/avr.h +--- include/opcode/avr.h 2008-08-09 00:35:13.000000000 -0500 ++++ include/opcode/avr.h 2011-06-07 11:44:52.000000000 -0500 +@@ -30,6 +30,8 @@ #define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */ #define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */ #define AVR_ISA_MOVW 0x1000 /* device has MOVW */ @@ -309,7 +326,7 @@ diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcod #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM) #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM) -@@ -49,6 +51,8 @@ +@@ -48,6 +50,8 @@ #define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX) #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK) #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX) @@ -318,7 +335,7 @@ diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcod #define AVR_ISA_AVR1 AVR_ISA_TINY1 #define AVR_ISA_AVR2 AVR_ISA_2xxx -@@ -109,6 +113,7 @@ +@@ -108,6 +112,7 @@ L - signed pc relative offset from -2048 to 2047 h - absolute code address (call, jmp) S - immediate value from 0 to 7 (S = s << 4) @@ -326,7 +343,7 @@ diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcod ? - use this opcode entry if no parameters, else use next opcode entry Order is important - some binary opcodes have more than one name, -@@ -169,7 +174,8 @@ +@@ -168,7 +173,8 @@ AVR_INSN (reti, "", "1001010100011000 AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588) AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598) AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8) @@ -336,121 +353,17 @@ diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcod AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00) AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00) -@@ -283,3 +289,6 @@ +@@ -282,3 +288,6 @@ AVR_INSN (st, "e,r", "100!001rrrrree-+ AVR_INSN (eicall, "", "1001010100011001", 1, AVR_ISA_EIND, 0x9519) AVR_INSN (eijmp, "", "1001010000011001", 1, AVR_ISA_EIND, 0x9419) +/* DES instruction for encryption and decryption */ +AVR_INSN (des, "E", "10010100EEEE1011", 1, AVR_ISA_DES, 0x940B) + -diff -uNdr binutils-2.21-orig.2/ld/Makefile.am binutils-2.21/ld/Makefile.am ---- binutils-2.21-orig.2/ld/Makefile.am 2010-11-03 04:22:01.000000000 +0100 -+++ binutils-2.21/ld/Makefile.am 2011-06-17 18:32:58.000000000 +0200 -@@ -162,6 +162,13 @@ - eavr5.c \ - eavr51.c \ - eavr6.c \ -+ eavrxmega1.o \ -+ eavrxmega2.o \ -+ eavrxmega3.o \ -+ eavrxmega4.o \ -+ eavrxmega5.o \ -+ eavrxmega6.o \ -+ eavrxmega7.o \ - ecoff_i860.c \ - ecoff_sparc.c \ - eelf32_spu.c \ -@@ -760,6 +767,34 @@ - $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} avr6 "$(tdir_avr2)" -+eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)" -+eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)" -+eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)" -+eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)" -+eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)" -+eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)" -+eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" - ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} - ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" -diff -uNdr binutils-2.21-orig.2/ld/Makefile.in binutils-2.21/ld/Makefile.in ---- binutils-2.21-orig.2/ld/Makefile.in 2010-11-05 11:34:22.000000000 +0100 -+++ binutils-2.21/ld/Makefile.in 2011-06-17 18:33:50.000000000 +0200 -@@ -462,6 +462,13 @@ - eavr5.c \ - eavr51.c \ - eavr6.c \ -+ eavrxmega1.o \ -+ eavrxmega2.o \ -+ eavrxmega3.o \ -+ eavrxmega4.o \ -+ eavrxmega5.o \ -+ eavrxmega6.o \ -+ eavrxmega7.o \ - ecoff_i860.c \ - ecoff_sparc.c \ - eelf32_spu.c \ -@@ -2183,6 +2190,34 @@ - $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} avr6 "$(tdir_avr2)" -+eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)" -+eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)" -+eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)" -+eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)" -+eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)" -+eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)" -+eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \ -+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ -+ ${GEN_DEPENDS} -+ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" - ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} - ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" -diff -uNdr binutils-2.21-orig.2/ld/configure.tgt binutils-2.21/ld/configure.tgt ---- binutils-2.21-orig.2/ld/configure.tgt 2010-12-01 12:03:47.000000000 +0100 -+++ binutils-2.21/ld/configure.tgt 2011-06-17 18:29:41.000000000 +0200 -@@ -111,7 +111,7 @@ +diff -Naurp ld/configure.tgt ld/configure.tgt +--- ld/configure.tgt 2009-08-06 12:38:03.000000000 -0500 ++++ ld/configure.tgt 2011-06-07 11:44:52.000000000 -0500 +@@ -110,7 +110,7 @@ xscale-*-coff) targ_emul=armcoff ;; xscale-*-elf) targ_emul=armelf ;; avr-*-*) targ_emul=avr2 @@ -459,9 +372,9 @@ diff -uNdr binutils-2.21-orig.2/ld/configure.tgt binutils-2.21/ld/configure.tgt ;; bfin-*-elf) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega1.sh binutils-2.21/ld/emulparams/avrxmega1.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega1.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega1.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega1.sh ld/emulparams/avrxmega1.sh +--- ld/emulparams/avrxmega1.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega1.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:101 +MACHINE= @@ -475,9 +388,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega1.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega2.sh binutils-2.21/ld/emulparams/avrxmega2.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega2.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega2.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega2.sh ld/emulparams/avrxmega2.sh +--- ld/emulparams/avrxmega2.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega2.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:102 +MACHINE= @@ -491,9 +404,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega2.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega3.sh binutils-2.21/ld/emulparams/avrxmega3.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega3.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega3.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega3.sh ld/emulparams/avrxmega3.sh +--- ld/emulparams/avrxmega3.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega3.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:103 +MACHINE= @@ -507,9 +420,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega3.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega4.sh binutils-2.21/ld/emulparams/avrxmega4.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega4.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega4.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega4.sh ld/emulparams/avrxmega4.sh +--- ld/emulparams/avrxmega4.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega4.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:104 +MACHINE= @@ -523,9 +436,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega4.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega5.sh binutils-2.21/ld/emulparams/avrxmega5.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega5.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega5.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega5.sh ld/emulparams/avrxmega5.sh +--- ld/emulparams/avrxmega5.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega5.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:105 +MACHINE= @@ -539,9 +452,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega5.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega6.sh binutils-2.21/ld/emulparams/avrxmega6.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega6.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega6.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega6.sh ld/emulparams/avrxmega6.sh +--- ld/emulparams/avrxmega6.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega6.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:106 +MACHINE= @@ -555,9 +468,9 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega6.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega7.sh binutils-2.21/ld/emulparams/avrxmega7.sh ---- binutils-2.21-orig.2/ld/emulparams/avrxmega7.sh 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.21/ld/emulparams/avrxmega7.sh 2011-06-17 18:29:41.000000000 +0200 +diff -Naurp ld/emulparams/avrxmega7.sh ld/emulparams/avrxmega7.sh +--- ld/emulparams/avrxmega7.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrxmega7.sh 2011-06-07 11:44:52.000000000 -0500 @@ -0,0 +1,12 @@ +ARCH=avr:107 +MACHINE= @@ -571,10 +484,10 @@ diff -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega7.sh binutils-2.21/ld/emul +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf -diff -uNdr binutils-2.21-orig.2/ld/emultempl/avrelf.em binutils-2.21/ld/emultempl/avrelf.em ---- binutils-2.21-orig.2/ld/emultempl/avrelf.em 2009-11-26 14:45:25.000000000 +0100 -+++ binutils-2.21/ld/emultempl/avrelf.em 2011-06-17 18:29:41.000000000 +0200 -@@ -71,8 +71,10 @@ +diff -Naurp ld/emultempl/avrelf.em ld/emultempl/avrelf.em +--- ld/emultempl/avrelf.em 2009-09-02 02:25:35.000000000 -0500 ++++ ld/emultempl/avrelf.em 2011-06-07 11:44:52.000000000 -0500 +@@ -71,8 +71,10 @@ avr_elf_${EMULATION_NAME}_before_allocat gld${EMULATION_NAME}_before_allocation (); @@ -587,10 +500,114 @@ diff -uNdr binutils-2.21-orig.2/ld/emultempl/avrelf.em binutils-2.21/ld/emultemp avr_no_stubs = TRUE; avr_elf_set_global_bfd_parameters (); -diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis.c ---- binutils-2.21-orig.2/opcodes/avr-dis.c 2008-11-06 13:03:24.000000000 +0100 -+++ binutils-2.21/opcodes/avr-dis.c 2011-06-17 18:29:41.000000000 +0200 -@@ -50,7 +50,7 @@ +diff -Naurp ld/Makefile.am ld/Makefile.am +--- ld/Makefile.am 2010-02-22 02:07:01.000000000 -0600 ++++ ld/Makefile.am 2011-06-07 11:44:52.000000000 -0500 +@@ -148,6 +148,13 @@ ALL_EMULATIONS = \ + eavr5.o \ + eavr51.o \ + eavr6.o \ ++ eavrxmega1.o \ ++ eavrxmega2.o \ ++ eavrxmega3.o \ ++ eavrxmega4.o \ ++ eavrxmega5.o \ ++ eavrxmega6.o \ ++ eavrxmega7.o \ + ecoff_i860.o \ + ecoff_sparc.o \ + eelf32_spu.o \ +@@ -727,6 +734,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $( + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avr6 "$(tdir_avr2)" ++eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)" ++eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)" ++eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)" ++eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)" ++eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)" ++eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)" ++eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" +diff -Naurp ld/Makefile.in ld/Makefile.in +--- ld/Makefile.in 2010-03-03 08:06:21.000000000 -0600 ++++ ld/Makefile.in 2011-06-07 11:44:52.000000000 -0500 +@@ -434,6 +434,13 @@ ALL_EMULATIONS = \ + eavr5.o \ + eavr51.o \ + eavr6.o \ ++ eavrxmega1.o \ ++ eavrxmega2.o \ ++ eavrxmega3.o \ ++ eavrxmega4.o \ ++ eavrxmega5.o \ ++ eavrxmega6.o \ ++ eavrxmega7.o \ + ecoff_i860.o \ + ecoff_sparc.o \ + eelf32_spu.o \ +@@ -2069,6 +2076,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $( + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avr6 "$(tdir_avr2)" ++eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)" ++eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)" ++eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)" ++eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)" ++eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)" ++eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)" ++eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" +diff -Naurp opcodes/avr-dis.c opcodes/avr-dis.c +--- opcodes/avr-dis.c 2008-11-06 06:03:24.000000000 -0600 ++++ opcodes/avr-dis.c 2011-06-07 11:44:52.000000000 -0500 +@@ -50,7 +50,7 @@ static const char * comment_start = "0x" static int avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint, @@ -599,12 +616,11 @@ diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis. { int ok = 1; *sym = 0; -@@ -118,8 +118,18 @@ +@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned case 'z': *buf++ = 'Z'; - if (insn & 0x1) -- *buf++ = '+'; + + /* Check for post-increment. */ + char *s; @@ -612,7 +628,7 @@ diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis. + { + if (*s == '+') + { -+ *buf++ = '+'; + *buf++ = '+'; + break; + } + } @@ -620,18 +636,18 @@ diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis. *buf = '\0'; if (AVR_UNDEF_P (insn)) sprintf (comment, _("undefined")); -@@ -226,6 +236,10 @@ - sprintf (comment, "%d", x); +@@ -227,6 +237,10 @@ avr_operand (unsigned int insn, unsigned } break; -+ + + case 'E': + sprintf (buf, "%d", (insn >> 4) & 15); + break; - ++ case '?': *buf = '\0'; -@@ -331,7 +345,8 @@ + break; +@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl if (opcode->name) { @@ -641,7 +657,7 @@ diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis. insn2 = 0; ok = 1; -@@ -342,14 +357,14 @@ +@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl cmd_len = 4; } diff --git a/401-binutils-2.20.1-new-devices.patch b/401-binutils-2.20.1-new-devices.patch new file mode 100644 index 0000000..34f3a7b --- /dev/null +++ b/401-binutils-2.20.1-new-devices.patch @@ -0,0 +1,229 @@ +attiny461a +atmega48a +atmega88a +atmega88pa +atmega16a +atmega164a +atmega165a +atmega168a +atmega169a +atmega169pa +atmega324a +atmega324pa +atmega328 +atmega329pa +atmega644a +atmega645a +atmega645p +atmega649p +atmega649a +atmega6450a +atmega6450p +atmega6490a +atmega6490p +atmega64hve +atmega16hva2 +attiny84a +atmega325a +atmega3250a +atmega329a +atmega3290a +m3000 +Remove: m3000f, m3000s, m3001b, atmega16c1, atmega4hvd, atmega8hvd, atmega8m1, +atmega8c1, attiny327 +=========================================================== +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-01-12 14:20:58.000000000 -0600 ++++ gas/config/tc-avr.c 2011-01-12 14:24:17.000000000 -0600 +@@ -115,12 +115,14 @@ static struct mcu_type_s mcu_types[] = + {"attiny44", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny44a", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny84", AVR_ISA_AVR25, bfd_mach_avr25}, ++ {"attiny84a", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny25", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny45", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny85", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny261", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny261a", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny461", AVR_ISA_AVR25, bfd_mach_avr25}, ++ {"attiny461a", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny861", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny861a", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny87", AVR_ISA_AVR25, bfd_mach_avr25}, +@@ -134,7 +136,6 @@ static struct mcu_type_s mcu_types[] = + {"atmega103", AVR_ISA_AVR31, bfd_mach_avr31}, + {"at43usb320", AVR_ISA_AVR31, bfd_mach_avr31}, + {"attiny167", AVR_ISA_AVR35, bfd_mach_avr35}, +- {"attiny327", AVR_ISA_AVR35, bfd_mach_avr35}, + {"at90usb82", AVR_ISA_AVR35, bfd_mach_avr35}, + {"at90usb162", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35}, +@@ -142,16 +143,15 @@ static struct mcu_type_s mcu_types[] = + {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega8", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4}, ++ {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega88", AVR_ISA_AVR4, bfd_mach_avr4}, ++ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4}, ++ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega8515", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega8535", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4}, +- {"atmega4hvd", AVR_ISA_AVR4, bfd_mach_avr4}, +- {"atmega8hvd", AVR_ISA_AVR4, bfd_mach_avr4}, +- {"atmega8c1", AVR_ISA_AVR4, bfd_mach_avr4}, +- {"atmega8m1", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm1", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm2", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm2b", AVR_ISA_AVR4, bfd_mach_avr4}, +@@ -159,40 +159,64 @@ static struct mcu_type_s mcu_types[] = + {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega161", AVR_ISA_M161, bfd_mach_avr5}, + {"atmega162", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega163", AVR_ISA_M161, bfd_mach_avr5}, ++ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169p", AVR_ISA_AVR5, bfd_mach_avr5}, +- {"atmega16c1", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega169pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega323", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega324pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega325a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega3250a",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega329a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega3290a",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega645", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega649", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega6490p",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega64hve",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5}, +@@ -211,6 +235,7 @@ static struct mcu_type_s mcu_types[] = + {"at90usb647", AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90scr100", AVR_ISA_AVR5, bfd_mach_avr5}, + {"at94k", AVR_ISA_94K, bfd_mach_avr5}, ++ {"m3000", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega128", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1280", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51}, +@@ -219,9 +244,6 @@ static struct mcu_type_s mcu_types[] = + {"at90can128", AVR_ISA_AVR51, bfd_mach_avr51}, + {"at90usb1286",AVR_ISA_AVR51, bfd_mach_avr51}, + {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51}, +- {"m3000f", AVR_ISA_AVR51, bfd_mach_avr51}, +- {"m3000s", AVR_ISA_AVR51, bfd_mach_avr51}, +- {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-01-12 14:20:58.000000000 -0600 ++++ gas/doc/c-avr.texi 2011-01-12 14:22:42.000000000 -0600 +@@ -43,9 +43,10 @@ at90s8535). + + Instruction set avr25 is for the classic AVR core with up to 8K program memory + space plus the MOVW instruction (MCU types: attiny13, attiny13a, attiny2313, +-attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84, +-attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861, +-attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289). ++attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a, ++attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, ++attiny461, attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, ++attiny88, at86rf401, ata6289). + + Instruction set avr3 is for the classic AVR core with up to 128K program + memory space (MCU types: at43usb355, at76c711). +@@ -54,28 +55,33 @@ Instruction set avr31 is for the classic + memory space (MCU types: atmega103, at43usb320). + + Instruction set avr35 is for classic AVR core plus MOVW, CALL, and JMP +-instructions (MCU types: attiny167, attiny327, at90usb82, at90usb162, atmega8u2, ++instructions (MCU types: attiny167, at90usb82, at90usb162, atmega8u2, + atmega16u2, atmega32u2). + + Instruction set avr4 is for the enhanced AVR core with up to 8K program +-memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p, +-atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1, +-at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1). ++memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88, ++atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva, ++at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, ++at90pwm81). + + Instruction set avr5 is for the enhanced AVR core with up to 128K program +-memory space (MCU types: atmega16, atmega161, atmega162, atmega163, atmega164p, +-atmega165, atmega165p, atmega168, atmega168p, atmega169, atmega169p, atmega16c1, +-atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega3250, atmega3250p, +-atmega328p, atmega329, atmega329p, atmega3290, atmega3290p, atmega406, atmega64, +-atmega640, atmega644, atmega644p, atmega644pa, atmega645, atmega6450, atmega649, +-atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32, at90can64, +-at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1, +-atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, +-at90scr100). ++memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163, ++atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, ++atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, ++atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, ++atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p, ++atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, ++atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p, ++atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a, ++atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a, ++atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, ++at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, atmega32c1, ++atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, ++atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). + + Instruction set avr51 is for the enhanced AVR core with exactly 128K program + memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, +-atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000f, m3000s, m3001b). ++atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000). + + Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types: + atmega2560, atmega2561). diff --git a/402-binutils-2.20.1-avrtiny10.patch b/402-binutils-2.20.1-avrtiny10.patch new file mode 100644 index 0000000..d51aeb5 --- /dev/null +++ b/402-binutils-2.20.1-avrtiny10.patch @@ -0,0 +1,218 @@ +diff -Naurp bfd/archures.c bfd/archures.c +--- bfd/archures.c 2011-06-07 11:55:03.000000000 -0500 ++++ bfd/archures.c 2011-06-07 11:56:48.000000000 -0500 +@@ -375,6 +375,7 @@ DESCRIPTION + .#define bfd_mach_avrxmega5 105 + .#define bfd_mach_avrxmega6 106 + .#define bfd_mach_avrxmega7 107 ++.#define bfd_mach_avrtiny10 201 + . bfd_arch_bfin, {* ADI Blackfin *} + .#define bfd_mach_bfin 1 + . bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *} +diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h +--- bfd/bfd-in2.h 2011-06-07 11:55:03.000000000 -0500 ++++ bfd/bfd-in2.h 2011-06-07 11:56:48.000000000 -0500 +@@ -2049,6 +2049,7 @@ enum bfd_architecture + #define bfd_mach_avrxmega5 105 + #define bfd_mach_avrxmega6 106 + #define bfd_mach_avrxmega7 107 ++#define bfd_mach_avrtiny10 201 + bfd_arch_bfin, /* ADI Blackfin */ + #define bfd_mach_bfin 1 + bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ +diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c +--- bfd/cpu-avr.c 2011-06-07 11:55:03.000000000 -0500 ++++ bfd/cpu-avr.c 2011-06-07 11:56:48.000000000 -0500 +@@ -154,7 +154,10 @@ static const bfd_arch_info_type arch_inf + N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]), + + /* Xmega 7 */ +- N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL) ++ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]), ++ ++ /* attiny 10 */ ++ N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL) + + }; + +diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c +--- bfd/elf32-avr.c 2011-06-07 11:55:03.000000000 -0500 ++++ bfd/elf32-avr.c 2011-06-07 11:56:48.000000000 -0500 +@@ -1356,6 +1356,10 @@ bfd_elf_avr_final_write_processing (bfd + case bfd_mach_avrxmega7: + val = E_AVR_MACH_XMEGA7; + break; ++ ++ case bfd_mach_avrtiny10: ++ val = E_AVR_MACH_AVRTINY10; ++ break; + } + + elf_elfheader (abfd)->e_machine = EM_AVR; +@@ -1446,6 +1450,10 @@ elf32_avr_object_p (bfd *abfd) + case E_AVR_MACH_XMEGA7: + e_set = bfd_mach_avrxmega7; + break; ++ ++ case E_AVR_MACH_AVRTINY10: ++ e_set = bfd_mach_avrtiny10; ++ break; + } + } + return bfd_default_set_arch_mach (abfd, bfd_arch_avr, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-06-07 11:56:25.000000000 -0500 ++++ gas/config/tc-avr.c 2011-06-07 11:56:48.000000000 -0500 +@@ -88,6 +88,7 @@ static struct mcu_type_s mcu_types[] = + {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, ++ {"avrtiny10", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {"at90s1200", AVR_ISA_1200, bfd_mach_avr1}, + {"attiny11", AVR_ISA_AVR1, bfd_mach_avr1}, + {"attiny12", AVR_ISA_AVR1, bfd_mach_avr1}, +@@ -261,6 +262,12 @@ static struct mcu_type_s mcu_types[] = + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, ++ {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, ++ {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, ++ {"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, ++ {"attiny10", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, ++ {"attiny20", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, ++ {"attiny40", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {NULL, 0, 0} + }; + +@@ -443,6 +450,7 @@ md_show_usage (FILE *stream) + " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n" + " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n" + " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n" ++ " avrtiny10 - tiny devices with 16 gp registers\n" + " or immediate microcontroller name.\n")); + fprintf (stream, + _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" +@@ -790,6 +798,17 @@ avr_operand (struct avr_opcodes_s *opcod + op_mask = avr_get_constant (str, 31); + str = input_line_pointer; + } ++ if (strcmp(avr_mcu->name, "avrtiny10") == 0 ++ || strcmp(avr_mcu->name, "attiny10") == 0 ++ || strcmp(avr_mcu->name, "attiny4") == 0 ++ || strcmp(avr_mcu->name, "attiny5") == 0 ++ || strcmp(avr_mcu->name, "attiny9") == 0 ++ || strcmp(avr_mcu->name, "attiny20") == 0 ++ || strcmp(avr_mcu->name, "attiny40") == 0) ++ { ++ if(op_mask < 16) ++ as_bad (_("register number above 15 required")); ++ } + + if (op_mask <= 31) + { +diff -Naurp include/elf/avr.h include/elf/avr.h +--- include/elf/avr.h 2011-06-07 11:55:03.000000000 -0500 ++++ include/elf/avr.h 2011-06-07 11:56:48.000000000 -0500 +@@ -47,6 +47,7 @@ + #define E_AVR_MACH_XMEGA5 105 + #define E_AVR_MACH_XMEGA6 106 + #define E_AVR_MACH_XMEGA7 107 ++#define E_AVR_MACH_AVRTINY10 201 + + /* Relocations. */ + START_RELOC_NUMBERS (elf_avr_reloc_type) +diff -Naurp include/opcode/avr.h include/opcode/avr.h +--- include/opcode/avr.h 2011-06-07 11:55:03.000000000 -0500 ++++ include/opcode/avr.h 2011-06-07 11:56:48.000000000 -0500 +@@ -69,7 +69,7 @@ + AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \ + AVR_ISA_SPM | AVR_ISA_BRK | AVR_ISA_EIND | \ + AVR_ISA_MOVW) +- ++#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM) + #define REGISTER_P(x) ((x) == 'r' \ + || (x) == 'd' \ + || (x) == 'w' \ +@@ -159,8 +159,8 @@ AVR_INSN (sez, "", "1001010000011000 + AVR_INSN (bclr, "S", "100101001SSS1000", 1, AVR_ISA_1200, 0x9488) + AVR_INSN (bset, "S", "100101000SSS1000", 1, AVR_ISA_1200, 0x9408) + +-AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_2xxx, 0x9509) +-AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_2xxx, 0x9409) ++AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_SRAM, 0x9509) ++AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_SRAM, 0x9409) + + AVR_INSN (lpm, "?", "1001010111001000", 1, AVR_ISA_TINY1,0x95c8) + AVR_INSN (lpm, "r,z", "1001000ddddd010+", 1, AVR_ISA_LPMX, 0x9004) +@@ -260,8 +260,8 @@ AVR_INSN (dec, "r", "1001010rrrrr1010 + AVR_INSN (inc, "r", "1001010rrrrr0011", 1, AVR_ISA_1200, 0x9403) + AVR_INSN (lsr, "r", "1001010rrrrr0110", 1, AVR_ISA_1200, 0x9406) + AVR_INSN (neg, "r", "1001010rrrrr0001", 1, AVR_ISA_1200, 0x9401) +-AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_2xxx, 0x900f) +-AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f) ++AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_SRAM, 0x900f) ++AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_SRAM, 0x920f) + AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407) + AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402) + +@@ -273,8 +273,8 @@ AVR_INSN (fmul, "a,a", "000000110ddd1rrr + AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL, 0x0380) + AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL, 0x0388) + +-AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200) +-AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000) ++AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_SRAM, 0x9200) ++AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_SRAM, 0x9000) + + /* Special case for b+0, `e' must be next entry after `b', + b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X. */ +diff -Naurp ld/configure.tgt ld/configure.tgt +--- ld/configure.tgt 2011-06-07 11:55:03.000000000 -0500 ++++ ld/configure.tgt 2011-06-07 11:56:48.000000000 -0500 +@@ -110,7 +110,7 @@ xscale-*-coff) targ_emul=armcoff ;; + xscale-*-elf) targ_emul=armelf + ;; + avr-*-*) targ_emul=avr2 +- targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7" ++ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny10" + ;; + bfin-*-elf) targ_emul=elf32bfin; + targ_extra_emuls="elf32bfinfd" +diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh +--- ld/emulparams/avrtiny10.sh 1969-12-31 18:00:00.000000000 -0600 ++++ ld/emulparams/avrtiny10.sh 2011-06-07 11:56:48.000000000 -0500 +@@ -0,0 +1,12 @@ ++ARCH=avr:201 ++MACHINE= ++SCRIPT_NAME=avr ++OUTPUT_FORMAT="elf32-avr" ++MAXPAGESIZE=1 ++EMBEDDED=yes ++TEMPLATE_NAME=elf32 ++ ++TEXT_LENGTH=4K ++DATA_ORIGIN=0x800040 ++DATA_LENGTH=0x140 ++EXTRA_EM_FILE=avrelf +diff -Naurp ld/Makefile.am ld/Makefile.am +--- ld/Makefile.am 2011-06-07 11:55:03.000000000 -0500 ++++ ld/Makefile.am 2011-06-07 11:56:48.000000000 -0500 +@@ -155,6 +155,7 @@ ALL_EMULATIONS = \ + eavrxmega5.o \ + eavrxmega6.o \ + eavrxmega7.o \ ++ eavrtiny10.o \ + ecoff_i860.o \ + ecoff_sparc.o \ + eelf32_spu.o \ +@@ -762,6 +763,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" ++eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrtiny10 "$(tdir_avr2)" + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" diff --git a/403-binutils-2.20.1-xmega128a1u-64a1u.patch b/403-binutils-2.20.1-xmega128a1u-64a1u.patch new file mode 100644 index 0000000..03c651b --- /dev/null +++ b/403-binutils-2.20.1-xmega128a1u-64a1u.patch @@ -0,0 +1,42 @@ +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-06-07 12:00:46.000000000 -0500 ++++ gas/config/tc-avr.c 2011-06-07 12:01:05.000000000 -0500 +@@ -254,6 +254,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, ++ {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +@@ -262,6 +263,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, ++ {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-06-07 11:56:25.000000000 -0500 ++++ gas/doc/c-avr.texi 2011-06-07 12:01:05.000000000 -0500 +@@ -97,7 +97,8 @@ Instruction set avrxmega4 is for the XME + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program +-memory space and greater than 64K data space (MCU types: atxmega64a1). ++memory space and greater than 64K data space (MCU types: atxmega64a1, ++atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, +@@ -105,7 +106,8 @@ atxmega128d3, atxmega192a3, atxmega192d3 + atxmega192d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program +-memory space and greater than 64K data space (MCU types: atxmega128a1). ++memory space and greater than 64K data space (MCU types: atxmega128a1, ++atxmega128a1u). + + @cindex @code{-mall-opcodes} command line option, AVR + @item -mall-opcodes diff --git a/404-binutils-2.20.1-atxmega32x1.patch b/404-binutils-2.20.1-atxmega32x1.patch new file mode 100644 index 0000000..dd694cb --- /dev/null +++ b/404-binutils-2.20.1-atxmega32x1.patch @@ -0,0 +1,38 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:32:07.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:38:25.000000000 +0300 +@@ -181,6 +181,7 @@ avr_device_t avr[] = + + {"atxmega32a4", AVR36K, AVR4K, AVR1K}, + {"atxmega32d4", AVR36K, AVR4K, AVR1K}, ++ {"atxmega32x1", AVR36K, AVR2K, AVR1K}, + + {"at90can32", AVR32K, AVR2K, AVR1K}, + {"at94k", AVR32K, AVR4K, 0UL}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:33:12.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:35:21.000000000 +0300 +@@ -251,6 +251,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:33:12.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:37:04.000000000 +0300 +@@ -88,10 +88,10 @@ atmega2560, atmega2561). + + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program + memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16d4, +-atxmega32d4). ++atxmega32a4, atxmega32d4, atxmega32x1). + + Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program +-memory space and greater than 64K data space (MCU types: atxmega32a4). ++memory space and greater than 64K data space (MCU types: none). + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3). diff --git a/405-binutils-2.20.1-atxmega128b1.patch b/405-binutils-2.20.1-atxmega128b1.patch new file mode 100644 index 0000000..ff3db65 --- /dev/null +++ b/405-binutils-2.20.1-atxmega128b1.patch @@ -0,0 +1,36 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:40:59.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:40:03.000000000 +0300 +@@ -132,6 +132,7 @@ avr_device_t avr[] = + {"atxmega128a1", AVR136K, AVR8K, AVR2K}, + {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128b1", AVR136K, AVR8K, AVR2K}, + {"atxmega128d3", AVR136K, AVR8K, AVR2K}, + + {"at43usb320", AVR128K, 608UL, 0UL}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:40:59.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:40:03.000000000 +0300 +@@ -257,6 +257,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:40:59.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:40:03.000000000 +0300 +@@ -102,8 +102,8 @@ atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, +-atxmega128d3, atxmega192a3, atxmega192d3, atxmega256a3, atxmega256a3b, +-atxmega192d3). ++atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3, ++atxmega256a3b, atxmega192d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/406-binutils-2.20.1-atxmega256a3bu.patch b/406-binutils-2.20.1-atxmega256a3bu.patch new file mode 100644 index 0000000..f6708d6 --- /dev/null +++ b/406-binutils-2.20.1-atxmega256a3bu.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:43:49.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:44:57.000000000 +0300 +@@ -121,6 +121,7 @@ avr_device_t avr[] = + { + {"atxmega256a3", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, ++ {"atxmega256a3bu",AVR264K, AVR16K, AVR4K}, + {"atxmega256d3", AVR264K, AVR16K, AVR4K}, + + {"atmega2560", AVR256K, AVR8K, AVR4K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:43:49.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:44:57.000000000 +0300 +@@ -263,6 +263,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:43:49.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:44:57.000000000 +0300 +@@ -103,7 +103,7 @@ atxmega64a1u). + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, + atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3, +-atxmega256a3b, atxmega192d3). ++atxmega256a3b, atxmega256a3bu, atxmega192d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/407-binutils-2.20.1-at90pwm161.patch b/407-binutils-2.20.1-at90pwm161.patch new file mode 100644 index 0000000..2acfbfa --- /dev/null +++ b/407-binutils-2.20.1-at90pwm161.patch @@ -0,0 +1,73 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:47:17.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:47:30.000000000 +0300 +@@ -221,6 +221,7 @@ avr_device_t avr[] = + {"atxmega16d4", AVR20K, AVR2K, AVR1K}, + + {"at76c711", AVR16K, AVR2K, 0UL}, ++ {"at90pwm161", AVR16K, AVR1K, AVR512}, + {"at90pwm216", AVR16K, AVR1K, AVR512}, + {"at90pwm316", AVR16K, AVR1K, AVR512}, + {"at90usb162", AVR16K, AVR512, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:47:17.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:47:30.000000000 +0300 +@@ -159,6 +159,7 @@ static struct mcu_type_s mcu_types[] = + {"at90pwm3", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4}, + {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4}, ++ {"at90pwm161", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega161", AVR_ISA_M161, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:47:17.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:47:30.000000000 +0300 +@@ -65,8 +65,8 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3, + at90pwm81). + + Instruction set avr5 is for the enhanced AVR core with up to 128K program +-memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163, +-atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, ++memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162, ++atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, + atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, + atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, + atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p, +diff -Naurp ld/Makefile.in ld/Makefile.in +--- ld/Makefile.in 2011-09-05 15:33:12.000000000 +0300 ++++ ld/Makefile.in 2011-09-05 15:47:30.000000000 +0300 +@@ -441,6 +441,7 @@ ALL_EMULATIONS = \ + eavrxmega5.o \ + eavrxmega6.o \ + eavrxmega7.o \ ++ eavrtiny10.o \ + ecoff_i860.o \ + ecoff_sparc.o \ + eelf32_spu.o \ +@@ -952,6 +953,14 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr5.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr51.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr6.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrtiny10.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega1.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega2.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega3.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega4.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega5.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega6.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega7.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecoff_i860.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecoff_sparc.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecrisaout.Po@am__quote@ +@@ -2104,6 +2113,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" ++eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ ${GEN_DEPENDS} ++ ${GENSCRIPTS} avrtiny10 "$(tdir_avr2)" + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" diff --git a/408-binutils-2.20.1-atmega16hvb-32hvb.patch b/408-binutils-2.20.1-atmega16hvb-32hvb.patch new file mode 100644 index 0000000..61f11de --- /dev/null +++ b/408-binutils-2.20.1-atmega16hvb-32hvb.patch @@ -0,0 +1,52 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:48:20.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:48:28.000000000 +0300 +@@ -208,8 +208,8 @@ avr_device_t avr[] = + {"atmega3290a", AVR32K, AVR2K, AVR1K}, + {"atmega3290p", AVR32K, AVR2K, AVR1K}, + {"atmega32hvb", AVR32K, AVR2K, AVR1K}, ++ {"atmega32hvbrevb",AVR32K, AVR2K, AVR1K}, + {"atmega32c1", AVR32K, AVR2K, AVR1K}, +- {"atmega32hvb", AVR32K, AVR2K, AVR1K}, + {"atmega32m1", AVR32K, AVR2K, AVR1K}, + {"atmega32u2", AVR32K, AVR1K, AVR1K}, + {"atmega32u4", AVR32K, 2560UL, AVR1K}, +@@ -245,7 +245,8 @@ avr_device_t avr[] = + {"atmega169pa", AVR16K, AVR1K, AVR512}, + {"atmega16hva", AVR16K, 768UL, AVR256}, + {"atmega16hva2", AVR16K, AVR1K, AVR256}, +- {"atmega16hvb", AVR16K, AVR1K, AVR512}, ++ {"atmega16hvb", AVR16K, AVR1K, AVR512}, ++ {"atmega16hvbrevb",AVR16K, AVR1K, AVR512}, + {"atmega16m1", AVR16K, AVR1K, AVR512}, + {"atmega16u2", AVR16K, AVR512, AVR512}, + {"atmega16u4", AVR16K, 1280UL, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:48:20.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:48:28.000000000 +0300 +@@ -220,7 +220,9 @@ static struct mcu_type_s mcu_types[] = + {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, + {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, + {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90can64" , AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90pwm216", AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:48:20.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:48:28.000000000 +0300 +@@ -75,9 +75,9 @@ atmega3290p, atmega406, atmega64, atmega + atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a, + atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a, + atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, +-at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, atmega32c1, +-atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, +-atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). ++atmega16hvbrevb, atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, ++atmega16u4, atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, ++atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). + + Instruction set avr51 is for the enhanced AVR core with exactly 128K program + memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, diff --git a/409-binutils-2.20.1-atmega32_5_50_90_pa.patch b/409-binutils-2.20.1-atmega32_5_50_90_pa.patch new file mode 100644 index 0000000..33b94ee --- /dev/null +++ b/409-binutils-2.20.1-atmega32_5_50_90_pa.patch @@ -0,0 +1,88 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:49:06.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:49:15.000000000 +0300 +@@ -195,9 +195,11 @@ avr_device_t avr[] = + {"atmega325", AVR32K, AVR2K, AVR1K}, + {"atmega325a", AVR32K, AVR2K, AVR1K}, + {"atmega325p", AVR32K, AVR2K, AVR1K}, ++ {"atmega325pa", AVR32K, AVR2K, AVR1K}, + {"atmega3250", AVR32K, AVR2K, AVR1K}, + {"atmega3250a", AVR32K, AVR2K, AVR1K}, + {"atmega3250p", AVR32K, AVR2K, AVR1K}, ++ {"atmega3250pa", AVR32K, AVR2K, AVR1K}, + {"atmega328", AVR32K, AVR2K, AVR1K}, + {"atmega328p", AVR32K, AVR2K, AVR1K}, + {"atmega329", AVR32K, AVR2K, AVR1K}, +@@ -207,6 +209,7 @@ avr_device_t avr[] = + {"atmega3290", AVR32K, AVR2K, AVR1K}, + {"atmega3290a", AVR32K, AVR2K, AVR1K}, + {"atmega3290p", AVR32K, AVR2K, AVR1K}, ++ {"atmega3290pa", AVR32K, AVR2K, AVR1K}, + {"atmega32hvb", AVR32K, AVR2K, AVR1K}, + {"atmega32hvbrevb",AVR32K, AVR2K, AVR1K}, + {"atmega32c1", AVR32K, AVR2K, AVR1K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:49:06.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:49:15.000000000 +0300 +@@ -185,9 +185,11 @@ static struct mcu_type_s mcu_types[] = + {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega325a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega325pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3250a",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega3250pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5}, +@@ -197,6 +199,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3290a",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega3290pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/as.info gas/doc/as.info +--- gas/doc/as.info 2010-03-01 16:49:55.000000000 +0300 ++++ gas/doc/as.info 2011-09-05 15:49:15.000000000 +0300 +@@ -7097,14 +7097,15 @@ File: as.info, Node: AVR Options, Next + program memory space (MCU types: atmega16, atmega161, atmega162, + atmega163, atmega164p, atmega165, atmega165p, atmega168, + atmega168p, atmega169, atmega169p, atmega16c1, atmega32, +- atmega323, atmega324p, atmega325, atmega325p, atmega3250, +- atmega3250p, atmega328p, atmega329, atmega329p, atmega3290, +- atmega3290p, atmega406, atmega64, atmega640, atmega644, +- atmega644p, atmega644pa, atmega645, atmega6450, atmega649, +- atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32, +- at90can64, at90pwm216, at90pwm316, atmega32c1, atmega64c1, +- atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, +- atmega32u6, at90usb646, at90usb647, at94k, at90scr100). ++ atmega323, atmega324p, atmega325, atmega325p, atmega325pa, ++ atmega3250, atmega3250p, atmega3250pa, atmega328p, atmega329, ++ atmega329p, atmega3290, atmega3290p, atmega3290pa, atmega406, ++ atmega64, atmega640, atmega644, atmega644p, atmega644pa, atmega645, ++ atmega6450, atmega649, atmega6490, atmega16hva, atmega16hvb, ++ atmega32hvb, at90can32, at90can64, at90pwm216, at90pwm316, ++ atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1, ++ atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, ++ at94k, at90scr100). + + Instruction set avr51 is for the enhanced AVR core with exactly + 128K program memory space (MCU types: atmega128, atmega1280, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:49:06.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:49:15.000000000 +0300 +@@ -69,9 +69,9 @@ memory space (MCU types: at90pwm161, atm + atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, + atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, + atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, +-atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p, ++atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, + atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, +-atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p, ++atmega3290p, atmega3290pa, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p, + atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a, + atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a, + atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, diff --git a/410-binutils-2.20.1-attiny1634.patch b/410-binutils-2.20.1-attiny1634.patch new file mode 100644 index 0000000..9109789 --- /dev/null +++ b/410-binutils-2.20.1-attiny1634.patch @@ -0,0 +1,36 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:49:15.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:50:47.000000000 +0300 +@@ -251,6 +251,7 @@ avr_device_t avr[] = + {"atmega16hvb", AVR16K, AVR1K, AVR512}, + {"atmega16hvbrevb",AVR16K, AVR1K, AVR512}, + {"atmega16m1", AVR16K, AVR1K, AVR512}, ++ {"attiny1634", AVR16K, AVR1K, AVR256}, + {"atmega16u2", AVR16K, AVR512, AVR512}, + {"atmega16u4", AVR16K, 1280UL, AVR512}, + {"attiny167", AVR16K, AVR512, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:49:15.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:50:47.000000000 +0300 +@@ -142,6 +142,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega16u2", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35}, ++ {"attiny1634", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega8", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:49:15.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:50:47.000000000 +0300 +@@ -55,8 +55,8 @@ Instruction set avr31 is for the classic + memory space (MCU types: atmega103, at43usb320). + + Instruction set avr35 is for classic AVR core plus MOVW, CALL, and JMP +-instructions (MCU types: attiny167, at90usb82, at90usb162, atmega8u2, +-atmega16u2, atmega32u2). ++instructions (MCU types: attiny167, attiny1634, at90usb82, at90usb162, ++atmega8u2, atmega16u2, atmega32u2). + + Instruction set avr4 is for the enhanced AVR core with up to 8K program + memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88, diff --git a/411-binutils-2.20.1-atmega48pa.patch b/411-binutils-2.20.1-atmega48pa.patch new file mode 100644 index 0000000..1a9f6c7 --- /dev/null +++ b/411-binutils-2.20.1-atmega48pa.patch @@ -0,0 +1,39 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:50:47.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:53:27.000000000 +0300 +@@ -289,6 +289,7 @@ avr_device_t avr[] = + {"at90s4434", AVR4K, 352UL, AVR256}, + {"atmega48", AVR4K, AVR512, AVR256}, + {"atmega48a", AVR4K, AVR512, AVR256}, ++ {"atmega48pa", AVR4K, AVR512, AVR256}, + {"atmega48p", AVR4K, AVR512, AVR256}, + {"attiny4313", AVR4K, AVR256, AVR256}, + {"attiny43u", AVR4K, AVR256, AVR64}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:50:47.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:53:27.000000000 +0300 +@@ -146,6 +146,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega8", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4}, ++ {"atmega48pa", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega88", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:50:47.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:53:27.000000000 +0300 +@@ -59,10 +59,9 @@ instructions (MCU types: attiny167, atti + atmega8u2, atmega16u2, atmega32u2). + + Instruction set avr4 is for the enhanced AVR core with up to 8K program +-memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88, +-atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva, +-at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, +-at90pwm81). ++memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8, ++atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva, ++at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81). + + Instruction set avr5 is for the enhanced AVR core with up to 128K program + memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162, diff --git a/412-binutils-2.20.1-atxmega_16_32_a4u.patch b/412-binutils-2.20.1-atxmega_16_32_a4u.patch new file mode 100644 index 0000000..25cb8da --- /dev/null +++ b/412-binutils-2.20.1-atxmega_16_32_a4u.patch @@ -0,0 +1,87 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:54:26.000000000 +0300 ++++ binutils/size.c 2011-09-05 15:54:34.000000000 +0300 +@@ -177,11 +177,12 @@ avr_device_t avr[] = + {"atmega64c1", AVR64K, AVR4K, AVR2K}, + {"atmega64hve", AVR64K, AVR4K, AVR1K}, + {"atmega64m1", AVR64K, AVR4K, AVR2K}, +- {"m3000", AVR64K, AVR4K, 0UL}, ++ {"m3000", AVR64K, AVR4K, 0UL}, + + {"atmega406", AVR40K, AVR2K, AVR512}, + + {"atxmega32a4", AVR36K, AVR4K, AVR1K}, ++ {"atxmega32a4u", AVR36K, AVR4K, AVR1K}, + {"atxmega32d4", AVR36K, AVR4K, AVR1K}, + {"atxmega32x1", AVR36K, AVR2K, AVR1K}, + +@@ -221,6 +222,7 @@ avr_device_t avr[] = + {"at43usb355", AVR24K, 1120UL, 0UL}, + + {"atxmega16a4", AVR20K, AVR2K, AVR1K}, ++ {"atxmega16a4u", AVR20K, AVR2K, AVR1K}, + {"atxmega16d4", AVR20K, AVR2K, AVR1K}, + + {"at76c711", AVR16K, AVR2K, 0UL}, +@@ -305,7 +307,7 @@ avr_device_t avr[] = + {"at90s2323", AVR2K, AVR128, AVR128}, + {"at90s2333", AVR2K, 224UL, AVR128}, + {"at90s2343", AVR2K, AVR128, AVR128}, +- {"attiny20", AVR2K, AVR128, 0UL}, ++ {"attiny20", AVR2K, AVR128, 0UL}, + {"attiny22", AVR2K, 224UL, AVR128}, + {"attiny2313", AVR2K, AVR128, AVR128}, + {"attiny2313a", AVR2K, AVR128, AVR128}, +@@ -316,19 +318,19 @@ avr_device_t avr[] = + {"attiny261", AVR2K, AVR128, AVR128}, + {"attiny261a", AVR2K, AVR128, AVR128}, + {"attiny28", AVR2K, 0UL, 0UL}, +- {"attiny40", AVR2K, AVR256, 0UL}, ++ {"attiny40", AVR2K, AVR256, 0UL}, + + {"at90s1200", AVR1K, 0UL, AVR64}, +- {"attiny9", AVR1K, 32UL, 0UL}, +- {"attiny10", AVR1K, 32UL, 0UL}, ++ {"attiny9", AVR1K, 32UL, 0UL}, ++ {"attiny10", AVR1K, 32UL, 0UL}, + {"attiny11", AVR1K, 0UL, AVR64}, + {"attiny12", AVR1K, 0UL, AVR64}, + {"attiny13", AVR1K, AVR64, AVR64}, + {"attiny13a", AVR1K, AVR64, AVR64}, + {"attiny15", AVR1K, 0UL, AVR64}, + +- {"attiny4", AVR512, 32UL, 0UL}, +- {"attiny5", AVR512, 32UL, 0UL}, ++ {"attiny4", AVR512, 32UL, 0UL}, ++ {"attiny5", AVR512, 32UL, 0UL}, + }; + + static char *avrmcu = NULL; +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:54:26.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 15:56:53.000000000 +0300 +@@ -256,8 +256,10 @@ static struct mcu_type_s mcu_types[] = + {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega32a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:54:26.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 15:58:33.000000000 +0300 +@@ -86,8 +86,8 @@ Instruction set avr6 is for the enhanced + atmega2560, atmega2561). + + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program +-memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16d4, +-atxmega32a4, atxmega32d4, atxmega32x1). ++memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, ++atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1). + + Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program + memory space and greater than 64K data space (MCU types: none). diff --git a/413-binutils-2.20.1-atxmega64_128_192_256a3u.patch b/413-binutils-2.20.1-atxmega64_128_192_256a3u.patch new file mode 100644 index 0000000..ca338be --- /dev/null +++ b/413-binutils-2.20.1-atxmega64_128_192_256a3u.patch @@ -0,0 +1,81 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 15:59:51.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:03:16.000000000 +0300 +@@ -120,6 +120,7 @@ typedef struct + avr_device_t avr[] = + { + {"atxmega256a3", AVR264K, AVR16K, AVR4K}, ++ {"atxmega256a3u", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3bu",AVR264K, AVR16K, AVR4K}, + {"atxmega256d3", AVR264K, AVR16K, AVR4K}, +@@ -128,11 +129,13 @@ avr_device_t avr[] = + {"atmega2561", AVR256K, AVR8K, AVR4K}, + + {"atxmega192a3", AVR200K, AVR16K, AVR2K}, ++ {"atxmega192a3u", AVR200K, AVR16K, AVR2K}, + {"atxmega192d3", AVR200K, AVR16K, AVR2K}, + + {"atxmega128a1", AVR136K, AVR8K, AVR2K}, + {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128a3u", AVR136K, AVR8K, AVR2K}, + {"atxmega128b1", AVR136K, AVR8K, AVR2K}, + {"atxmega128d3", AVR136K, AVR8K, AVR2K}, + +@@ -150,6 +153,7 @@ avr_device_t avr[] = + {"atxmega64a1", AVR68K, AVR4K, AVR2K}, + {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, + + {"at90can64", AVR64K, AVR4K, AVR2K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 15:59:51.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:03:16.000000000 +0300 +@@ -263,15 +263,19 @@ static struct mcu_type_s mcu_types[] = + {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, ++ {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 15:59:51.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:03:16.000000000 +0300 +@@ -93,16 +93,17 @@ Instruction set avrxmega3 is for the XME + memory space and greater than 64K data space (MCU types: none). + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program +-memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3). ++memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, ++atxmega64d3). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program + memory space and greater than 64K data space (MCU types: atxmega64a1, + atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program +-memory space and less than 64K data space (MCU types: atxmega128a3, +-atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3, +-atxmega256a3b, atxmega256a3bu, atxmega192d3). ++memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, ++atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3, ++atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/414-binutils-2.20.1-atmegarfr2_a2.patch b/414-binutils-2.20.1-atmegarfr2_a2.patch new file mode 100644 index 0000000..4fc0b78 --- /dev/null +++ b/414-binutils-2.20.1-atmegarfr2_a2.patch @@ -0,0 +1,98 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-06-24 16:23:14.000000000 +0530 ++++ binutils/size.c 2011-06-24 10:48:45.000000000 +0530 +@@ -119,6 +119,9 @@ typedef struct + + avr_device_t avr[] = + { ++ {"atmega256rfa2", AVR256K, AVR32K, AVR8K}, ++ {"atmega256rfr2", AVR256K, AVR32K, AVR8K}, ++ + {"atxmega256a3", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3u", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, +@@ -132,6 +135,9 @@ avr_device_t avr[] = + {"atxmega192a3u", AVR200K, AVR16K, AVR2K}, + {"atxmega192d3", AVR200K, AVR16K, AVR2K}, + ++ {"atmega128rfa2", AVR128K, AVR16K, AVR4K}, ++ {"atmega128rfr2", AVR128K, AVR16K, AVR4K}, ++ + {"atxmega128a1", AVR136K, AVR8K, AVR2K}, + {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3", AVR136K, AVR8K, AVR2K}, +@@ -155,6 +161,9 @@ avr_device_t avr[] = + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, ++ ++ {"atmega64rfa2", AVR64K, AVR8K, AVR2K}, ++ {"atmega64rfr2", AVR64K, AVR8K, AVR2K}, + + {"at90can64", AVR64K, AVR4K, AVR2K}, + {"at90scr100", AVR64K, AVR4K, AVR2K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-06-24 16:23:14.000000000 +0530 ++++ gas/config/tc-avr.c 2011-06-24 16:08:14.000000000 +0530 +@@ -203,6 +203,8 @@ static struct mcu_type_s mcu_types[] = + {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega3290pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega64rfa2", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega64rfr2", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5}, +@@ -250,11 +252,15 @@ static struct mcu_type_s mcu_types[] = + {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1284p",AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega128rfa1",AVR_ISA_AVR51, bfd_mach_avr51}, ++ {"atmega128rfa2",AVR_ISA_AVR51, bfd_mach_avr51}, ++ {"atmega128rfr2",AVR_ISA_AVR51, bfd_mach_avr51}, + {"at90can128", AVR_ISA_AVR51, bfd_mach_avr51}, + {"at90usb1286",AVR_ISA_AVR51, bfd_mach_avr51}, + {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, ++ {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6}, ++ {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-06-24 16:23:14.000000000 +0530 ++++ gas/doc/c-avr.texi 2011-06-24 16:19:20.000000000 +0530 +@@ -68,22 +68,23 @@ memory space (MCU types: at90pwm161, atm + atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, + atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, + atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, +-atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, +-atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, +-atmega3290p, atmega3290pa, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p, +-atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a, +-atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a, +-atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, +-atmega16hvbrevb, atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, +-atmega16u4, atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, ++atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, ++atmega328, atmega328p,atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, ++atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64rfa2, atmega64rfr2, ++atmega64, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, ++atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649, ++atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve, ++atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb, ++atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, ++atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, + atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). + + Instruction set avr51 is for the enhanced AVR core with exactly 128K program + memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, +-atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000). ++atmega128rfa1, atmega128rfa2, atmega128rfr2, at90can128, at90usb1286, at90usb1287, m3000). + + Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types: +-atmega2560, atmega2561). ++atmega2560, atmega2561, atmega256rfa2, atmega256rfr2). + + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program + memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, diff --git a/415-binutils-2.20.1-atmega165pa.patch b/415-binutils-2.20.1-atmega165pa.patch new file mode 100644 index 0000000..57bdc2d --- /dev/null +++ b/415-binutils-2.20.1-atmega165pa.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:07:24.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:07:29.000000000 +0300 +@@ -254,6 +254,7 @@ avr_device_t avr[] = + {"atmega165a", AVR16K, AVR1K, AVR512}, + {"atmega165", AVR16K, AVR1K, AVR512}, + {"atmega165p", AVR16K, AVR1K, AVR512}, ++ {"atmega165pa", AVR16K, AVR1K, AVR512}, + {"atmega168", AVR16K, AVR1K, AVR512}, + {"atmega168a", AVR16K, AVR1K, AVR512}, + {"atmega168p", AVR16K, AVR1K, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:07:24.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:07:29.000000000 +0300 +@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega165pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:07:24.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:07:29.000000000 +0300 +@@ -65,7 +65,7 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3, + + Instruction set avr5 is for the enhanced AVR core with up to 128K program + memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162, +-atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168, ++atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, + atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, + atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, + atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, diff --git a/416-binutils-2.20.1-atxmega384c3.patch b/416-binutils-2.20.1-atxmega384c3.patch new file mode 100644 index 0000000..422ef75 --- /dev/null +++ b/416-binutils-2.20.1-atxmega384c3.patch @@ -0,0 +1,46 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:08:16.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:08:24.000000000 +0300 +@@ -108,6 +108,7 @@ static int return_code = 0; + #define AVR200K 204800UL + #define AVR256K 262144UL + #define AVR264K 270336UL ++#define AVR392K 401408UL + + typedef struct + { +@@ -119,6 +120,8 @@ typedef struct + + avr_device_t avr[] = + { ++ {"atxmega384c3", AVR392K, AVR32K, AVR4K}, ++ + {"atmega256rfa2", AVR256K, AVR32K, AVR8K}, + {"atmega256rfr2", AVR256K, AVR32K, AVR8K}, + +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:08:16.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:08:24.000000000 +0300 +@@ -286,6 +286,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:08:16.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:08:24.000000000 +0300 +@@ -104,9 +104,9 @@ atxmega64a1u). + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, + atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3, +-atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3). ++atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3). + +-Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program ++Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, + atxmega128a1u). + diff --git a/417-binutils-2.20.1-attiny80.patch b/417-binutils-2.20.1-attiny80.patch new file mode 100644 index 0000000..7fbcdf2 --- /dev/null +++ b/417-binutils-2.20.1-attiny80.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:10:37.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:10:56.000000000 +0300 +@@ -318,6 +318,7 @@ avr_device_t avr[] = + {"attiny461", AVR4K, AVR256, AVR256}, + {"attiny461a", AVR4K, AVR256, AVR256}, + {"attiny48", AVR4K, AVR256, AVR64}, ++ {"attiny80", AVR8K, AVR512, AVR256}, + + {"at86rf401", AVR2K, 224UL, AVR128}, + {"at90s2313", AVR2K, AVR128, AVR128}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:10:37.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:10:56.000000000 +0300 +@@ -130,6 +130,7 @@ static struct mcu_type_s mcu_types[] = + {"attiny43u", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny48", AVR_ISA_AVR25, bfd_mach_avr25}, + {"attiny88", AVR_ISA_AVR25, bfd_mach_avr25}, ++ {"attiny80", AVR_ISA_AVR25, bfd_mach_avr25}, + {"at86rf401", AVR_ISA_RF401, bfd_mach_avr25}, + {"ata6289", AVR_ISA_AVR25, bfd_mach_avr25}, + {"at43usb355", AVR_ISA_AVR3, bfd_mach_avr3}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:10:37.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:10:56.000000000 +0300 +@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ + attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a, + attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, + attiny461, attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, +-attiny88, at86rf401, ata6289). ++attiny88, attiny80, at86rf401, ata6289). + + Instruction set avr3 is for the classic AVR core with up to 128K program + memory space (MCU types: at43usb355, at76c711). diff --git a/418-binutils-2.20.1-atxmega128a4u.patch b/418-binutils-2.20.1-atxmega128a4u.patch new file mode 100644 index 0000000..9a01eb6 --- /dev/null +++ b/418-binutils-2.20.1-atxmega128a4u.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:11:30.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:11:38.000000000 +0300 +@@ -143,6 +143,7 @@ avr_device_t avr[] = + + {"atxmega128a1", AVR136K, AVR8K, AVR2K}, + {"atxmega128a1u", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128a4u", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3u", AVR136K, AVR8K, AVR2K}, + {"atxmega128b1", AVR136K, AVR8K, AVR2K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:11:30.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:11:38.000000000 +0300 +@@ -290,6 +290,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, ++ {"atxmega128a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, + {"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:11:30.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:11:38.000000000 +0300 +@@ -108,7 +108,7 @@ atxmega256a3u, atxmega256a3b, atxmega256 + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, +-atxmega128a1u). ++atxmega128a1u, atxmega128a4u). + + @cindex @code{-mall-opcodes} command line option, AVR + @item -mall-opcodes diff --git a/419-binutils-2.20.1-atxmega64d4.patch b/419-binutils-2.20.1-atxmega64d4.patch new file mode 100644 index 0000000..1097767 --- /dev/null +++ b/419-binutils-2.20.1-atxmega64d4.patch @@ -0,0 +1,36 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:12:22.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:12:30.000000000 +0300 +@@ -165,7 +165,8 @@ avr_device_t avr[] = + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, +- ++ {"atxmega64d4", AVR68K, AVR4K, AVR2K}, ++ + {"atmega64rfa2", AVR64K, AVR8K, AVR2K}, + {"atmega64rfr2", AVR64K, AVR8K, AVR2K}, + +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:12:22.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:12:30.000000000 +0300 +@@ -273,6 +273,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, ++ {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5}, + {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:12:22.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:12:30.000000000 +0300 +@@ -95,7 +95,7 @@ memory space and greater than 64K data s + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, +-atxmega64d3). ++atxmega64d3, atxmega64d4). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program + memory space and greater than 64K data space (MCU types: atxmega64a1, diff --git a/420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch b/420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch new file mode 100644 index 0000000..75a09f0 --- /dev/null +++ b/420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch @@ -0,0 +1,89 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-05 16:13:00.000000000 +0300 ++++ binutils/size.c 2011-09-05 16:13:06.000000000 +0300 +@@ -175,6 +175,7 @@ avr_device_t avr[] = + {"at90usb646", AVR64K, AVR4K, AVR2K}, + {"at90usb647", AVR64K, AVR4K, AVR2K}, + {"atmega64", AVR64K, AVR4K, AVR2K}, ++ {"atmega64a", AVR64K, AVR4K, AVR2K}, + {"atmega640", AVR64K, AVR8K, AVR4K}, + {"atmega644", AVR64K, AVR4K, AVR2K}, + {"atmega644a", AVR64K, AVR4K, AVR2K}, +@@ -207,6 +208,7 @@ avr_device_t avr[] = + {"at90can32", AVR32K, AVR2K, AVR1K}, + {"at94k", AVR32K, AVR4K, 0UL}, + {"atmega32", AVR32K, AVR2K, AVR1K}, ++ {"atmega32a", AVR32K, AVR2K, AVR1K}, + {"atmega323", AVR32K, AVR2K, AVR1K}, + {"atmega324a", AVR32K, AVR2K, AVR1K}, + {"atmega324p", AVR32K, AVR2K, AVR1K}, +@@ -256,6 +258,7 @@ avr_device_t avr[] = + {"atmega164", AVR16K, AVR1K, AVR512}, + {"atmega164a", AVR16K, AVR1K, AVR512}, + {"atmega164p", AVR16K, AVR1K, AVR512}, ++ {"atmega164pa", AVR16K, AVR1K, AVR512}, + {"atmega165a", AVR16K, AVR1K, AVR512}, + {"atmega165", AVR16K, AVR1K, AVR512}, + {"atmega165p", AVR16K, AVR1K, AVR512}, +@@ -263,6 +266,7 @@ avr_device_t avr[] = + {"atmega168", AVR16K, AVR1K, AVR512}, + {"atmega168a", AVR16K, AVR1K, AVR512}, + {"atmega168p", AVR16K, AVR1K, AVR512}, ++ {"atmega168pa", AVR16K, AVR1K, AVR512}, + {"atmega169", AVR16K, AVR1K, AVR512}, + {"atmega169a", AVR16K, AVR1K, AVR512}, + {"atmega169p", AVR16K, AVR1K, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-05 16:13:00.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-05 16:13:06.000000000 +0300 +@@ -170,6 +170,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega163", AVR_ISA_M161, bfd_mach_avr5}, + {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega164pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5}, +@@ -177,11 +178,13 @@ static struct mcu_type_s mcu_types[] = + {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega168pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169p", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega169pa",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega32a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega323", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5}, +@@ -208,6 +211,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega64rfa2", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega64rfr2", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5}, ++ {"atmega64a", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-05 16:13:00.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-05 16:13:06.000000000 +0300 +@@ -65,13 +65,13 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3, + + Instruction set avr5 is for the enhanced AVR core with up to 128K program + memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162, +-atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, +-atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, +-atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, ++atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, ++atmega168, atmega168a, atmega168p, atmega168pa, atmega169, atmega169p, atmega169pa, ++atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, + atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, + atmega328, atmega328p,atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, + atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64rfa2, atmega64rfr2, +-atmega64, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, ++atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, + atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649, + atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve, + atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb, diff --git a/421-binutils-2.20.1-atxmega64_128_b3.patch b/421-binutils-2.20.1-atxmega64_128_b3.patch new file mode 100644 index 0000000..0397c35 --- /dev/null +++ b/421-binutils-2.20.1-atxmega64_128_b3.patch @@ -0,0 +1,61 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-07 14:41:26.000000000 +0300 ++++ binutils/size.c 2011-09-07 14:55:58.000000000 +0300 +@@ -147,6 +147,7 @@ avr_device_t avr[] = + {"atxmega128a3", AVR136K, AVR8K, AVR2K}, + {"atxmega128a3u", AVR136K, AVR8K, AVR2K}, + {"atxmega128b1", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128b3", AVR136K, AVR8K, AVR2K}, + {"atxmega128d3", AVR136K, AVR8K, AVR2K}, + + {"at43usb320", AVR128K, 608UL, 0UL}, +@@ -164,6 +165,7 @@ avr_device_t avr[] = + {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64b3", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, + {"atxmega64d4", AVR68K, AVR4K, AVR2K}, + +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-07 14:41:26.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-07 14:55:58.000000000 +0300 +@@ -276,6 +276,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, ++ {"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5}, +@@ -283,6 +284,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-07 14:41:26.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-07 14:55:58.000000000 +0300 +@@ -95,7 +95,7 @@ memory space and greater than 64K data s + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, +-atxmega64d3, atxmega64d4). ++atxmega64b3, atxmega64d3, atxmega64d4). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program + memory space and greater than 64K data space (MCU types: atxmega64a1, +@@ -103,8 +103,8 @@ atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, +-atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3, +-atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3). ++atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, ++atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3). + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/422-binutils-2.20.1-atxmega64b1.patch b/422-binutils-2.20.1-atxmega64b1.patch new file mode 100644 index 0000000..a38f871 --- /dev/null +++ b/422-binutils-2.20.1-atxmega64b1.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-07 18:04:50.000000000 +0300 ++++ binutils/size.c 2011-09-07 18:11:50.000000000 +0300 +@@ -165,6 +165,7 @@ avr_device_t avr[] = + {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64b1", AVR68K, AVR4K, AVR2K}, + {"atxmega64b3", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, + {"atxmega64d4", AVR68K, AVR4K, AVR2K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-07 18:04:50.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-07 18:10:28.000000000 +0300 +@@ -276,6 +276,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, ++ {"atxmega64b1", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-07 18:04:50.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-07 18:12:34.000000000 +0300 +@@ -95,7 +95,7 @@ memory space and greater than 64K data s + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, +-atxmega64b3, atxmega64d3, atxmega64d4). ++atxmega64b1, atxmega64b3, atxmega64d3, atxmega64d4). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program + memory space and greater than 64K data space (MCU types: atxmega64a1, diff --git a/423-binutils-2.20.1-atmega_8a_128a_1284.patch b/423-binutils-2.20.1-atmega_8a_128a_1284.patch new file mode 100644 index 0000000..b69e7f0 --- /dev/null +++ b/423-binutils-2.20.1-atmega_8a_128a_1284.patch @@ -0,0 +1,65 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-08 17:12:34.000000000 +0300 ++++ binutils/size.c 2011-09-08 17:19:37.000000000 +0300 +@@ -155,8 +155,10 @@ avr_device_t avr[] = + {"at90usb1286", AVR128K, AVR8K, AVR4K}, + {"at90usb1287", AVR128K, AVR8K, AVR4K}, + {"atmega128", AVR128K, AVR4K, AVR4K}, ++ {"atmega128a", AVR128K, AVR4K, AVR4K}, + {"atmega1280", AVR128K, AVR8K, AVR4K}, + {"atmega1281", AVR128K, AVR8K, AVR4K}, ++ {"atmega1284", AVR128K, AVR16K, AVR4K}, + {"atmega1284p", AVR128K, AVR16K, AVR4K}, + {"atmega128rfa1", AVR128K, AVR16K, AVR4K}, + {"atmega103", AVR128K, 4000UL, AVR4K}, +@@ -296,6 +298,7 @@ avr_device_t avr[] = + {"at90usb82", AVR8K, AVR512, AVR512}, + {"ata6289", AVR8K, AVR512, 320UL}, + {"atmega8", AVR8K, AVR1K, AVR512}, ++ {"atmega8a", AVR8K, AVR1K, AVR512}, + {"atmega8515", AVR8K, AVR512, AVR512}, + {"atmega8535", AVR8K, AVR512, AVR512}, + {"atmega88", AVR8K, AVR1K, AVR512}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-08 17:12:34.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-08 17:17:16.000000000 +0300 +@@ -145,6 +145,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35}, + {"attiny1634", AVR_ISA_AVR35, bfd_mach_avr35}, + {"atmega8", AVR_ISA_M8, bfd_mach_avr4}, ++ {"atmega8a", AVR_ISA_M8, bfd_mach_avr4}, + {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4}, + {"atmega48pa", AVR_ISA_AVR4, bfd_mach_avr4}, +@@ -254,8 +255,10 @@ static struct mcu_type_s mcu_types[] = + {"at94k", AVR_ISA_94K, bfd_mach_avr5}, + {"m3000", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega128", AVR_ISA_AVR51, bfd_mach_avr51}, ++ {"atmega128a", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1280", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51}, ++ {"atmega1284", AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega1284p",AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega128rfa1",AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega128rfa2",AVR_ISA_AVR51, bfd_mach_avr51}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-08 17:12:34.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-08 17:23:11.000000000 +0300 +@@ -59,7 +59,7 @@ instructions (MCU types: attiny167, atti + atmega8u2, atmega16u2, atmega32u2). + + Instruction set avr4 is for the enhanced AVR core with up to 8K program +-memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8, ++memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8, atmega8a, + atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva, + at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81). + +@@ -80,7 +80,7 @@ atmega32c1, atmega64c1, atmega64m1, atme + atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). + + Instruction set avr51 is for the enhanced AVR core with exactly 128K program +-memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, ++memory space (MCU types: atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p, + atmega128rfa1, atmega128rfa2, atmega128rfr2, at90can128, at90usb1286, at90usb1287, m3000). + + Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types: diff --git a/424-binutils-2.20.1-atxmega64a4u.patch b/424-binutils-2.20.1-atxmega64a4u.patch new file mode 100644 index 0000000..9e04ba3 --- /dev/null +++ b/424-binutils-2.20.1-atxmega64a4u.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-12 14:15:53.000000000 +0300 ++++ binutils/size.c 2011-09-12 14:24:31.000000000 +0300 +@@ -167,6 +167,7 @@ avr_device_t avr[] = + {"atxmega64a1u", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3", AVR68K, AVR4K, AVR2K}, + {"atxmega64a3u", AVR68K, AVR4K, AVR2K}, ++ {"atxmega64a4u", AVR68K, AVR4K, AVR2K}, + {"atxmega64b1", AVR68K, AVR4K, AVR2K}, + {"atxmega64b3", AVR68K, AVR4K, AVR2K}, + {"atxmega64d3", AVR68K, AVR4K, AVR2K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-12 14:15:53.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-12 14:24:31.000000000 +0300 +@@ -279,6 +279,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, ++ {"atxmega64a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64b1", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, + {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-12 14:15:53.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-12 14:24:31.000000000 +0300 +@@ -95,7 +95,7 @@ memory space and greater than 64K data s + + Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program + memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, +-atxmega64b1, atxmega64b3, atxmega64d3, atxmega64d4). ++atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64d3, atxmega64d4). + + Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program + memory space and greater than 64K data space (MCU types: atxmega64a1, diff --git a/425-binutils-2.20.1-atxmega128d4.patch b/425-binutils-2.20.1-atxmega128d4.patch new file mode 100644 index 0000000..970be54 --- /dev/null +++ b/425-binutils-2.20.1-atxmega128d4.patch @@ -0,0 +1,37 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-15 11:59:56.000000000 +0300 ++++ binutils/size.c 2011-09-15 12:04:20.000000000 +0300 +@@ -149,6 +149,7 @@ avr_device_t avr[] = + {"atxmega128b1", AVR136K, AVR8K, AVR2K}, + {"atxmega128b3", AVR136K, AVR8K, AVR2K}, + {"atxmega128d3", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128d4", AVR136K, AVR8K, AVR2K}, + + {"at43usb320", AVR128K, 608UL, 0UL}, + {"at90can128", AVR128K, AVR4K, AVR4K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-15 11:59:56.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-15 12:04:20.000000000 +0300 +@@ -291,6 +291,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-15 11:59:56.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-15 12:04:20.000000000 +0300 +@@ -103,8 +103,9 @@ atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, +-atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, +-atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3). ++atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, ++atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, ++atxmega384c3). + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/426-binutils-2.20.1-atmxt336s.patch b/426-binutils-2.20.1-atmxt336s.patch new file mode 100644 index 0000000..72c40de --- /dev/null +++ b/426-binutils-2.20.1-atmxt336s.patch @@ -0,0 +1,50 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-09-15 16:09:26.000000000 +0300 ++++ binutils/size.c 2011-09-15 16:08:10.000000000 +0300 +@@ -95,12 +95,14 @@ static int return_code = 0; + #define AVR2K 2048UL + #define AVR4K 4096UL + #define AVR8K 8192UL ++#define AVR14K 14336UL + #define AVR16K 16384UL + #define AVR20K 20480UL + #define AVR24K 24576UL + #define AVR32K 32768UL + #define AVR36K 36864UL + #define AVR40K 40960UL ++#define AVR52K 53248UL + #define AVR64K 65536UL + #define AVR68K 69632UL + #define AVR128K 131072UL +@@ -204,6 +206,8 @@ avr_device_t avr[] = + {"atmega64hve", AVR64K, AVR4K, AVR1K}, + {"atmega64m1", AVR64K, AVR4K, AVR2K}, + {"m3000", AVR64K, AVR4K, 0UL}, ++ ++ {"atmxt336s", AVR52K, AVR14K, 0UL}, + + {"atmega406", AVR40K, AVR2K, AVR512}, + +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-09-15 16:09:26.000000000 +0300 ++++ gas/config/tc-avr.c 2011-09-15 16:08:10.000000000 +0300 +@@ -270,6 +270,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6}, ++ {"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-09-15 16:09:26.000000000 +0300 ++++ gas/doc/c-avr.texi 2011-09-15 16:08:10.000000000 +0300 +@@ -88,7 +88,7 @@ atmega2560, atmega2561, atmega256rfa2, a + + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program + memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, +-atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1). ++atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s). + + Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program + memory space and greater than 64K data space (MCU types: none). diff --git a/427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch b/427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch new file mode 100644 index 0000000..6c86c7e --- /dev/null +++ b/427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch @@ -0,0 +1,92 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-11-02 17:21:35.000000000 +0530 ++++ binutils/size.c 2011-11-02 17:32:40.000000000 +0530 +@@ -131,6 +131,7 @@ avr_device_t avr[] = + {"atxmega256a3u", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3b", AVR264K, AVR16K, AVR4K}, + {"atxmega256a3bu",AVR264K, AVR16K, AVR4K}, ++ {"atxmega256c3", AVR264K, AVR16K, AVR4K}, + {"atxmega256d3", AVR264K, AVR16K, AVR4K}, + + {"atmega2560", AVR256K, AVR8K, AVR4K}, +@@ -150,6 +151,7 @@ avr_device_t avr[] = + {"atxmega128a3u", AVR136K, AVR8K, AVR2K}, + {"atxmega128b1", AVR136K, AVR8K, AVR2K}, + {"atxmega128b3", AVR136K, AVR8K, AVR2K}, ++ {"atxmega128c3", AVR136K, AVR8K, AVR2K}, + {"atxmega128d3", AVR136K, AVR8K, AVR2K}, + {"atxmega128d4", AVR136K, AVR8K, AVR2K}, + +@@ -213,6 +215,7 @@ avr_device_t avr[] = + + {"atxmega32a4", AVR36K, AVR4K, AVR1K}, + {"atxmega32a4u", AVR36K, AVR4K, AVR1K}, ++ {"atxmega32c4", AVR36K, AVR4K, AVR1K}, + {"atxmega32d4", AVR36K, AVR4K, AVR1K}, + {"atxmega32x1", AVR36K, AVR2K, AVR1K}, + +@@ -254,6 +257,7 @@ avr_device_t avr[] = + + {"atxmega16a4", AVR20K, AVR2K, AVR1K}, + {"atxmega16a4u", AVR20K, AVR2K, AVR1K}, ++ {"atxmega16c4", AVR20K, AVR2K, AVR1K}, + {"atxmega16d4", AVR20K, AVR2K, AVR1K}, + + {"at76c711", AVR16K, AVR2K, 0UL}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-11-02 17:21:35.000000000 +0530 ++++ gas/config/tc-avr.c 2011-11-02 17:25:47.000000000 +0530 +@@ -273,9 +273,11 @@ static struct mcu_type_s mcu_types[] = + {"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega16c4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atxmega32c4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4}, +@@ -291,6 +293,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega128c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +@@ -300,6 +303,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6}, ++ {"atxmega256c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-11-02 17:21:35.000000000 +0530 ++++ gas/doc/c-avr.texi 2011-11-02 17:38:30.000000000 +0530 +@@ -88,7 +88,8 @@ atmega2560, atmega2561, atmega256rfa2, a + + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program + memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, +-atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s). ++atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4, ++atxmega32x1, atmxt336s). + + Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program + memory space and greater than 64K data space (MCU types: none). +@@ -103,9 +104,9 @@ atxmega64a1u). + + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, +-atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, +-atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, +-atxmega384c3). ++atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, ++atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, ++atxmega256c3, atxmega256d3, atxmega384c3). + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/428-binutils-2.20.1-atxmega384d3.patch b/428-binutils-2.20.1-atxmega384d3.patch new file mode 100644 index 0000000..969482d --- /dev/null +++ b/428-binutils-2.20.1-atxmega384d3.patch @@ -0,0 +1,43 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-11-08 14:48:07.000000000 +0530 ++++ binutils/size.c 2011-11-08 14:50:07.000000000 +0530 +@@ -110,6 +110,7 @@ static int return_code = 0; + #define AVR200K 204800UL + #define AVR256K 262144UL + #define AVR264K 270336UL ++#define AVR384K 393216UL + #define AVR392K 401408UL + + typedef struct +@@ -123,6 +124,8 @@ typedef struct + avr_device_t avr[] = + { + {"atxmega384c3", AVR392K, AVR32K, AVR4K}, ++ ++ {"atxmega384d3", AVR384K, AVR16K, AVR4K}, + + {"atmega256rfa2", AVR256K, AVR32K, AVR8K}, + {"atmega256rfr2", AVR256K, AVR32K, AVR8K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-11-08 14:48:07.000000000 +0530 ++++ gas/config/tc-avr.c 2011-11-08 14:50:07.000000000 +0530 +@@ -306,6 +306,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega256c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega384d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, + {"atxmega128a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega7}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-11-08 14:48:07.000000000 +0530 ++++ gas/doc/c-avr.texi 2011-11-08 14:55:04.000000000 +0530 +@@ -106,7 +106,7 @@ Instruction set avrxmega6 is for the XME + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, + atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, + atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, +-atxmega256c3, atxmega256d3, atxmega384c3). ++atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program + memory space and greater than 64K data space (MCU types: atxmega128a1, diff --git a/429-binutils-2.20.1-atmega48hvf.patch b/429-binutils-2.20.1-atmega48hvf.patch new file mode 100644 index 0000000..63bdb44 --- /dev/null +++ b/429-binutils-2.20.1-atmega48hvf.patch @@ -0,0 +1,42 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-11-16 13:02:43.000000000 +0530 ++++ binutils/size.c 2011-11-16 15:28:08.000000000 +0530 +@@ -102,6 +102,7 @@ static int return_code = 0; + #define AVR32K 32768UL + #define AVR36K 36864UL + #define AVR40K 40960UL ++#define AVR48K 49152UL + #define AVR52K 53248UL + #define AVR64K 65536UL + #define AVR68K 69632UL +@@ -332,6 +333,7 @@ avr_device_t avr[] = + {"at90s4433", AVR4K, AVR128, AVR256}, + {"at90s4434", AVR4K, 352UL, AVR256}, + {"atmega48", AVR4K, AVR512, AVR256}, ++ {"atmega48hvf", AVR48K, AVR2K, AVR1K}, + {"atmega48a", AVR4K, AVR512, AVR256}, + {"atmega48pa", AVR4K, AVR512, AVR256}, + {"atmega48p", AVR4K, AVR512, AVR256}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-11-16 13:02:43.000000000 +0530 ++++ gas/config/tc-avr.c 2011-11-16 14:39:15.000000000 +0530 +@@ -237,6 +237,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, + {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, ++ {"atmega48hvf",AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90can64" , AVR_ISA_AVR5, bfd_mach_avr5}, + {"at90pwm216", AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-11-16 13:02:43.000000000 +0530 ++++ gas/doc/c-avr.texi 2011-11-16 15:31:23.000000000 +0530 +@@ -75,7 +75,7 @@ atmega64, atmega64a, atmega640, atmega64 + atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649, + atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve, + atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb, +-atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, ++atmega32hvbrevb, atmega48hvf, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, + atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, + atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). + diff --git a/430-binutils-2.20.1-atmega26hvg.patch b/430-binutils-2.20.1-atmega26hvg.patch new file mode 100644 index 0000000..e445de0 --- /dev/null +++ b/430-binutils-2.20.1-atmega26hvg.patch @@ -0,0 +1,43 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2011-12-08 14:07:10.000000000 +0530 ++++ binutils/size.c 2011-12-14 18:26:08.000000000 +0530 +@@ -99,6 +99,7 @@ static int return_code = 0; + #define AVR16K 16384UL + #define AVR20K 20480UL + #define AVR24K 24576UL ++#define AVR26K 26624UL + #define AVR32K 32768UL + #define AVR36K 36864UL + #define AVR40K 40960UL +@@ -257,6 +258,8 @@ avr_device_t avr[] = + {"atmega32u4", AVR32K, 2560UL, AVR1K}, + {"atmega32u6", AVR32K, 2560UL, AVR1K}, + ++ {"atmega26hvg", AVR26K, AVR1K, AVR512}, ++ + {"at43usb355", AVR24K, 1120UL, 0UL}, + + {"atxmega16a4", AVR20K, AVR2K, AVR1K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2011-12-08 14:07:10.000000000 +0530 ++++ gas/config/tc-avr.c 2011-12-08 14:08:31.000000000 +0530 +@@ -235,6 +235,7 @@ static struct mcu_type_s mcu_types[] = + {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, ++ {"atmega26hvg",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5}, + {"atmega48hvf",AVR_ISA_AVR5, bfd_mach_avr5}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2011-12-08 14:07:10.000000000 +0530 ++++ gas/doc/c-avr.texi 2011-12-08 14:13:40.000000000 +0530 +@@ -74,7 +74,7 @@ atmega3290a, atmega3290p, atmega3290pa, + atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, + atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649, + atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve, +-atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb, ++atmega16hva, atmega16hva2, atmega16hvb, atmega26hvg, atmega32hvb, atmega16hvbrevb, + atmega32hvbrevb, atmega48hvf, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, + atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, + atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100). diff --git a/431-binutils-2.20.1-atmxt224_224e.patch b/431-binutils-2.20.1-atmxt224_224e.patch new file mode 100644 index 0000000..6952bfa --- /dev/null +++ b/431-binutils-2.20.1-atmxt224_224e.patch @@ -0,0 +1,44 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2012-01-18 12:59:34.000000000 +0530 ++++ binutils/size.c 2012-01-18 12:58:46.000000000 +0530 +@@ -95,6 +95,7 @@ static int return_code = 0; + #define AVR2K 2048UL + #define AVR4K 4096UL + #define AVR8K 8192UL ++#define AVR9K 9216UL + #define AVR14K 14336UL + #define AVR16K 16384UL + #define AVR20K 20480UL +@@ -218,6 +219,8 @@ avr_device_t avr[] = + + {"atmega406", AVR40K, AVR2K, AVR512}, + ++ {"atmxt224", AVR36K, AVR9K, 0UL}, ++ {"atmxt224e", AVR36K, AVR9K, 0UL}, + {"atxmega32a4", AVR36K, AVR4K, AVR1K}, + {"atxmega32a4u", AVR36K, AVR4K, AVR1K}, + {"atxmega32c4", AVR36K, AVR4K, AVR1K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2012-01-18 12:59:34.000000000 +0530 ++++ gas/config/tc-avr.c 2012-01-18 12:58:46.000000000 +0530 +@@ -272,6 +272,8 @@ static struct mcu_type_s mcu_types[] = + {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6}, + {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6}, ++ {"atmxt224", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, ++ {"atmxt224e", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2}, + {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2012-01-18 12:59:34.000000000 +0530 ++++ gas/doc/c-avr.texi 2012-01-18 13:02:14.000000000 +0530 +@@ -89,7 +89,7 @@ atmega2560, atmega2561, atmega256rfa2, a + Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program + memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, + atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4, +-atxmega32x1, atmxt336s). ++atxmega32x1, atmxt224, atmxt224e, atmxt336s). + + Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program + memory space and greater than 64K data space (MCU types: none). diff --git a/431-binutils-2.20.1-atxmega192c3.patch b/431-binutils-2.20.1-atxmega192c3.patch new file mode 100644 index 0000000..0095732 --- /dev/null +++ b/431-binutils-2.20.1-atxmega192c3.patch @@ -0,0 +1,34 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2012-01-18 19:44:42.000000000 +0530 ++++ binutils/size.c 2012-01-23 13:58:59.000000000 +0530 +@@ -144,6 +144,7 @@ avr_device_t avr[] = + + {"atxmega192a3", AVR200K, AVR16K, AVR2K}, + {"atxmega192a3u", AVR200K, AVR16K, AVR2K}, ++ {"atxmega192c3", AVR200K, AVR16K, AVR2K}, + {"atxmega192d3", AVR200K, AVR16K, AVR2K}, + + {"atmega128rfa2", AVR128K, AVR16K, AVR4K}, +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2012-01-18 19:44:41.000000000 +0530 ++++ gas/config/tc-avr.c 2012-01-18 18:53:03.000000000 +0530 +@@ -300,6 +300,7 @@ static struct mcu_type_s mcu_types[] = + {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, ++ {"atxmega192c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6}, + {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6}, +diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi +--- gas/doc/c-avr.texi 2012-01-18 19:44:41.000000000 +0530 ++++ gas/doc/c-avr.texi 2012-01-18 18:59:24.000000000 +0530 +@@ -105,7 +105,7 @@ atxmega64a1u). + Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program + memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u, + atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, +-atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, ++atxmega128b3, ,atxmega192c3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, + atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3). + + Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program diff --git a/500-binutils-2.20.1-bug13789.patch b/500-binutils-2.20.1-bug13789.patch new file mode 100644 index 0000000..c46fb05 --- /dev/null +++ b/500-binutils-2.20.1-bug13789.patch @@ -0,0 +1,377 @@ +diff -rupN bfd/archures.c bfd/archures.c +--- bfd/archures.c 2011-05-11 20:06:37.000000000 -0500 ++++ bfd/archures.c 2011-05-10 13:35:37.000000000 -0500 +@@ -368,6 +368,7 @@ DESCRIPTION + .#define bfd_mach_avr5 5 + .#define bfd_mach_avr51 51 + .#define bfd_mach_avr6 6 ++.#define bfd_mach_avrtiny10 100 + .#define bfd_mach_avrxmega1 101 + .#define bfd_mach_avrxmega2 102 + .#define bfd_mach_avrxmega3 103 +@@ -375,7 +376,6 @@ DESCRIPTION + .#define bfd_mach_avrxmega5 105 + .#define bfd_mach_avrxmega6 106 + .#define bfd_mach_avrxmega7 107 +-.#define bfd_mach_avrtiny10 201 + . bfd_arch_bfin, {* ADI Blackfin *} + .#define bfd_mach_bfin 1 + . bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *} +diff -rupN bfd/bfd-in2.h bfd/bfd-in2.h +--- bfd/bfd-in2.h 2011-05-11 20:06:39.000000000 -0500 ++++ bfd/bfd-in2.h 2011-05-10 13:35:37.000000000 -0500 +@@ -2042,6 +2042,7 @@ enum bfd_architecture + #define bfd_mach_avr5 5 + #define bfd_mach_avr51 51 + #define bfd_mach_avr6 6 ++#define bfd_mach_avrtiny10 100 + #define bfd_mach_avrxmega1 101 + #define bfd_mach_avrxmega2 102 + #define bfd_mach_avrxmega3 103 +@@ -2049,7 +2050,6 @@ enum bfd_architecture + #define bfd_mach_avrxmega5 105 + #define bfd_mach_avrxmega6 106 + #define bfd_mach_avrxmega7 107 +-#define bfd_mach_avrtiny10 201 + bfd_arch_bfin, /* ADI Blackfin */ + #define bfd_mach_bfin 1 + bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ +diff -rupN bfd/cpu-avr.c bfd/cpu-avr.c +--- bfd/cpu-avr.c 2011-05-11 20:06:41.000000000 -0500 ++++ bfd/cpu-avr.c 2011-05-10 13:35:37.000000000 -0500 +@@ -135,29 +135,29 @@ static const bfd_arch_info_type arch_inf + /* 3-Byte PC. */ + N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]), + ++ /* attiny 10 */ ++ N (16, bfd_mach_avrtiny10, "avr:100", FALSE, & arch_info_struct[11]), ++ + /* Xmega 1 */ +- N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]), ++ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]), + + /* Xmega 2 */ +- N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]), ++ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]), + + /* Xmega 3 */ +- N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]), ++ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]), + + /* Xmega 4 */ +- N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]), ++ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]), + + /* Xmega 5 */ +- N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]), ++ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]), + + /* Xmega 6 */ +- N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]), ++ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]), + + /* Xmega 7 */ +- N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]), +- +- /* attiny 10 */ +- N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL) ++ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL) + + }; + +diff -rupN include/elf/avr.h include/elf/avr.h +--- include/elf/avr.h 2011-05-11 20:06:42.000000000 -0500 ++++ include/elf/avr.h 2011-05-10 13:35:37.000000000 -0500 +@@ -40,6 +40,7 @@ + #define E_AVR_MACH_AVR5 5 + #define E_AVR_MACH_AVR51 51 + #define E_AVR_MACH_AVR6 6 ++#define E_AVR_MACH_AVRTINY10 100 + #define E_AVR_MACH_XMEGA1 101 + #define E_AVR_MACH_XMEGA2 102 + #define E_AVR_MACH_XMEGA3 103 +@@ -47,7 +48,6 @@ + #define E_AVR_MACH_XMEGA5 105 + #define E_AVR_MACH_XMEGA6 106 + #define E_AVR_MACH_XMEGA7 107 +-#define E_AVR_MACH_AVRTINY10 201 + + /* Relocations. */ + START_RELOC_NUMBERS (elf_avr_reloc_type) +diff -rupN ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh +--- ld/emulparams/avrtiny10.sh 2011-05-11 20:06:44.000000000 -0500 ++++ ld/emulparams/avrtiny10.sh 2011-05-10 13:39:44.000000000 -0500 +@@ -1,12 +1,13 @@ +-ARCH=avr:201 ++ARCH=avr:100 + MACHINE= +-SCRIPT_NAME=avr ++SCRIPT_NAME=avrtiny10 + OUTPUT_FORMAT="elf32-avr" + MAXPAGESIZE=1 + EMBEDDED=yes + TEMPLATE_NAME=elf32 + ++TEXT_ORIGIN=0x0 + TEXT_LENGTH=4K +-DATA_ORIGIN=0x800040 +-DATA_LENGTH=0x140 ++DATA_ORIGIN=0x0800040 ++DATA_LENGTH=0x100 + EXTRA_EM_FILE=avrelf +diff -rupN ld/Makefile.am ld/Makefile.am +--- ld/Makefile.am 2011-05-11 20:06:47.000000000 -0500 ++++ ld/Makefile.am 2011-05-10 13:35:37.000000000 -0500 +@@ -764,7 +764,7 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" + eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \ +- $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avrtiny10.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrtiny10 "$(tdir_avr2)" + ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ +diff -rupN ld/scripttempl/avrtiny10.sc ld/scripttempl/avrtiny10.sc +--- ld/scripttempl/avrtiny10.sc 1969-12-31 18:00:00.000000000 -0600 ++++ ld/scripttempl/avrtiny10.sc 2011-05-10 13:35:37.000000000 -0500 +@@ -0,0 +1,240 @@ ++cat < text} ++ ++ .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} ++ { ++ ${RELOCATING+ PROVIDE (__data_start = .) ; } ++ *(.data) ++ *(.data*) ++ *(.rodata) /* We need to include .rodata here if gcc is used */ ++ *(.rodata*) /* with -fdata-sections. */ ++ *(.gnu.linkonce.d*) ++ ${RELOCATING+. = ALIGN(2);} ++ ${RELOCATING+ _edata = . ; } ++ ${RELOCATING+ PROVIDE (__data_end = .) ; } ++ } ${RELOCATING+ > data} ++ ++ .bss ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))} ++ { ++ ${RELOCATING+ PROVIDE (__bss_start = .) ; } ++ *(.bss) ++ *(.bss*) ++ *(COMMON) ++ ${RELOCATING+ PROVIDE (__bss_end = .) ; } ++ } ${RELOCATING+ > data} ++ ++ ${RELOCATING+ __data_load_start = LOADADDR(.data); } ++ ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); } ++ ++ /* Global data not cleared after reset. */ ++ .noinit ${RELOCATING-0}: ++ { ++ ${RELOCATING+ PROVIDE (__noinit_start = .) ; } ++ *(.noinit*) ++ ${RELOCATING+ PROVIDE (__noinit_end = .) ; } ++ ${RELOCATING+ _end = . ; } ++ ${RELOCATING+ PROVIDE (__heap_start = .) ; } ++ } ${RELOCATING+ > data} ++ ++ .lock ${RELOCATING-0}: ++ { ++ KEEP(*(.lock*)) ++ } ${RELOCATING+ > lock} ++ ++ .signature ${RELOCATING-0}: ++ { ++ KEEP(*(.signature*)) ++ } ${RELOCATING+ > signature} ++ ++ /* Stabs debugging sections. */ ++ .stab 0 : { *(.stab) } ++ .stabstr 0 : { *(.stabstr) } ++ .stab.excl 0 : { *(.stab.excl) } ++ .stab.exclstr 0 : { *(.stab.exclstr) } ++ .stab.index 0 : { *(.stab.index) } ++ .stab.indexstr 0 : { *(.stab.indexstr) } ++ .comment 0 : { *(.comment) } ++ ++ /* DWARF debug sections. ++ Symbols in the DWARF debugging sections are relative to the beginning ++ of the section so we begin them at 0. */ ++ ++ /* DWARF 1 */ ++ .debug 0 : { *(.debug) } ++ .line 0 : { *(.line) } ++ ++ /* GNU DWARF 1 extensions */ ++ .debug_srcinfo 0 : { *(.debug_srcinfo) } ++ .debug_sfnames 0 : { *(.debug_sfnames) } ++ ++ /* DWARF 1.1 and DWARF 2 */ ++ .debug_aranges 0 : { *(.debug_aranges) } ++ .debug_pubnames 0 : { *(.debug_pubnames) } ++ ++ /* DWARF 2 */ ++ .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } ++ .debug_abbrev 0 : { *(.debug_abbrev) } ++ .debug_line 0 : { *(.debug_line) } ++ .debug_frame 0 : { *(.debug_frame) } ++ .debug_str 0 : { *(.debug_str) } ++ .debug_loc 0 : { *(.debug_loc) } ++ .debug_macinfo 0 : { *(.debug_macinfo) } ++} ++EOF ++ diff --git a/501-binutils-2.20.1-bug13113.patch b/501-binutils-2.20.1-bug13113.patch new file mode 100644 index 0000000..d79bdc5 --- /dev/null +++ b/501-binutils-2.20.1-bug13113.patch @@ -0,0 +1,114 @@ +diff -Naurp binutils/size.c binutils/size.c +--- binutils/size.c 2012-01-24 12:19:53.000000000 +0530 ++++ binutils/size.c 2012-01-24 12:17:26.000000000 +0530 +@@ -402,6 +402,7 @@ usage (FILE *stream, int status) + fprintf (stream, _(" The options are:\n\ + -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\ + --mcu= MCU name for AVR format only\n\ ++ --mlist-devices List all supported MCUs\n\ + -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\ + -t --totals Display the total sizes (Berkeley only)\n\ + --common Display total size for *COM* syms\n\ +@@ -422,6 +423,7 @@ FORMAT_NAME + #define OPTION_RADIX (OPTION_FORMAT + 1) + #define OPTION_TARGET (OPTION_RADIX + 1) + #define OPTION_MCU (OPTION_TARGET + 1) ++#define OPTION_MLIST_DEVICES (OPTION_MCU + 1) + + static struct option long_options[] = + { +@@ -430,12 +432,37 @@ static struct option long_options[] = + {"radix", required_argument, 0, OPTION_RADIX}, + {"target", required_argument, 0, OPTION_TARGET}, + {"mcu", required_argument, 0, 203}, ++ {"mlist-devices", no_argument, 0, OPTION_MLIST_DEVICES}, + {"totals", no_argument, &show_totals, 1}, + {"version", no_argument, &show_version, 1}, + {"help", no_argument, &show_help, 1}, + {0, no_argument, 0, 0} + }; + ++static void list_supported_devices (FILE *stream, int status) ++{ ++ unsigned int i ; ++ int llen = 0; ++ fprintf (stream, _("List of supported devices:\n")); ++ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++) ++ { ++ int slen = strlen(avr[i].name); ++ llen += slen + 1 ; ++ if (llen < 75) ++ { ++ fprintf (stream, _(" %s"), avr[i].name); ++ } ++ else ++ { ++ fprintf (stream, _("\n %s"), avr[i].name); ++ llen = slen + 2 ; ++ } ++ } ++ fprintf (stream, "\n"); ++ ++ exit (status); ++} ++ + int main (int, char **); + + int +@@ -490,6 +517,10 @@ main (int argc, char **argv) + avrmcu = optarg; + break; + ++ case OPTION_MLIST_DEVICES: ++ list_supported_devices (stdout, 1); ++ break; ++ + case OPTION_TARGET: + target = optarg; + break; +diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c +--- gas/config/tc-avr.c 2012-01-24 12:19:53.000000000 +0530 ++++ gas/config/tc-avr.c 2012-01-24 12:17:26.000000000 +0530 +@@ -392,7 +392,8 @@ static struct hash_control *avr_mod_hash + #define OPTION_MMCU 'm' + enum options + { +- OPTION_ALL_OPCODES = OPTION_MD_BASE + 1, ++ OPTION_MLIST_DEVICES = OPTION_MD_BASE + 1, ++ OPTION_ALL_OPCODES, + OPTION_NO_SKIP_BUG, + OPTION_NO_WRAP + }; +@@ -400,6 +401,7 @@ enum options + struct option md_longopts[] = + { + { "mmcu", required_argument, NULL, OPTION_MMCU }, ++ { "mlist-devices", no_argument, NULL, OPTION_MLIST_DEVICES }, + { "mall-opcodes", no_argument, NULL, OPTION_ALL_OPCODES }, + { "mno-skip-bug", no_argument, NULL, OPTION_NO_SKIP_BUG }, + { "mno-wrap", no_argument, NULL, OPTION_NO_WRAP }, +@@ -504,12 +506,12 @@ md_show_usage (FILE *stream) + " avrtiny10 - tiny devices with 16 gp registers\n" + " or immediate microcontroller name.\n")); + fprintf (stream, +- _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" ++ _(" -mlist-devices list all supported devices\n" ++ " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" + " -mno-skip-bug disable warnings for skipping two-word instructions\n" + " (default for avr4, avr5)\n" + " -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n" + " (default for avr3, avr5)\n")); +- show_mcu_list (stream); + } + + static void +@@ -561,6 +563,9 @@ md_parse_option (int c, char *arg) + avr_mcu->name, mcu_types[i].name); + return 1; + } ++ case OPTION_MLIST_DEVICES: ++ show_mcu_list(stdout); ++ exit (EXIT_SUCCESS); + case OPTION_ALL_OPCODES: + avr_opt.all_opcodes = 1; + return 1; diff --git a/crossavr-binutils.spec b/crossavr-binutils.spec index 2461897..e0ae847 100644 --- a/crossavr-binutils.spec +++ b/crossavr-binutils.spec @@ -5,16 +5,55 @@ Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla AVR - binutils Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - AVR binutils Summary(tr.UTF-8): GNU geliştirme araçları - AVR binutils Name: crossavr-binutils -Version: 2.21 +Version: 2.20.1 Release: 1 +Epoch: 1 +# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.3.1.481. +Patch100: 300-binutils-2.20.1-avr-size.patch +Patch101: 301-binutils-2.20.1-avr-coff.patch +Patch102: 302-binutils-2.20.1-new-sections.patch +Patch103: 303-binutils-2.20.1-as-dwarf.patch +Patch104: 304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch +Patch105: 305-binutils-2.20.1-assembler-options.patch +Patch106: 400-binutils-2.20.1-xmega.patch +Patch107: 401-binutils-2.20.1-new-devices.patch +Patch108: 402-binutils-2.20.1-avrtiny10.patch +Patch109: 403-binutils-2.20.1-xmega128a1u-64a1u.patch +Patch110: 404-binutils-2.20.1-atxmega32x1.patch +Patch111: 405-binutils-2.20.1-atxmega128b1.patch +Patch112: 406-binutils-2.20.1-atxmega256a3bu.patch +Patch113: 407-binutils-2.20.1-at90pwm161.patch +Patch114: 408-binutils-2.20.1-atmega16hvb-32hvb.patch +Patch115: 409-binutils-2.20.1-atmega32_5_50_90_pa.patch +Patch116: 410-binutils-2.20.1-attiny1634.patch +Patch117: 411-binutils-2.20.1-atmega48pa.patch +Patch118: 412-binutils-2.20.1-atxmega_16_32_a4u.patch +Patch119: 413-binutils-2.20.1-atxmega64_128_192_256a3u.patch +Patch120: 414-binutils-2.20.1-atmegarfr2_a2.patch +Patch121: 415-binutils-2.20.1-atmega165pa.patch +Patch122: 416-binutils-2.20.1-atxmega384c3.patch +Patch123: 417-binutils-2.20.1-attiny80.patch +Patch124: 418-binutils-2.20.1-atxmega128a4u.patch +Patch125: 419-binutils-2.20.1-atxmega64d4.patch +Patch126: 420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch +Patch127: 421-binutils-2.20.1-atxmega64_128_b3.patch +Patch128: 422-binutils-2.20.1-atxmega64b1.patch +Patch129: 423-binutils-2.20.1-atmega_8a_128a_1284.patch +Patch130: 424-binutils-2.20.1-atxmega64a4u.patch +Patch131: 425-binutils-2.20.1-atxmega128d4.patch +Patch132: 426-binutils-2.20.1-atmxt336s.patch +Patch133: 427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch +Patch134: 428-binutils-2.20.1-atxmega384d3.patch +Patch135: 429-binutils-2.20.1-atmega48hvf.patch +Patch136: 430-binutils-2.20.1-atmega26hvg.patch +Patch137: 431-binutils-2.20.1-atmxt224_224e.patch +Patch138: 431-binutils-2.20.1-atxmega192c3.patch +Patch139: 500-binutils-2.20.1-bug13789.patch +Patch140: 501-binutils-2.20.1-bug13113.patch License: GPL Group: Development/Tools Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2 -# Source0-md5: c84c5acc9d266f1a7044b51c85a823f5 -Patch0: %{name}-avr-size.patch -Patch1: %{name}-avr-coff.patch -Patch2: %{name}-new-sections.patch -Patch3: %{name}-xmega.patch +# Source0-md5: 2b9dc8f2b7dbd5ec5992c6e29de0b764 URL: http://sources.redhat.com/binutils/ BuildRequires: automake BuildRequires: bash @@ -57,10 +96,47 @@ Ten pakiet zawiera wersję skrośną generującą kod dla Atmel AVR. %prep %setup -q -n binutils-%{version} -%patch0 -p0 -%patch1 -p1 -%patch2 -p0 -%patch3 -p1 +%patch100 -p0 +%patch101 -p0 +%patch102 -p0 +%patch103 -p0 +%patch104 -p0 +%patch105 -p0 +%patch106 -p0 +%patch107 -p0 +%patch108 -p0 +%patch109 -p0 +%patch110 -p0 +%patch111 -p0 +%patch112 -p0 +%patch113 -p0 +%patch114 -p0 +%patch115 -p0 +%patch116 -p0 +%patch117 -p0 +%patch118 -p0 +%patch119 -p0 +%patch120 -p0 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 %build cp /usr/share/automake/config.sub . @@ -74,6 +150,7 @@ sparc32 \ %endif ./configure \ --disable-shared \ + --disable-werror \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ -- 2.43.0