]> git.pld-linux.org Git - packages/crossavr-binutils.git/commitdiff
- synchronized patches with Atmel official AVR8-GNU toolchain.
authorkosmo <kosmo@pld-linux.org>
Sun, 19 Feb 2012 20:52:06 +0000 (20:52 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- 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

42 files changed:
300-binutils-2.20.1-avr-size.patch [moved from crossavr-binutils-avr-size.patch with 66% similarity]
301-binutils-2.20.1-avr-coff.patch [moved from crossavr-binutils-avr-coff.patch with 95% similarity]
302-binutils-2.20.1-new-sections.patch [moved from crossavr-binutils-new-sections.patch with 88% similarity]
303-binutils-2.20.1-as-dwarf.patch [new file with mode: 0644]
304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch [new file with mode: 0644]
305-binutils-2.20.1-assembler-options.patch [new file with mode: 0644]
400-binutils-2.20.1-xmega.patch [moved from crossavr-binutils-xmega.patch with 74% similarity]
401-binutils-2.20.1-new-devices.patch [new file with mode: 0644]
402-binutils-2.20.1-avrtiny10.patch [new file with mode: 0644]
403-binutils-2.20.1-xmega128a1u-64a1u.patch [new file with mode: 0644]
404-binutils-2.20.1-atxmega32x1.patch [new file with mode: 0644]
405-binutils-2.20.1-atxmega128b1.patch [new file with mode: 0644]
406-binutils-2.20.1-atxmega256a3bu.patch [new file with mode: 0644]
407-binutils-2.20.1-at90pwm161.patch [new file with mode: 0644]
408-binutils-2.20.1-atmega16hvb-32hvb.patch [new file with mode: 0644]
409-binutils-2.20.1-atmega32_5_50_90_pa.patch [new file with mode: 0644]
410-binutils-2.20.1-attiny1634.patch [new file with mode: 0644]
411-binutils-2.20.1-atmega48pa.patch [new file with mode: 0644]
412-binutils-2.20.1-atxmega_16_32_a4u.patch [new file with mode: 0644]
413-binutils-2.20.1-atxmega64_128_192_256a3u.patch [new file with mode: 0644]
414-binutils-2.20.1-atmegarfr2_a2.patch [new file with mode: 0644]
415-binutils-2.20.1-atmega165pa.patch [new file with mode: 0644]
416-binutils-2.20.1-atxmega384c3.patch [new file with mode: 0644]
417-binutils-2.20.1-attiny80.patch [new file with mode: 0644]
418-binutils-2.20.1-atxmega128a4u.patch [new file with mode: 0644]
419-binutils-2.20.1-atxmega64d4.patch [new file with mode: 0644]
420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch [new file with mode: 0644]
421-binutils-2.20.1-atxmega64_128_b3.patch [new file with mode: 0644]
422-binutils-2.20.1-atxmega64b1.patch [new file with mode: 0644]
423-binutils-2.20.1-atmega_8a_128a_1284.patch [new file with mode: 0644]
424-binutils-2.20.1-atxmega64a4u.patch [new file with mode: 0644]
425-binutils-2.20.1-atxmega128d4.patch [new file with mode: 0644]
426-binutils-2.20.1-atmxt336s.patch [new file with mode: 0644]
427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch [new file with mode: 0644]
428-binutils-2.20.1-atxmega384d3.patch [new file with mode: 0644]
429-binutils-2.20.1-atmega48hvf.patch [new file with mode: 0644]
430-binutils-2.20.1-atmega26hvg.patch [new file with mode: 0644]
431-binutils-2.20.1-atmxt224_224e.patch [new file with mode: 0644]
431-binutils-2.20.1-atxmega192c3.patch [new file with mode: 0644]
500-binutils-2.20.1-bug13789.patch [new file with mode: 0644]
501-binutils-2.20.1-bug13113.patch [new file with mode: 0644]
crossavr-binutils.spec

similarity index 66%
rename from crossavr-binutils-avr-size.patch
rename to 300-binutils-2.20.1-avr-size.patch
index 49a79dd55c54d5a2647ca681e44dffc62738b084..e9065e9ec556d009a4ba6dacb028814d7221db0c 100644 (file)
@@ -1,8 +1,8 @@
 AVR specific only
 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
 --- 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"
  
  #include "getopt.h"
  #include "bucomm.h"
  
@@ -36,7 +36,7 @@ AVR specific only
  /* Program options.  */
  
  static enum
  /* Program options.  */
  
  static enum
-@@ -47,9 +68,8 @@ static enum
+@@ -48,9 +69,8 @@ static enum
    }
  radix = decimal;
  
    }
  radix = decimal;
  
@@ -47,7 +47,7 @@ AVR specific only
  static int show_version = 0;
  static int show_help = 0;
  static int show_totals = 0;
  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;
  
  /* 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 AVR4K 4096UL
 +#define AVR8K 8192UL
 +#define AVR16K 16384UL
++#define AVR20K 20480UL
 +#define AVR24K 24576UL
 +#define AVR32K 32768UL
 +#define AVR24K 24576UL
 +#define AVR32K 32768UL
++#define AVR36K 36864UL
 +#define AVR40K 40960UL
 +#define AVR64K 65536UL
 +#define AVR40K 40960UL
 +#define AVR64K 65536UL
++#define AVR68K 69632UL
 +#define AVR128K 131072UL
 +#define AVR128K 131072UL
++#define AVR136K 139264UL
++#define AVR200K 204800UL
 +#define AVR256K 262144UL
 +#define AVR256K 262144UL
++#define AVR264K 270336UL
 +
 +typedef struct
 +{
 +
 +typedef struct
 +{
@@ -80,129 +86,206 @@ AVR specific only
 +
 +avr_device_t avr[] =
 +{
 +
 +avr_device_t avr[] =
 +{
++      {"atxmega256a3",  AVR264K, AVR16K, AVR4K},
++      {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
++      {"atxmega256d3",  AVR264K, AVR16K, AVR4K},
++
 +      {"atmega2560",    AVR256K, AVR8K,  AVR4K},
 +      {"atmega2561",    AVR256K, AVR8K,  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},
 +      {"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},
 +
 +      {"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},
 +      {"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},
 +      {"atmega644p",    AVR64K,  AVR4K,  AVR2K},
++      {"atmega644pa",   AVR64K,  AVR4K,  AVR2K},
 +      {"atmega645",     AVR64K,  AVR4K,  AVR2K},
 +      {"atmega645",     AVR64K,  AVR4K,  AVR2K},
++      {"atmega645a",    AVR64K,  AVR4K,  AVR2K},
++      {"atmega645p",    AVR64K,  AVR4K,  AVR2K},
 +      {"atmega6450",    AVR64K,  AVR4K,  AVR2K},
 +      {"atmega6450",    AVR64K,  AVR4K,  AVR2K},
++      {"atmega6450a",   AVR64K,  AVR4K,  AVR2K},
++      {"atmega6450p",   AVR64K,  AVR4K,  AVR2K},
 +      {"atmega649",     AVR64K,  AVR4K,  AVR2K},
 +      {"atmega649",     AVR64K,  AVR4K,  AVR2K},
++      {"atmega649a",    AVR64K,  AVR4K,  AVR2K},
++      {"atmega649p",    AVR64K,  AVR4K,  AVR2K},
 +      {"atmega6490",    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},
 +
 +      {"at90can32",     AVR32K,  AVR2K,  AVR1K},
-+      {"at94k",         AVR32K,  AVR4K,  0},
++      {"at94k",         AVR32K,  AVR4K,  0UL},
 +      {"atmega32",      AVR32K,  AVR2K,  AVR1K},
 +      {"atmega323",     AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32",      AVR32K,  AVR2K,  AVR1K},
 +      {"atmega323",     AVR32K,  AVR2K,  AVR1K},
++      {"atmega324a",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega324p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega324p",    AVR32K,  AVR2K,  AVR1K},
++      {"atmega324pa",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega325",     AVR32K,  AVR2K,  AVR1K},
 +      {"atmega325",     AVR32K,  AVR2K,  AVR1K},
++      {"atmega325a",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega325p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3250",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega325p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3250",    AVR32K,  AVR2K,  AVR1K},
++      {"atmega3250a",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3250p",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3250p",   AVR32K,  AVR2K,  AVR1K},
++      {"atmega328",     AVR32K,  AVR2K,  AVR1K},
 +      {"atmega328p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega329",     AVR32K,  AVR2K,  AVR1K},
 +      {"atmega328p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega329",     AVR32K,  AVR2K,  AVR1K},
++      {"atmega329a",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega329p",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega329p",    AVR32K,  AVR2K,  AVR1K},
++      {"atmega329pa",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3290",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3290",    AVR32K,  AVR2K,  AVR1K},
++      {"atmega3290a",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3290p",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32hvb",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32c1",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega3290p",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32hvb",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32c1",    AVR32K,  AVR2K,  AVR1K},
++   {"atmega32hvb",   AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32m1",    AVR32K,  AVR2K,  AVR1K},
 +      {"atmega32m1",    AVR32K,  AVR2K,  AVR1K},
++      {"atmega32u2",    AVR32K,  AVR1K,  AVR1K},
 +      {"atmega32u4",    AVR32K,  2560UL, AVR1K},
 +      {"atmega32u6",    AVR32K,  2560UL, 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},
 +      {"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},
 +      {"atmega161",     AVR16K,  AVR1K,  AVR512},
 +      {"atmega162",     AVR16K,  AVR1K,  AVR512},
 +      {"atmega163",     AVR16K,  AVR1K,  AVR512},
 +      {"atmega164",     AVR16K,  AVR1K,  AVR512},
++      {"atmega164a",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega164p",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega164p",    AVR16K,  AVR1K,  AVR512},
++      {"atmega165a",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega165",     AVR16K,  AVR1K,  AVR512},
 +      {"atmega165p",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega168",     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},
 +      {"atmega168p",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega169",     AVR16K,  AVR1K,  AVR512},
++      {"atmega169a",    AVR16K,  AVR1K,  AVR512},
 +      {"atmega169p",    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},
 +
 +      {"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},
 +      {"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},
 +      {"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},
 +      {"atmega8",       AVR8K,   AVR1K,  AVR512},
 +      {"atmega8515",    AVR8K,   AVR512, AVR512},
 +      {"atmega8535",    AVR8K,   AVR512, AVR512},
 +      {"atmega88",      AVR8K,   AVR1K,  AVR512},
++      {"atmega88a",     AVR8K,   AVR1K,  AVR512},
 +      {"atmega88p",     AVR8K,   AVR1K,  AVR512},
 +      {"atmega88p",     AVR8K,   AVR1K,  AVR512},
++      {"atmega88pa",    AVR8K,   AVR1K,  AVR512},
++      {"atmega8hva",    AVR8K,   768UL,  AVR256},
++      {"atmega8u2",     AVR8K,   AVR512, AVR512},
 +      {"attiny84",      AVR8K,   AVR512, AVR512},
 +      {"attiny84",      AVR8K,   AVR512, AVR512},
++      {"attiny84a",     AVR8K,   AVR512, AVR512},
 +      {"attiny85",      AVR8K,   AVR512, AVR512},
 +      {"attiny861",     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},
 +      {"at90s4433",     AVR4K,   AVR128, AVR256},
-+      {"at90s4434",     AVR4K,   352,    AVR256},
++      {"at90s4434",     AVR4K,   352UL,  AVR256},
 +      {"atmega48",      AVR4K,   AVR512, AVR256},
 +      {"atmega48",      AVR4K,   AVR512, AVR256},
++      {"atmega48a",     AVR4K,   AVR512, AVR256},
 +      {"atmega48p",     AVR4K,   AVR512, AVR256},
 +      {"atmega48p",     AVR4K,   AVR512, AVR256},
++      {"attiny4313",    AVR4K,   AVR256, AVR256},
 +      {"attiny43u",     AVR4K,   AVR256, AVR64},
 +      {"attiny44",      AVR4K,   AVR256, AVR256},
 +      {"attiny43u",     AVR4K,   AVR256, AVR64},
 +      {"attiny44",      AVR4K,   AVR256, AVR256},
++      {"attiny44a",     AVR4K,   AVR256, AVR256},
 +      {"attiny45",      AVR4K,   AVR256, AVR256},
 +      {"attiny461",     AVR4K,   AVR256, AVR256},
 +      {"attiny45",      AVR4K,   AVR256, AVR256},
 +      {"attiny461",     AVR4K,   AVR256, AVR256},
++      {"attiny461a",    AVR4K,   AVR256, AVR256},
 +      {"attiny48",      AVR4K,   AVR256, AVR64},
 +
 +      {"attiny48",      AVR4K,   AVR256, AVR64},
 +
-+      {"at86rf401",     AVR2K,   224,    AVR128},
++      {"at86rf401",     AVR2K,   224UL,  AVR128},
 +      {"at90s2313",     AVR2K,   AVR128, AVR128},
 +      {"at90s2323",     AVR2K,   AVR128, AVR128},
 +      {"at90s2313",     AVR2K,   AVR128, AVR128},
 +      {"at90s2323",     AVR2K,   AVR128, AVR128},
-+      {"at90s2333",     AVR2K,   224,    AVR128},
++      {"at90s2333",     AVR2K,   224UL,  AVR128},
 +      {"at90s2343",     AVR2K,   AVR128, AVR128},
 +      {"at90s2343",     AVR2K,   AVR128, AVR128},
-+      {"attiny22",      AVR2K,   224,    AVR128},
++   {"attiny20",      AVR2K,   AVR128, 0UL},
++      {"attiny22",      AVR2K,   224UL,  AVR128},
 +      {"attiny2313",    AVR2K,   AVR128, AVR128},
 +      {"attiny2313",    AVR2K,   AVR128, AVR128},
++      {"attiny2313a",   AVR2K,   AVR128, AVR128},
 +      {"attiny24",      AVR2K,   AVR128, AVR128},
 +      {"attiny24",      AVR2K,   AVR128, AVR128},
++      {"attiny24a",     AVR2K,   AVR128, AVR128},
 +      {"attiny25",      AVR2K,   AVR128, AVR128},
 +      {"attiny26",      AVR2K,   AVR128, AVR128},
 +      {"attiny261",     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},
 +      {"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;
 +};
 +
 +static char *avrmcu = NULL;
@@ -211,7 +294,7 @@ AVR specific only
  static char *target = NULL;
  
  /* Forward declarations.  */
  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\
    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\
    -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"),
    -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)
  );
    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)
  #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[] =
  {
  
  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},
    {"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},
    {"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 ();
  
    bfd_init ();
    set_default_bfd_target ();
  
@@ -259,7 +342,7 @@ AVR specific only
                           (int *) 0)) != EOF)
      switch (c)
        {
                           (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':
          {
          case 'B':
          case 'b':
@@ -277,7 +360,7 @@ AVR specific only
            break;
          default:
            non_fatal (_("invalid argument to --format: %s"), optarg);
            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;
  
          }
        break;
  
@@ -288,7 +371,7 @@ AVR specific only
        case OPTION_TARGET:
        target = optarg;
        break;
        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':
        break;
  
        case 'A':
@@ -305,7 +388,7 @@ AVR specific only
        case 'v':
        case 'V':
        show_version = 1;
        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++]);
  
      for (; optind < argc;)
        display_file (argv[optind++]);
  
@@ -314,7 +397,7 @@ AVR specific only
      {
        bfd_size_type total = total_textsize + total_datasize + total_bsssize;
  
      {
        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");
  }
  
    printf ("\n\n");
  }
  
@@ -347,9 +430,9 @@ AVR specific only
 +  int rammax = 0;
 +  int eeprommax = 0;
 +  asection *section; 
 +  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;
 +  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)
 +  }
 +
 +  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)
 +  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)
 +  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)
 +  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);
 +  
 +  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"
 +  bfd_size_type eeprom = eepromsize;
 +  
 +  printf ("AVR Memory Usage\n"
similarity index 95%
rename from crossavr-binutils-avr-coff.patch
rename to 301-binutils-2.20.1-avr-coff.patch
index ad6596a67a09db44edd543b0df10333feea19fea..c21327f43c73950a0894e68f7520e6ef70b2805c 100644 (file)
@@ -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 \
        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 \
        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 \
        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 \
        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 \
        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 \
        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 \
        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 \
        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
 @@ -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
 +};
 +
 +  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
 @@ -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
 +};
 +
 +  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,
 @@ -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;
  
    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;
  /*  make_abs_section(abfd);*/
  
    return TRUE;
-@@ -1958,17 +1970,6 @@
+@@ -1934,17 +1946,6 @@
  
    coff->sym_filepos = internal_f->f_symptr;
  
  
    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) =
    coff->timestamp = internal_f->f_timdat;
  
    obj_raw_syment_count (abfd) =
-@@ -2100,6 +2101,11 @@
+@@ -2076,6 +2077,11 @@
        }
        break;
  #endif
        }
        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:
  #ifdef MC68MAGIC
      case MC68MAGIC:
      case M68MAGIC:
-@@ -2879,6 +2885,13 @@
+@@ -2871,6 +2877,13 @@
        return TRUE;
  #endif
  
        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;
  #ifdef PPCMAGIC
      case bfd_arch_powerpc:
        *magicp = PPCMAGIC;
-@@ -3705,6 +3718,11 @@
+@@ -3698,6 +3711,11 @@
        section.s_page = 0;
  #endif
  
        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
  #ifdef COFF_WITH_PE
        section.s_paddr = 0;
  #endif
-@@ -4051,6 +4069,17 @@
+@@ -4042,6 +4060,17 @@
      internal_a.magic = ZMAGIC;
  #endif
  
      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;
  #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
    }
  
  #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;
  
    /* 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
            /* 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:
              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.  */
                  && 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
            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;
 @@ -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;
    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,
 @@ -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);
            }
          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
  
    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-*-*)
      ;;
  
    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 " ;;
      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 ;;
      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 " ;;
 @@ -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 ;;
      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;
  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;
  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,
        &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
        &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 \
        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 = \
 -      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
        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
  
  # 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) \
  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)
  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 \
        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 = \
 -      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
        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
  
  # 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;
  }
  
    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
 +
  /* 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 *);
 @@ -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 */
  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 *);
 @@ -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
 +  (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 <assert.h>
  #include "bfd.h"
 @@ -31,6 +31,7 @@
  #include <assert.h>
  #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;
 +}
 +  /* 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 *);
  
  
  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.
  /* 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]
          [\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]
          [\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
  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).
 +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 <sys/stat.h>
 @@ -32,6 +32,7 @@
  #include "elf-bfd.h"
  #include <sys/stat.h>
@@ -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"
  
  #include "coff/internal.h"
  #include "libcoff.h"
  
-@@ -308,6 +309,8 @@
+@@ -297,6 +298,8 @@
      OPTION_IMPURE,
      OPTION_EXTRACT_SYMBOL,
      OPTION_REVERSE_BYTES,
      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,
      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},
    {"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},
    {"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 <prefix>\n\
                                     Add <prefix> to start of every allocatable\n\
                                       section name\n\
       --prefix-alloc-sections <prefix>\n\
                                     Add <prefix> 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 <num>        Set PE file alignment to <num>\n\
       --heap <reserve>[,<commit>]   Set PE reserve/commit heap to <reserve>/\n\
                                     <commit>\n\
       --file-alignment <num>        Set PE file alignment to <num>\n\
       --heap <reserve>[,<commit>]   Set PE reserve/commit heap to <reserve>/\n\
                                     <commit>\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;
    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++)
      {
  
    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.  */
               || 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)))
                && 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
      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;
        || 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;
  
          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;
        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.  */
 @@ -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;
          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.
 +
 +/* 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;
 +  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;
 +  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))
 +    {
 +
 +  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];
 +      /* 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;
 +}
 +
 +  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.
 +   
 @@ -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
 +
 +#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 @@
  
  };
  
  
  };
  
similarity index 88%
rename from crossavr-binutils-new-sections.patch
rename to 302-binutils-2.20.1-new-sections.patch
index f14f04d960de1abe7cc0fc60957e002fedcefa9f..c1dac97a4b7096eb009fd4db902f3a473ac94da2 100644 (file)
@@ -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      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
 @@ -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 (file)
index 0000000..6aade2d
--- /dev/null
@@ -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 (file)
index 0000000..a75b26b
--- /dev/null
@@ -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 (file)
index 0000000..18ecaac
--- /dev/null
@@ -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"
similarity index 74%
rename from crossavr-binutils-xmega.patch
rename to 400-binutils-2.20.1-xmega.patch
index fc44d430ff04c83aac34e032132991dfe9bc55f2..7f6e0840bcb855291bf64239b736326d46fcd95e 100644 (file)
@@ -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
  .#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). *}
  .  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
  #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). */
    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.  */
    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 =
  };
  
  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;
      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;
      }
  
    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;
        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,
        }
      }
    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;
 +  char *opcode;
-+  int insn_size;              /* In words.  */
-+  int isa;
+   int           insn_size;            /* In words.  */
+   int           isa;
    unsigned int  bin_opcode;
  };
  
    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[] = ";";
  };
  
  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},
    {"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},
    {"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},
    {"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},
 +  {"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},
 +  {"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}
  };
  
    {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"
        "                   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"
        "                   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;
        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+".  */
        }
  
        /* 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;
  
        }
        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;
  
      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).
  
  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}.
  @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
 @@ -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)
  
  /* 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 */
  #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)
  
  #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)
  #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
  
  #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)
     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,
     ? - 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)
  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)
  
  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)
 +
  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
  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"
                        ;;
  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=
 @@ -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
 +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=
 @@ -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
 +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=
 @@ -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
 +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=
 @@ -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
 +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=
 @@ -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
 +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=
 @@ -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
 +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=
 @@ -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
 +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 ();
  
  
    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 ();
      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,
  
  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;
  {
    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)
  
      case 'z':
        *buf++ = 'Z';
 -      if (insn & 0x1)
--      *buf++ = '+';
 +
 +      /* Check for post-increment. */
 +      char *s;
 +
 +      /* 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 == '+')
 +            {
 +        {
 +          if (*s == '+')
 +            {
-+              *buf++ = '+';
+       *buf++ = '+';
 +              break;
 +            }
 +        }
 +              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"));
        *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;
        }
        break;
-+
+       
 +    case 'E':
 +      sprintf (buf, "%d", (insn >> 4) & 15);
 +      break;
 +    case 'E':
 +      sprintf (buf, "%d", (insn >> 4) & 15);
 +      break;
-       
++      
      case '?':
        *buf = '\0';
      case '?':
        *buf = '\0';
-@@ -331,7 +345,8 @@
+       break;
+@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
  
    if (opcode->name)
      {
  
    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;
  
        insn2 = 0;
        ok = 1;
-@@ -342,14 +357,14 @@
+@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
          cmd_len = 4;
        }
  
          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 (file)
index 0000000..34f3a7b
--- /dev/null
@@ -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 (file)
index 0000000..d51aeb5
--- /dev/null
@@ -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 (file)
index 0000000..03c651b
--- /dev/null
@@ -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 (file)
index 0000000..dd694cb
--- /dev/null
@@ -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 (file)
index 0000000..ff3db65
--- /dev/null
@@ -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 (file)
index 0000000..f6708d6
--- /dev/null
@@ -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 (file)
index 0000000..2acfbfa
--- /dev/null
@@ -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 (file)
index 0000000..61f11de
--- /dev/null
@@ -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 (file)
index 0000000..33b94ee
--- /dev/null
@@ -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 (file)
index 0000000..9109789
--- /dev/null
@@ -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 (file)
index 0000000..1a9f6c7
--- /dev/null
@@ -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 (file)
index 0000000..25cb8da
--- /dev/null
@@ -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 (file)
index 0000000..ca338be
--- /dev/null
@@ -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 (file)
index 0000000..4fc0b78
--- /dev/null
@@ -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 (file)
index 0000000..57bdc2d
--- /dev/null
@@ -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 (file)
index 0000000..422ef75
--- /dev/null
@@ -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 (file)
index 0000000..7fbcdf2
--- /dev/null
@@ -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 (file)
index 0000000..9a01eb6
--- /dev/null
@@ -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 (file)
index 0000000..1097767
--- /dev/null
@@ -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 (file)
index 0000000..75a09f0
--- /dev/null
@@ -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 (file)
index 0000000..0397c35
--- /dev/null
@@ -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 (file)
index 0000000..a38f871
--- /dev/null
@@ -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 (file)
index 0000000..b69e7f0
--- /dev/null
@@ -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 (file)
index 0000000..9e04ba3
--- /dev/null
@@ -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 (file)
index 0000000..970be54
--- /dev/null
@@ -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 (file)
index 0000000..72c40de
--- /dev/null
@@ -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 (file)
index 0000000..6c86c7e
--- /dev/null
@@ -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 (file)
index 0000000..969482d
--- /dev/null
@@ -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 (file)
index 0000000..63bdb44
--- /dev/null
@@ -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 (file)
index 0000000..e445de0
--- /dev/null
@@ -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 (file)
index 0000000..6952bfa
--- /dev/null
@@ -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 (file)
index 0000000..0095732
--- /dev/null
@@ -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 (file)
index 0000000..c46fb05
--- /dev/null
@@ -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 <<EOF
++OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
++OUTPUT_ARCH(${ARCH})
++
++MEMORY
++{
++  text   (rx)   : ORIGIN = $TEXT_ORIGIN, LENGTH = $TEXT_LENGTH
++  data   (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
++  lock      (rw!x) : ORIGIN = 0x3F00, LENGTH = 2
++  signature (rw!x) : ORIGIN = 0x3FC0, LENGTH = 4
++/* REVISIT: fuse(rw!x) : */
++}
++
++SECTIONS
++{
++  /* Read-only sections, merged into text segment: */
++  ${TEXT_DYNAMIC+${DYNAMIC}}
++  .hash        ${RELOCATING-0} : { *(.hash)           }
++  .dynsym      ${RELOCATING-0} : { *(.dynsym)         }
++  .dynstr      ${RELOCATING-0} : { *(.dynstr)         }
++  .gnu.version ${RELOCATING-0} : { *(.gnu.version)    }
++  .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d)        }
++  .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r)        }
++
++  .rel.init    ${RELOCATING-0} : { *(.rel.init)               }
++  .rela.init   ${RELOCATING-0} : { *(.rela.init)      }
++  .rel.text    ${RELOCATING-0} :
++    {
++      *(.rel.text)
++      ${RELOCATING+*(.rel.text.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.t*)}
++    }
++  .rela.text   ${RELOCATING-0} :
++    {
++      *(.rela.text)
++      ${RELOCATING+*(.rela.text.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.t*)}
++    }
++  .rel.fini    ${RELOCATING-0} : { *(.rel.fini)               }
++  .rela.fini   ${RELOCATING-0} : { *(.rela.fini)      }
++  .rel.rodata  ${RELOCATING-0} :
++    {
++      *(.rel.rodata)
++      ${RELOCATING+*(.rel.rodata.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.r*)}
++    }
++  .rela.rodata ${RELOCATING-0} :
++    {
++      *(.rela.rodata)
++      ${RELOCATING+*(.rela.rodata.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.r*)}
++    }
++  .rel.data    ${RELOCATING-0} :
++    {
++      *(.rel.data)
++      ${RELOCATING+*(.rel.data.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.d*)}
++    }
++  .rela.data   ${RELOCATING-0} :
++    {
++      *(.rela.data)
++      ${RELOCATING+*(.rela.data.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.d*)}
++    }
++  .rel.ctors   ${RELOCATING-0} : { *(.rel.ctors)      }
++  .rela.ctors  ${RELOCATING-0} : { *(.rela.ctors)     }
++  .rel.dtors   ${RELOCATING-0} : { *(.rel.dtors)      }
++  .rela.dtors  ${RELOCATING-0} : { *(.rela.dtors)     }
++  .rel.got     ${RELOCATING-0} : { *(.rel.got)                }
++  .rela.got    ${RELOCATING-0} : { *(.rela.got)               }
++  .rel.bss     ${RELOCATING-0} : { *(.rel.bss)                }
++  .rela.bss    ${RELOCATING-0} : { *(.rela.bss)               }
++  .rel.plt     ${RELOCATING-0} : { *(.rel.plt)                }
++  .rela.plt    ${RELOCATING-0} : { *(.rela.plt)               }
++
++  /* Internal text space or external memory.  */
++  .text ${RELOCATING-0} : ${RELOCATING+ AT (0x0)}
++  {
++    *(.vectors)
++    KEEP(*(.vectors))
++
++    /* For data that needs to reside in the lower 64k of progmem.  */
++    *(.progmem.gcc*)
++    *(.progmem*)
++    ${RELOCATING+. = ALIGN(2);}
++
++    ${CONSTRUCTING+ __trampolines_start = . ; }
++    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
++    *(.trampolines)
++    *(.trampolines*)
++    ${CONSTRUCTING+ __trampolines_end = . ; }
++
++    /* For future tablejump instruction arrays for 3 byte pc devices.
++       We don't relax jump/call instructions within these sections.  */
++    *(.jumptables) 
++    *(.jumptables*) 
++
++    /* For code that needs to reside in the lower 128k progmem.  */
++    *(.lowtext)
++    *(.lowtext*)
++
++    ${CONSTRUCTING+ __ctors_start = . ; }
++    ${CONSTRUCTING+ *(.ctors) }
++    ${CONSTRUCTING+ __ctors_end = . ; }
++    ${CONSTRUCTING+ __dtors_start = . ; }
++    ${CONSTRUCTING+ *(.dtors) }
++    ${CONSTRUCTING+ __dtors_end = . ; }
++    KEEP(SORT(*)(.ctors))
++    KEEP(SORT(*)(.dtors))
++
++    /* From this point on, we don't bother about wether the insns are
++       below or above the 16 bits boundary.  */
++    *(.init0)  /* Start here after reset.  */
++    KEEP (*(.init0))
++    *(.init1)
++    KEEP (*(.init1))
++    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
++    KEEP (*(.init2))
++    *(.init3)
++    KEEP (*(.init3))
++    *(.init4)  /* Initialize data and BSS.  */
++    KEEP (*(.init4))
++    *(.init5)
++    KEEP (*(.init5))
++    *(.init6)  /* C++ constructors.  */
++    KEEP (*(.init6))
++    *(.init7)
++    KEEP (*(.init7))
++    *(.init8)
++    KEEP (*(.init8))
++    *(.init9)  /* Call main().  */
++    KEEP (*(.init9))
++    *(.text)
++    ${RELOCATING+. = ALIGN(2);}
++    *(.text.*)
++    ${RELOCATING+. = ALIGN(2);}
++    *(.fini9)  /* _exit() starts here.  */
++    KEEP (*(.fini9))
++    *(.fini8)
++    KEEP (*(.fini8))
++    *(.fini7)
++    KEEP (*(.fini7))
++    *(.fini6)  /* C++ destructors.  */
++    KEEP (*(.fini6))
++    *(.fini5)
++    KEEP (*(.fini5))
++    *(.fini4)
++    KEEP (*(.fini4))
++    *(.fini3)
++    KEEP (*(.fini3))
++    *(.fini2)
++    KEEP (*(.fini2))
++    *(.fini1)
++    KEEP (*(.fini1))
++    *(.fini0)  /* Infinite loop after program termination.  */
++    KEEP (*(.fini0))
++    ${RELOCATING+ _etext = . ; }
++  } ${RELOCATING+ > 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 (file)
index 0000000..d79bdc5
--- /dev/null
@@ -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=<avrmcu>            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;
index 2461897180110d214b462956125cfa294f5460a7..e0ae847e11ebde1d60ad187d4c1e6fae8510c131 100644 (file)
@@ -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
 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
 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
 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
 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}
 
 %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 .
 
 %build
 cp /usr/share/automake/config.sub .
@@ -74,6 +150,7 @@ sparc32 \
 %endif
 ./configure \
        --disable-shared \
 %endif
 ./configure \
        --disable-shared \
+       --disable-werror \
        --prefix=%{_prefix} \
        --libdir=%{_libdir} \
        --mandir=%{_mandir} \
        --prefix=%{_prefix} \
        --libdir=%{_libdir} \
        --mandir=%{_mandir} \
This page took 0.518656 seconds and 4 git commands to generate.