aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Wunsch <joerg@FreeBSD.org>2011-12-16 22:39:21 +0000
committerJoerg Wunsch <joerg@FreeBSD.org>2011-12-16 22:39:21 +0000
commit148819d89b158be812fb30720ebc20c0d93758e3 (patch)
treea9b20735c1384241625006c1c8bb45ad81103167
parentd5b5f0adea97416c4327f80d001b55034591fed4 (diff)
Notes
-rw-r--r--devel/avr-binutils/Makefile3
-rw-r--r--devel/avr-binutils/distinfo4
-rw-r--r--devel/avr-binutils/files/patch-300-binutils-2.20.1-avr-size (renamed from devel/avr-binutils/files/patch-avr-size)30
-rw-r--r--devel/avr-binutils/files/patch-301-binutils-2.20.1-avr-coff (renamed from devel/avr-binutils/files/patch-coff-avr)96
-rw-r--r--devel/avr-binutils/files/patch-302-binutils-2.20.1-new-sections (renamed from devel/avr-binutils/files/patch-newsections)4
-rw-r--r--devel/avr-binutils/files/patch-303-binutils-2.20.1-as-dwarf29
-rw-r--r--devel/avr-binutils/files/patch-304-binutils-2.20.1-dwarf2-AVRStudio-workaround (renamed from devel/avr-binutils/files/patch-as-dwarf-avrstudio)5
-rw-r--r--devel/avr-binutils/files/patch-305-binutils-2.20.1-assembler-options12
-rw-r--r--devel/avr-binutils/files/patch-400-binutils-2.20.1-xmega (renamed from devel/avr-binutils/files/patch-xmega)406
-rw-r--r--devel/avr-binutils/files/patch-401-binutils-2.20.1-new-devices (renamed from devel/avr-binutils/files/patch-newdevices)156
-rw-r--r--devel/avr-binutils/files/patch-402-binutils-2.20.1-avrtiny10218
-rw-r--r--devel/avr-binutils/files/patch-403-binutils-2.20.1-xmega128a1u-64a1u42
-rw-r--r--devel/avr-binutils/files/patch-404-binutils-2.20.1-atxmega16x1-32x130
-rw-r--r--devel/avr-binutils/files/patch-405-binutils-2.20.1-atxmega128b136
-rw-r--r--devel/avr-binutils/files/patch-406-binutils-2.20.1-atxmega256a3bu34
-rw-r--r--devel/avr-binutils/files/patch-407-binutils-2.20.1-at90pwm16173
-rw-r--r--devel/avr-binutils/files/patch-408-binutils-2.20.1-atmega16hvb-32hvb52
-rw-r--r--devel/avr-binutils/files/patch-409-binutils-2.20.1-atmega32_5_50_90_pa88
-rw-r--r--devel/avr-binutils/files/patch-410-binutils-2.20.1-attiny163436
-rw-r--r--devel/avr-binutils/files/patch-411-binutils-2.20.1-atmega48pa39
-rw-r--r--devel/avr-binutils/files/patch-500-binutils-2.20.1-bug13789377
-rw-r--r--devel/avr-binutils/files/patch-aa50
-rw-r--r--devel/avr-binutils/files/patch-as-dwarf10
-rw-r--r--devel/avr-binutils/pkg-descr11
24 files changed, 1479 insertions, 362 deletions
diff --git a/devel/avr-binutils/Makefile b/devel/avr-binutils/Makefile
index f70babd8a354..a2cae57fc7f4 100644
--- a/devel/avr-binutils/Makefile
+++ b/devel/avr-binutils/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= binutils
-PORTVERSION= 2.20
-PORTREVISION= 2
+PORTVERSION= 2.20.1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEWARE}
MASTER_SITE_SUBDIR= binutils/releases
diff --git a/devel/avr-binutils/distinfo b/devel/avr-binutils/distinfo
index 65685cda9595..c72193d8513a 100644
--- a/devel/avr-binutils/distinfo
+++ b/devel/avr-binutils/distinfo
@@ -1,2 +1,2 @@
-SHA256 (binutils-2.20.tar.bz2) = e1df09f0aa3b50154ef93bfefe86d65d01c22cfb44d73299ad95e772133a75b0
-SIZE (binutils-2.20.tar.bz2) = 17506655
+SHA256 (binutils-2.20.1.tar.bz2) = 228b84722d87e88e7fdd36869e590e649ab523a0800a7d53df906498afe6f6f8
+SIZE (binutils-2.20.1.tar.bz2) = 17501436
diff --git a/devel/avr-binutils/files/patch-avr-size b/devel/avr-binutils/files/patch-300-binutils-2.20.1-avr-size
index bfa60301c597..e9065e9ec556 100644
--- a/devel/avr-binutils/files/patch-avr-size
+++ b/devel/avr-binutils/files/patch-300-binutils-2.20.1-avr-size
@@ -47,7 +47,7 @@ AVR specific only
static int show_version = 0;
static int show_help = 0;
static int show_totals = 0;
-@@ -64,6 +84,238 @@ static bfd_size_type total_textsize;
+@@ -64,6 +84,246 @@ static bfd_size_type total_textsize;
/* Program exit status. */
static int return_code = 0;
@@ -97,6 +97,7 @@ AVR specific only
+ {"atxmega192d3", AVR200K, AVR16K, AVR2K},
+
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
++ {"atxmega128a1u", AVR136K, AVR8K, AVR2K},
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
+
@@ -112,6 +113,7 @@ AVR specific only
+ {"atmega103", AVR128K, 4000UL, AVR4K},
+
+ {"atxmega64a1", AVR68K, AVR4K, AVR2K},
++ {"atxmega64a1u", AVR68K, AVR4K, AVR2K},
+ {"atxmega64a3", AVR68K, AVR4K, AVR2K},
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
+
@@ -140,6 +142,7 @@ AVR specific only
+ {"atmega64c1", AVR64K, AVR4K, AVR2K},
+ {"atmega64hve", AVR64K, AVR4K, AVR1K},
+ {"atmega64m1", AVR64K, AVR4K, AVR2K},
++ {"m3000", AVR64K, AVR4K, 0UL},
+
+ {"atmega406", AVR40K, AVR2K, AVR512},
+
@@ -154,15 +157,19 @@ AVR specific only
+ {"atmega324p", AVR32K, AVR2K, AVR1K},
+ {"atmega324pa", AVR32K, AVR2K, AVR1K},
+ {"atmega325", AVR32K, AVR2K, AVR1K},
++ {"atmega325a", AVR32K, AVR2K, AVR1K},
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
++ {"atmega3250a", AVR32K, AVR2K, AVR1K},
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
+ {"atmega328", AVR32K, AVR2K, AVR1K},
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
+ {"atmega329", AVR32K, AVR2K, AVR1K},
++ {"atmega329a", AVR32K, AVR2K, AVR1K},
+ {"atmega329p", AVR32K, AVR2K, AVR1K},
+ {"atmega329pa", AVR32K, AVR2K, AVR1K},
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
++ {"atmega3290a", AVR32K, AVR2K, AVR1K},
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
@@ -228,6 +235,7 @@ AVR specific only
+ {"atmega8hva", AVR8K, 768UL, AVR256},
+ {"atmega8u2", AVR8K, AVR512, AVR512},
+ {"attiny84", AVR8K, AVR512, AVR512},
++ {"attiny84a", AVR8K, AVR512, AVR512},
+ {"attiny85", AVR8K, AVR512, AVR512},
+ {"attiny861", AVR8K, AVR512, AVR512},
+ {"attiny861a", AVR8K, AVR512, AVR512},
@@ -286,7 +294,7 @@ AVR specific only
static char *target = NULL;
/* Forward declarations. */
-@@ -79,7 +329,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\
@@ -296,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\
-@@ -88,11 +329,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"),
@@ -309,7 +317,7 @@ AVR specific only
);
list_supported_targets (program_name, stream);
if (REPORT_BUGS_TO[0] && status == 0)
-@@ -103,6 +351,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)
@@ -317,7 +325,7 @@ AVR specific only
static struct option long_options[] =
{
-@@ -110,6 +360,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},
@@ -325,7 +333,7 @@ AVR specific only
{"totals", no_argument, &show_totals, 1},
{"version", no_argument, &show_version, 1},
{"help", no_argument, &show_help, 1},
-@@ -141,7 +391,7 @@ main (int argc, char **argv)
+@@ -141,7 +399,7 @@ main (int argc, char **argv)
bfd_init ();
set_default_bfd_target ();
@@ -334,7 +342,7 @@ AVR specific only
(int *) 0)) != EOF)
switch (c)
{
-@@ -150,11 +401,15 @@ main (int argc, char **argv)
+@@ -150,11 +409,15 @@ main (int argc, char **argv)
{
case 'B':
case 'b':
@@ -352,7 +360,7 @@ AVR specific only
break;
default:
non_fatal (_("invalid argument to --format: %s"), optarg);
-@@ -162,6 +416,10 @@ main (int argc, char **argv)
+@@ -162,6 +424,10 @@ main (int argc, char **argv)
}
break;
@@ -363,7 +371,7 @@ AVR specific only
case OPTION_TARGET:
target = optarg;
break;
-@@ -190,11 +449,14 @@ main (int argc, char **argv)
+@@ -190,11 +457,14 @@ main (int argc, char **argv)
break;
case 'A':
@@ -380,7 +388,7 @@ AVR specific only
case 'v':
case 'V':
show_version = 1;
-@@ -240,7 +501,7 @@ main (int argc, char **argv)
+@@ -240,7 +509,7 @@ main (int argc, char **argv)
for (; optind < argc;)
display_file (argv[optind++]);
@@ -389,7 +397,7 @@ AVR specific only
{
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
-@@ -599,13 +861,117 @@ print_sysv_format (bfd *file)
+@@ -599,13 +869,117 @@ print_sysv_format (bfd *file)
printf ("\n\n");
}
diff --git a/devel/avr-binutils/files/patch-coff-avr b/devel/avr-binutils/files/patch-301-binutils-2.20.1-avr-coff
index c8c97f20b35d..c21327f43c73 100644
--- a/devel/avr-binutils/files/patch-coff-avr
+++ b/devel/avr-binutils/files/patch-301-binutils-2.20.1-avr-coff
@@ -1,6 +1,6 @@
-diff -Nruw bfd/Makefile.am bfd/Makefile.am
+diff -ruwN bfd/Makefile.am bfd/Makefile.am
--- bfd/Makefile.am 2009-10-16 17:17:44.000000000 +0530
-+++ bfd/Makefile.am 2010-02-11 10:59:11.320193800 +0530
++++ bfd/Makefile.am 2010-03-11 12:13:23.069283600 +0530
@@ -228,6 +228,8 @@
coff-apollo.lo \
coff-arm.lo \
@@ -19,9 +19,9 @@ diff -Nruw bfd/Makefile.am bfd/Makefile.am
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
-diff -Nruw bfd/Makefile.in bfd/Makefile.in
+diff -ruwN bfd/Makefile.in bfd/Makefile.in
--- bfd/Makefile.in 2009-10-16 17:17:48.000000000 +0530
-+++ bfd/Makefile.in 2010-02-11 11:13:52.698455300 +0530
++++ bfd/Makefile.in 2010-03-11 12:13:23.084906900 +0530
@@ -524,6 +524,8 @@
coff-apollo.lo \
coff-arm.lo \
@@ -40,9 +40,9 @@ diff -Nruw bfd/Makefile.in bfd/Makefile.in
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
-diff -Nruw bfd/coff-avr.c bfd/coff-avr.c
+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-02-10 17:35:58.222099600 +0530
++++ bfd/coff-avr.c 2010-03-11 12:13:23.100530200 +0530
@@ -0,0 +1,613 @@
+/* BFD back-end for Atmel AVR COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
@@ -657,9 +657,9 @@ diff -Nruw bfd/coff-avr.c bfd/coff-avr.c
+
+ COFF_SWAP_TABLE
+};
-diff -Nruw bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+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-02-10 17:35:58.222099600 +0530
++++ bfd/coff-ext-avr.c 2010-03-11 12:13:23.131776800 +0530
@@ -0,0 +1,428 @@
+/* BFD back-end for Atmel AVR "extended" COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
@@ -1089,9 +1089,9 @@ diff -Nruw bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+
+ COFF_SWAP_TABLE
+};
-diff -Nruw bfd/coffcode.h bfd/coffcode.h
+diff -ruwN bfd/coffcode.h bfd/coffcode.h
--- bfd/coffcode.h 2009-09-10 17:17:12.000000000 +0530
-+++ bfd/coffcode.h 2010-02-10 17:35:58.253349600 +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.
@@ -1227,9 +1227,9 @@ diff -Nruw bfd/coffcode.h bfd/coffcode.h
case C_ULABEL: /* Undefined label. */
case C_USTATIC: /* Undefined static. */
#ifndef COFF_WITH_PE
-diff -Nruw bfd/coffgen.c bfd/coffgen.c
+diff -ruwN bfd/coffgen.c bfd/coffgen.c
--- bfd/coffgen.c 2009-09-10 17:17:12.000000000 +0530
-+++ bfd/coffgen.c 2010-02-11 11:20:28.795092600 +0530
++++ bfd/coffgen.c 2010-03-11 12:13:23.163023400 +0530
@@ -699,6 +699,20 @@
if (last_file != NULL)
last_file->n_value = native_index;
@@ -1330,9 +1330,9 @@ diff -Nruw bfd/coffgen.c bfd/coffgen.c
new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
if (!new_symbol->native)
return NULL;
-diff -Nruw bfd/coffswap.h bfd/coffswap.h
+diff -ruwN bfd/coffswap.h bfd/coffswap.h
--- bfd/coffswap.h 2009-09-07 13:45:15.000000000 +0530
-+++ bfd/coffswap.h 2010-02-11 11:24:25.908936000 +0530
++++ bfd/coffswap.h 2010-03-11 12:13:23.178646700 +0530
@@ -383,7 +383,11 @@
void * ext1,
int type,
@@ -1360,9 +1360,9 @@ diff -Nruw bfd/coffswap.h bfd/coffswap.h
}
else
memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
-diff -Nruw bfd/config.bfd bfd/config.bfd
+diff -ruwN bfd/config.bfd bfd/config.bfd
--- bfd/config.bfd 2009-08-06 23:08:00.000000000 +0530
-+++ bfd/config.bfd 2010-02-10 17:35:58.300224600 +0530
++++ bfd/config.bfd 2010-03-11 12:13:23.178646700 +0530
@@ -339,6 +339,7 @@
avr-*-*)
@@ -1371,9 +1371,9 @@ diff -Nruw bfd/config.bfd bfd/config.bfd
;;
bfin-*-*)
-diff -Nruw bfd/configure bfd/configure
+diff -ruwN bfd/configure bfd/configure
--- bfd/configure 2009-10-16 17:17:47.000000000 +0530
-+++ bfd/configure 2010-02-10 17:35:58.331474600 +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 " ;;
@@ -1383,9 +1383,9 @@ diff -Nruw bfd/configure bfd/configure
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
-diff -Nruw bfd/configure.in bfd/configure.in
+diff -ruwN bfd/configure.in bfd/configure.in
--- bfd/configure.in 2009-10-16 17:17:44.000000000 +0530
-+++ bfd/configure.in 2010-02-10 17:35:58.331474600 +0530
++++ bfd/configure.in 2010-03-11 12:13:23.209893300 +0530
@@ -670,6 +670,8 @@
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
@@ -1395,9 +1395,9 @@ diff -Nruw bfd/configure.in bfd/configure.in
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
-diff -Nruw bfd/targets.c bfd/targets.c
+diff -ruwN bfd/targets.c bfd/targets.c
--- bfd/targets.c 2009-09-10 17:17:13.000000000 +0530
-+++ bfd/targets.c 2010-02-10 17:35:58.347099600 +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;
@@ -1416,9 +1416,9 @@ diff -Nruw bfd/targets.c bfd/targets.c
&b_out_vec_big_host,
&b_out_vec_little_host,
#ifdef BFD64
-diff -Nruw binutils/Makefile.am binutils/Makefile.am
+diff -ruwN binutils/Makefile.am binutils/Makefile.am
--- binutils/Makefile.am 2009-09-09 13:43:23.000000000 +0530
-+++ binutils/Makefile.am 2010-02-10 17:35:57.972099600 +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 \
@@ -1437,9 +1437,9 @@ diff -Nruw binutils/Makefile.am binutils/Makefile.am
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
-diff -Nruw binutils/Makefile.in binutils/Makefile.in
+diff -ruwN binutils/Makefile.in binutils/Makefile.in
--- binutils/Makefile.in 2009-09-09 13:43:23.000000000 +0530
-+++ binutils/Makefile.in 2010-02-10 17:35:57.987724600 +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)
@@ -1467,9 +1467,9 @@ diff -Nruw binutils/Makefile.in binutils/Makefile.in
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
-diff -Nruw binutils/bucomm.c binutils/bucomm.c
+diff -ruwN binutils/bucomm.c binutils/bucomm.c
--- binutils/bucomm.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/bucomm.c 2010-02-10 17:35:58.034599600 +0530
++++ binutils/bucomm.c 2010-03-11 12:13:23.256763200 +0530
@@ -550,6 +550,32 @@
return ret;
}
@@ -1503,9 +1503,9 @@ diff -Nruw binutils/bucomm.c binutils/bucomm.c
/* 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 zero is returned. */
-diff -Nruw binutils/bucomm.h binutils/bucomm.h
+diff -ruwN binutils/bucomm.h binutils/bucomm.h
--- binutils/bucomm.h 2009-09-02 12:52:31.000000000 +0530
-+++ binutils/bucomm.h 2010-02-10 17:35:58.050224600 +0530
++++ binutils/bucomm.h 2010-03-11 12:13:23.272386500 +0530
@@ -58,6 +58,8 @@
off_t get_file_size (const char *);
@@ -1515,9 +1515,9 @@ diff -Nruw binutils/bucomm.h binutils/bucomm.h
extern char *program_name;
/* filemode.c */
-diff -Nruw binutils/budbg.h binutils/budbg.h
+diff -ruwN binutils/budbg.h binutils/budbg.h
--- binutils/budbg.h 2009-09-02 12:52:31.000000000 +0530
-+++ binutils/budbg.h 2010-02-10 17:35:58.050224600 +0530
++++ binutils/budbg.h 2010-03-11 12:13:23.272386500 +0530
@@ -52,8 +52,11 @@
extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
@@ -1531,9 +1531,9 @@ diff -Nruw binutils/budbg.h binutils/budbg.h
+ (bfd *abfd, void *, long *symcountp, asymbol ***);
+
#endif
-diff -Nruw binutils/debug.c binutils/debug.c
+diff -ruwN binutils/debug.c binutils/debug.c
--- binutils/debug.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/debug.c 2010-02-11 10:50:38.043866600 +0530
++++ binutils/debug.c 2010-03-11 12:13:23.288009800 +0530
@@ -31,6 +31,7 @@
#include <assert.h>
#include "bfd.h"
@@ -1662,9 +1662,9 @@ diff -Nruw binutils/debug.c binutils/debug.c
+ /* Not found, pass the original name on. */
+ return oname;
+}
-diff -Nruw binutils/debug.h binutils/debug.h
+diff -ruwN binutils/debug.h binutils/debug.h
--- binutils/debug.h 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/debug.h 2010-02-10 17:35:58.097099600 +0530
++++ binutils/debug.h 2010-03-11 12:13:23.288009800 +0530
@@ -440,6 +440,12 @@
extern bfd_boolean debug_start_source (void *, const char *);
@@ -1678,9 +1678,9 @@ diff -Nruw binutils/debug.h binutils/debug.h
/* Record a function definition. This implicitly starts a function
block. The debug_type argument is the type of the return value.
The bfd_boolean indicates whether the function is globally visible.
-diff -Nruw binutils/doc/objcopy.1 binutils/doc/objcopy.1
+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-02-11 10:22:09.312500000 +0530
++++ binutils/doc/objcopy.1 2010-03-11 12:13:23.303633100 +0530
@@ -202,6 +202,8 @@
[\fB\-\-readonly\-text\fR]
[\fB\-\-pure\fR]
@@ -1714,9 +1714,9 @@ diff -Nruw binutils/doc/objcopy.1 binutils/doc/objcopy.1
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
-diff -Nruw binutils/objcopy.c binutils/objcopy.c
+diff -ruwN binutils/objcopy.c binutils/objcopy.c
--- binutils/objcopy.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/objcopy.c 2010-02-11 10:56:56.890302300 +0530
++++ binutils/objcopy.c 2010-03-11 12:13:23.319256400 +0530
@@ -32,6 +32,7 @@
#include "elf-bfd.h"
#include <sys/stat.h>
@@ -1817,9 +1817,9 @@ diff -Nruw binutils/objcopy.c binutils/objcopy.c
case OPTION_READONLY_TEXT:
bfd_flags_to_set |= WP_TEXT;
bfd_flags_to_clear &= ~WP_TEXT;
-diff -Nruw binutils/rdcoff.c binutils/rdcoff.c
+diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
--- binutils/rdcoff.c 2009-09-02 12:52:32.000000000 +0530
-+++ binutils/rdcoff.c 2010-02-10 17:35:58.128349600 +0530
++++ binutils/rdcoff.c 2010-03-11 12:13:23.334879700 +0530
@@ -82,6 +82,9 @@
struct coff_slots *slots;
/* Basic types. */
@@ -1963,9 +1963,9 @@ diff -Nruw binutils/rdcoff.c binutils/rdcoff.c
if (ISFCN (syment.n_type))
{
fnname = name;
-diff -Nruw binutils/wrcoff.c binutils/wrcoff.c
+diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
--- binutils/wrcoff.c 1970-01-01 05:30:00.000000000 +0530
-+++ binutils/wrcoff.c 2010-02-10 17:35:58.159599600 +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.
@@ -5377,9 +5377,9 @@ diff -Nruw binutils/wrcoff.c binutils/wrcoff.c
+
+ return TRUE;
+}
-diff -Nruw include/coff/avr.h include/coff/avr.h
+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-02-10 17:35:58.362724600 +0530
++++ include/coff/avr.h 2010-03-11 12:13:23.381749600 +0530
@@ -0,0 +1,110 @@
+/* coff information for Atmel AVR.
+
@@ -5491,9 +5491,9 @@ diff -Nruw include/coff/avr.h include/coff/avr.h
+
+#define RELOC struct external_reloc
+#define RELSZ 10
-diff -Nruw include/coff/internal.h include/coff/internal.h
+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-02-10 17:35:58.378349600 +0530
++++ include/coff/internal.h 2010-03-11 12:13:23.381749600 +0530
@@ -646,6 +646,8 @@
};
diff --git a/devel/avr-binutils/files/patch-newsections b/devel/avr-binutils/files/patch-302-binutils-2.20.1-new-sections
index f14f04d960de..c1dac97a4b70 100644
--- a/devel/avr-binutils/files/patch-newsections
+++ b/devel/avr-binutils/files/patch-302-binutils-2.20.1-new-sections
@@ -1,6 +1,6 @@
-diff -ruw ld/scripttempl/avr.sc ld/scripttempl/avr.sc
+diff -ruwN ld/scripttempl/avr.sc ld/scripttempl/avr.sc
--- ld/scripttempl/avr.sc 2009-10-09 18:42:35.000000000 +0530
-+++ ld/scripttempl/avr.sc 2010-02-12 20:09:24.070812400 +0530
++++ ld/scripttempl/avr.sc 2010-03-11 12:26:00.563046000 +0530
@@ -7,6 +7,9 @@
text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
diff --git a/devel/avr-binutils/files/patch-303-binutils-2.20.1-as-dwarf b/devel/avr-binutils/files/patch-303-binutils-2.20.1-as-dwarf
new file mode 100644
index 000000000000..6aade2d90bb2
--- /dev/null
+++ b/devel/avr-binutils/files/patch-303-binutils-2.20.1-as-dwarf
@@ -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/devel/avr-binutils/files/patch-as-dwarf-avrstudio b/devel/avr-binutils/files/patch-304-binutils-2.20.1-dwarf2-AVRStudio-workaround
index 8f403621ac32..a75b26b27919 100644
--- a/devel/avr-binutils/files/patch-as-dwarf-avrstudio
+++ b/devel/avr-binutils/files/patch-304-binutils-2.20.1-dwarf2-AVRStudio-workaround
@@ -1,5 +1,6 @@
---- gas/dwarf2dbg.c.orig 2009-09-14 13:43:26.000000000 +0200
-+++ gas/dwarf2dbg.c 2010-03-04 11:13:52.000000000 +0100
+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
diff --git a/devel/avr-binutils/files/patch-305-binutils-2.20.1-assembler-options b/devel/avr-binutils/files/patch-305-binutils-2.20.1-assembler-options
new file mode 100644
index 000000000000..18ecaac49d2d
--- /dev/null
+++ b/devel/avr-binutils/files/patch-305-binutils-2.20.1-assembler-options
@@ -0,0 +1,12 @@
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-02-08 10:59:27.000000000 -0600
++++ gas/config/tc-avr.c 2011-02-08 11:01:47.000000000 -0600
+@@ -378,7 +378,7 @@ void
+ md_show_usage (FILE *stream)
+ {
+ fprintf (stream,
+- _("AVR options:\n"
++ _("AVR Assembler options:\n"
+ " -mmcu=[avr-name] select microcontroller variant\n"
+ " [avr-name] can be:\n"
+ " avr1 - classic AVR core without data RAM\n"
diff --git a/devel/avr-binutils/files/patch-xmega b/devel/avr-binutils/files/patch-400-binutils-2.20.1-xmega
index 4ae41b55fd6f..7f6e0840bcb8 100644
--- a/devel/avr-binutils/files/patch-xmega
+++ b/devel/avr-binutils/files/patch-400-binutils-2.20.1-xmega
@@ -1,7 +1,30 @@
-diff -Nur ../binutils-2.20.orig/bfd/archures.c ./bfd/archures.c
---- ../binutils-2.20.orig/bfd/archures.c 2009-09-10 13:47:11.000000000 +0200
-+++ ./bfd/archures.c 2010-03-04 11:34:08.000000000 +0100
-@@ -368,6 +368,13 @@
+avrxmega1
+avrxmega2
+avrxmega3
+avrxmega4
+avrxmega5
+avrxmega6
+avrxmega7
+atxmega16a4
+atxmega16d4
+atxmega32d4
+atxmega32a4
+atxmega64a3
+atxmega64d3
+atxmega64a1
+atxmega128a3
+atxmega128d3
+atxmega192a3
+atxmega192d3
+atxmega256a3
+atxmega256a3b
+atxmega256d3
+atxmega128a1
+=======================================================
+diff -Naurp bfd/archures.c bfd/archures.c
+--- bfd/archures.c 2009-09-10 06:47:11.000000000 -0500
++++ bfd/archures.c 2011-06-07 11:44:52.000000000 -0500
+@@ -368,6 +368,13 @@ DESCRIPTION
.#define bfd_mach_avr5 5
.#define bfd_mach_avr51 51
.#define bfd_mach_avr6 6
@@ -15,10 +38,10 @@ diff -Nur ../binutils-2.20.orig/bfd/archures.c ./bfd/archures.c
. bfd_arch_bfin, {* ADI Blackfin *}
.#define bfd_mach_bfin 1
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
-diff -Nur ../binutils-2.20.orig/bfd/bfd-in2.h ./bfd/bfd-in2.h
---- ../binutils-2.20.orig/bfd/bfd-in2.h 2009-09-10 13:47:11.000000000 +0200
-+++ ./bfd/bfd-in2.h 2010-03-04 11:34:08.000000000 +0100
-@@ -2035,6 +2035,13 @@
+diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
+--- bfd/bfd-in2.h 2010-02-03 07:28:24.000000000 -0600
++++ bfd/bfd-in2.h 2011-06-07 11:44:52.000000000 -0500
+@@ -2042,6 +2042,13 @@ enum bfd_architecture
#define bfd_mach_avr5 5
#define bfd_mach_avr51 51
#define bfd_mach_avr6 6
@@ -32,10 +55,10 @@ diff -Nur ../binutils-2.20.orig/bfd/bfd-in2.h ./bfd/bfd-in2.h
bfd_arch_bfin, /* ADI Blackfin */
#define bfd_mach_bfin 1
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
-diff -Nur ../binutils-2.20.orig/bfd/cpu-avr.c ./bfd/cpu-avr.c
---- ../binutils-2.20.orig/bfd/cpu-avr.c 2009-09-02 09:18:36.000000000 +0200
-+++ ./bfd/cpu-avr.c 2010-03-04 11:34:08.000000000 +0100
-@@ -133,7 +133,29 @@
+diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
+--- bfd/cpu-avr.c 2009-09-02 02:18:36.000000000 -0500
++++ bfd/cpu-avr.c 2011-06-07 11:44:52.000000000 -0500
+@@ -133,7 +133,29 @@ static const bfd_arch_info_type arch_inf
N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
/* 3-Byte PC. */
@@ -66,10 +89,10 @@ diff -Nur ../binutils-2.20.orig/bfd/cpu-avr.c ./bfd/cpu-avr.c
};
const bfd_arch_info_type bfd_avr_arch =
-diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
---- ../binutils-2.20.orig/bfd/elf32-avr.c 2009-09-02 09:18:36.000000000 +0200
-+++ ./bfd/elf32-avr.c 2010-03-04 11:34:08.000000000 +0100
-@@ -1328,6 +1328,34 @@
+diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
+--- bfd/elf32-avr.c 2009-09-02 02:18:36.000000000 -0500
++++ bfd/elf32-avr.c 2011-06-07 11:44:52.000000000 -0500
+@@ -1328,6 +1328,34 @@ bfd_elf_avr_final_write_processing (bfd
case bfd_mach_avr6:
val = E_AVR_MACH_AVR6;
break;
@@ -104,7 +127,7 @@ diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
}
elf_elfheader (abfd)->e_machine = EM_AVR;
-@@ -1390,6 +1418,34 @@
+@@ -1390,6 +1418,34 @@ elf32_avr_object_p (bfd *abfd)
case E_AVR_MACH_AVR6:
e_set = bfd_mach_avr6;
break;
@@ -139,22 +162,16 @@ diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
}
}
return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
-diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
---- ../binutils-2.20.orig/gas/config/tc-avr.c 2010-03-04 11:19:26.000000000 +0100
-+++ ./gas/config/tc-avr.c 2010-03-04 11:34:09.000000000 +0100
-@@ -27,20 +27,21 @@
-
- struct avr_opcodes_s
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-06-07 11:47:11.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 11:44:52.000000000 -0500
+@@ -30,18 +30,19 @@ struct avr_opcodes_s
{
-- char * name;
-- char * constraints;
-- int insn_size; /* In words. */
-- int isa;
-+ char *name;
-+ char *constraints;
+ char * name;
+ char * constraints;
+ char *opcode;
-+ int insn_size; /* In words. */
-+ int isa;
+ int insn_size; /* In words. */
+ int isa;
unsigned int bin_opcode;
};
@@ -170,7 +187,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
};
const char comment_chars[] = ";";
-@@ -79,6 +80,13 @@
+@@ -80,6 +81,13 @@ static struct mcu_type_s mcu_types[] =
{"avr5", AVR_ISA_AVR51, bfd_mach_avr5},
{"avr51", AVR_ISA_AVR51, bfd_mach_avr51},
{"avr6", AVR_ISA_AVR6, bfd_mach_avr6},
@@ -184,14 +201,14 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
{"attiny11", AVR_ISA_AVR1, bfd_mach_avr1},
{"attiny12", AVR_ISA_AVR1, bfd_mach_avr1},
-@@ -241,6 +249,21 @@
+@@ -216,6 +224,21 @@ static struct mcu_type_s mcu_types[] =
{"m3001b", AVR_ISA_AVR51, bfd_mach_avr51},
{"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
++ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
+ {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
@@ -206,7 +223,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
{NULL, 0, 0}
};
-@@ -418,6 +441,11 @@
+@@ -393,6 +416,11 @@ md_show_usage (FILE *stream)
" avr5 - enhanced AVR core with up to 64K program memory\n"
" avr51 - enhanced AVR core with up to 128K program memory\n"
" avr6 - enhanced AVR core with up to 256K program memory\n"
@@ -218,7 +235,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
" or immediate microcontroller name.\n"));
fprintf (stream,
_(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-@@ -845,7 +873,12 @@
+@@ -820,7 +848,12 @@ avr_operand (struct avr_opcodes_s *opcod
if (*str == '+')
{
++str;
@@ -232,7 +249,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
}
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
-@@ -962,6 +995,16 @@
+@@ -937,6 +970,16 @@ avr_operand (struct avr_opcodes_s *opcod
}
break;
@@ -249,10 +266,10 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
case '?':
break;
-diff -Nur ../binutils-2.20.orig/gas/doc/c-avr.texi ./gas/doc/c-avr.texi
---- ../binutils-2.20.orig/gas/doc/c-avr.texi 2010-03-04 11:19:26.000000000 +0100
-+++ ./gas/doc/c-avr.texi 2010-03-04 11:34:09.000000000 +0100
-@@ -86,6 +86,27 @@
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2009-09-02 02:24:21.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 11:44:52.000000000 -0500
+@@ -80,6 +80,27 @@ atmega128rfa1, at90can128, at90usb1286,
Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
atmega2560, atmega2561).
@@ -280,9 +297,9 @@ diff -Nur ../binutils-2.20.orig/gas/doc/c-avr.texi ./gas/doc/c-avr.texi
@cindex @code{-mall-opcodes} command line option, AVR
@item -mall-opcodes
Accept all AVR opcodes, even if not supported by @code{-mmcu}.
-diff -Nur ../binutils-2.20.orig/include/elf/avr.h ./include/elf/avr.h
---- ../binutils-2.20.orig/include/elf/avr.h 2008-08-09 07:35:13.000000000 +0200
-+++ ./include/elf/avr.h 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp include/elf/avr.h include/elf/avr.h
+--- include/elf/avr.h 2008-08-09 00:35:13.000000000 -0500
++++ include/elf/avr.h 2011-06-07 11:44:52.000000000 -0500
@@ -40,6 +40,13 @@
#define E_AVR_MACH_AVR5 5
#define E_AVR_MACH_AVR51 51
@@ -297,9 +314,9 @@ diff -Nur ../binutils-2.20.orig/include/elf/avr.h ./include/elf/avr.h
/* Relocations. */
START_RELOC_NUMBERS (elf_avr_reloc_type)
-diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
---- ../binutils-2.20.orig/include/opcode/avr.h 2008-08-09 07:35:13.000000000 +0200
-+++ ./include/opcode/avr.h 2010-03-04 11:34:09.000000000 +0100
+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) */
@@ -326,7 +343,7 @@ diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
? - use this opcode entry if no parameters, else use next opcode entry
Order is important - some binary opcodes have more than one name,
-@@ -168,7 +173,8 @@
+@@ -168,7 +173,8 @@ AVR_INSN (reti, "", "1001010100011000
AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588)
AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598)
AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
@@ -336,121 +353,17 @@ diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-@@ -282,3 +288,6 @@
+@@ -282,3 +288,6 @@ AVR_INSN (st, "e,r", "100!001rrrrree-+
AVR_INSN (eicall, "", "1001010100011001", 1, AVR_ISA_EIND, 0x9519)
AVR_INSN (eijmp, "", "1001010000011001", 1, AVR_ISA_EIND, 0x9419)
+/* DES instruction for encryption and decryption */
+AVR_INSN (des, "E", "10010100EEEE1011", 1, AVR_ISA_DES, 0x940B)
+
-diff -Nur ../binutils-2.20.orig/ld/Makefile.am ./ld/Makefile.am
---- ../binutils-2.20.orig/ld/Makefile.am 2009-09-01 22:56:51.000000000 +0200
-+++ ./ld/Makefile.am 2010-03-04 11:34:09.000000000 +0100
-@@ -148,6 +148,13 @@
- 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 @@
- $(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 -Nur ../binutils-2.20.orig/ld/Makefile.in ./ld/Makefile.in
---- ../binutils-2.20.orig/ld/Makefile.in 2009-09-07 14:10:24.000000000 +0200
-+++ ./ld/Makefile.in 2010-03-04 11:34:09.000000000 +0100
-@@ -434,6 +434,13 @@
- 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 \
-@@ -2068,6 +2075,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 -Nur ../binutils-2.20.orig/ld/configure.tgt ./ld/configure.tgt
---- ../binutils-2.20.orig/ld/configure.tgt 2009-08-06 19:38:03.000000000 +0200
-+++ ./ld/configure.tgt 2010-03-04 11:34:09.000000000 +0100
-@@ -110,7 +110,7 @@
+diff -Naurp ld/configure.tgt ld/configure.tgt
+--- ld/configure.tgt 2009-08-06 12:38:03.000000000 -0500
++++ ld/configure.tgt 2011-06-07 11:44:52.000000000 -0500
+@@ -110,7 +110,7 @@ xscale-*-coff) targ_emul=armcoff ;;
xscale-*-elf) targ_emul=armelf
;;
avr-*-*) targ_emul=avr2
@@ -459,9 +372,9 @@ diff -Nur ../binutils-2.20.orig/ld/configure.tgt ./ld/configure.tgt
;;
bfin-*-elf) targ_emul=elf32bfin;
targ_extra_emuls="elf32bfinfd"
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh ./ld/emulparams/avrxmega1.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega1.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega1.sh ld/emulparams/avrxmega1.sh
+--- ld/emulparams/avrxmega1.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega1.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:101
+MACHINE=
@@ -475,9 +388,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh ./ld/emulparams/avrxmega2.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega2.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega2.sh ld/emulparams/avrxmega2.sh
+--- ld/emulparams/avrxmega2.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega2.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:102
+MACHINE=
@@ -491,9 +404,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh ./ld/emulparams/avrxmega3.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega3.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega3.sh ld/emulparams/avrxmega3.sh
+--- ld/emulparams/avrxmega3.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega3.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:103
+MACHINE=
@@ -507,9 +420,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh ./ld/emulparams/avrxmega4.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega4.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega4.sh ld/emulparams/avrxmega4.sh
+--- ld/emulparams/avrxmega4.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega4.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:104
+MACHINE=
@@ -523,9 +436,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh ./ld/emulparams/avrxmega5.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega5.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega5.sh ld/emulparams/avrxmega5.sh
+--- ld/emulparams/avrxmega5.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega5.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:105
+MACHINE=
@@ -539,9 +452,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh ./ld/emulparams/avrxmega6.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega6.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega6.sh ld/emulparams/avrxmega6.sh
+--- ld/emulparams/avrxmega6.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega6.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:106
+MACHINE=
@@ -555,9 +468,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh ./ld/emulparams/avrxmega7.sh
---- ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh 1970-01-01 01:00:00.000000000 +0100
-+++ ./ld/emulparams/avrxmega7.sh 2010-03-04 11:34:09.000000000 +0100
+diff -Naurp ld/emulparams/avrxmega7.sh ld/emulparams/avrxmega7.sh
+--- ld/emulparams/avrxmega7.sh 1969-12-31 18:00:00.000000000 -0600
++++ ld/emulparams/avrxmega7.sh 2011-06-07 11:44:52.000000000 -0500
@@ -0,0 +1,12 @@
+ARCH=avr:107
+MACHINE=
@@ -571,10 +484,10 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
-diff -Nur ../binutils-2.20.orig/ld/emultempl/avrelf.em ./ld/emultempl/avrelf.em
---- ../binutils-2.20.orig/ld/emultempl/avrelf.em 2009-09-02 09:25:35.000000000 +0200
-+++ ./ld/emultempl/avrelf.em 2010-03-04 11:34:09.000000000 +0100
-@@ -71,8 +71,10 @@
+diff -Naurp ld/emultempl/avrelf.em ld/emultempl/avrelf.em
+--- ld/emultempl/avrelf.em 2009-09-02 02:25:35.000000000 -0500
++++ ld/emultempl/avrelf.em 2011-06-07 11:44:52.000000000 -0500
+@@ -71,8 +71,10 @@ avr_elf_${EMULATION_NAME}_before_allocat
gld${EMULATION_NAME}_before_allocation ();
@@ -587,10 +500,114 @@ diff -Nur ../binutils-2.20.orig/ld/emultempl/avrelf.em ./ld/emultempl/avrelf.em
avr_no_stubs = TRUE;
avr_elf_set_global_bfd_parameters ();
-diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
---- ../binutils-2.20.orig/opcodes/avr-dis.c 2008-11-06 13:03:24.000000000 +0100
-+++ ./opcodes/avr-dis.c 2010-03-04 11:34:09.000000000 +0100
-@@ -50,7 +50,7 @@
+diff -Naurp ld/Makefile.am ld/Makefile.am
+--- ld/Makefile.am 2010-02-22 02:07:01.000000000 -0600
++++ ld/Makefile.am 2011-06-07 11:44:52.000000000 -0500
+@@ -148,6 +148,13 @@ ALL_EMULATIONS = \
+ eavr5.o \
+ eavr51.o \
+ eavr6.o \
++ eavrxmega1.o \
++ eavrxmega2.o \
++ eavrxmega3.o \
++ eavrxmega4.o \
++ eavrxmega5.o \
++ eavrxmega6.o \
++ eavrxmega7.o \
+ ecoff_i860.o \
+ ecoff_sparc.o \
+ eelf32_spu.o \
+@@ -727,6 +734,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+ ${GEN_DEPENDS}
+ ${GENSCRIPTS} avr6 "$(tdir_avr2)"
++eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)"
++eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)"
++eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)"
++eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)"
++eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)"
++eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)"
++eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
+ ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
+diff -Naurp ld/Makefile.in ld/Makefile.in
+--- ld/Makefile.in 2010-03-03 08:06:21.000000000 -0600
++++ ld/Makefile.in 2011-06-07 11:44:52.000000000 -0500
+@@ -434,6 +434,13 @@ ALL_EMULATIONS = \
+ eavr5.o \
+ eavr51.o \
+ eavr6.o \
++ eavrxmega1.o \
++ eavrxmega2.o \
++ eavrxmega3.o \
++ eavrxmega4.o \
++ eavrxmega5.o \
++ eavrxmega6.o \
++ eavrxmega7.o \
+ ecoff_i860.o \
+ ecoff_sparc.o \
+ eelf32_spu.o \
+@@ -2069,6 +2076,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+ ${GEN_DEPENDS}
+ ${GENSCRIPTS} avr6 "$(tdir_avr2)"
++eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)"
++eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)"
++eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)"
++eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)"
++eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)"
++eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)"
++eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \
++ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
++ ${GEN_DEPENDS}
++ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
+ ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
+diff -Naurp opcodes/avr-dis.c opcodes/avr-dis.c
+--- opcodes/avr-dis.c 2008-11-06 06:03:24.000000000 -0600
++++ opcodes/avr-dis.c 2011-06-07 11:44:52.000000000 -0500
+@@ -50,7 +50,7 @@ static const char * comment_start = "0x"
static int
avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint,
@@ -599,12 +616,11 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
{
int ok = 1;
*sym = 0;
-@@ -118,8 +118,18 @@
+@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned
case 'z':
*buf++ = 'Z';
- if (insn & 0x1)
-- *buf++ = '+';
+
+ /* Check for post-increment. */
+ char *s;
@@ -612,7 +628,7 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
+ {
+ if (*s == '+')
+ {
-+ *buf++ = '+';
+ *buf++ = '+';
+ break;
+ }
+ }
@@ -620,18 +636,18 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
*buf = '\0';
if (AVR_UNDEF_P (insn))
sprintf (comment, _("undefined"));
-@@ -226,6 +236,10 @@
- sprintf (comment, "%d", x);
+@@ -227,6 +237,10 @@ avr_operand (unsigned int insn, unsigned
}
break;
-+
+
+ case 'E':
+ sprintf (buf, "%d", (insn >> 4) & 15);
+ break;
-
++
case '?':
*buf = '\0';
-@@ -331,7 +345,8 @@
+ break;
+@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
if (opcode->name)
{
@@ -641,7 +657,7 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
insn2 = 0;
ok = 1;
-@@ -342,14 +357,14 @@
+@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
cmd_len = 4;
}
diff --git a/devel/avr-binutils/files/patch-newdevices b/devel/avr-binutils/files/patch-401-binutils-2.20.1-new-devices
index b268955b87aa..34f3a7bfb86d 100644
--- a/devel/avr-binutils/files/patch-newdevices
+++ b/devel/avr-binutils/files/patch-401-binutils-2.20.1-new-devices
@@ -1,7 +1,64 @@
-diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
---- ggas/config/tc-avr.c 2009-09-09 13:43:29.000000000 +0530
-+++ gas/config/tc-avr.c 2010-02-12 20:42:30.742688700 +0530
-@@ -133,9 +133,12 @@
+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},
@@ -14,7 +71,14 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
{"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
{"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
{"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4},
-@@ -150,40 +153,63 @@
+- {"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},
@@ -25,6 +89,7 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
+ {"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},
@@ -32,27 +97,28 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
{"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},
-+ {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16c1", 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},
-+ {"atmega32hvb",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},
@@ -74,14 +140,32 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
+ {"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},
++ {"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},
-diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
---- ggas/doc/c-avr.texi 2009-09-02 12:54:21.000000000 +0530
-+++ gas/doc/c-avr.texi 2010-02-12 21:31:02.132717100 +0530
-@@ -43,9 +43,10 @@
+@@ -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,
@@ -89,13 +173,18 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861,
-attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289).
+attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
-+attiny84, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
-+attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
-+at86rf401, ata6289).
++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).
-@@ -58,20 +59,25 @@
+@@ -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
@@ -104,8 +193,8 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1).
+memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
+atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
-+atmega4hvd, atmega8hvd, at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b,
-+at90pwm81, atmega8m1, atmega8c1).
++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,
@@ -119,17 +208,22 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-at90scr100).
+memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163,
+atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
-+atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, atmega16c1,
-+atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325,
-+atmega325p, atmega3250, atmega3250p, atmega328, atmega328p, atmega329,
-+atmega329p, atmega329pa, atmega3290, 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).
++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/devel/avr-binutils/files/patch-402-binutils-2.20.1-avrtiny10 b/devel/avr-binutils/files/patch-402-binutils-2.20.1-avrtiny10
new file mode 100644
index 000000000000..d51aeb5c0131
--- /dev/null
+++ b/devel/avr-binutils/files/patch-402-binutils-2.20.1-avrtiny10
@@ -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/devel/avr-binutils/files/patch-403-binutils-2.20.1-xmega128a1u-64a1u b/devel/avr-binutils/files/patch-403-binutils-2.20.1-xmega128a1u-64a1u
new file mode 100644
index 000000000000..03c651b78e72
--- /dev/null
+++ b/devel/avr-binutils/files/patch-403-binutils-2.20.1-xmega128a1u-64a1u
@@ -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/devel/avr-binutils/files/patch-404-binutils-2.20.1-atxmega16x1-32x1 b/devel/avr-binutils/files/patch-404-binutils-2.20.1-atxmega16x1-32x1
new file mode 100644
index 000000000000..97f8e1c8cdb5
--- /dev/null
+++ b/devel/avr-binutils/files/patch-404-binutils-2.20.1-atxmega16x1-32x1
@@ -0,0 +1,30 @@
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-06-07 12:03:38.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 12:03:51.000000000 -0500
+@@ -249,8 +249,10 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
++ {"atxmega16x1", 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-06-07 12:03:38.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 12:03:51.000000000 -0500
+@@ -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).
++atxmega16x1, 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/devel/avr-binutils/files/patch-405-binutils-2.20.1-atxmega128b1 b/devel/avr-binutils/files/patch-405-binutils-2.20.1-atxmega128b1
new file mode 100644
index 000000000000..2dd65d2fbabc
--- /dev/null
+++ b/devel/avr-binutils/files/patch-405-binutils-2.20.1-atxmega128b1
@@ -0,0 +1,36 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-06-07 11:47:11.000000000 -0500
++++ binutils/size.c 2011-06-07 12:23:39.000000000 -0500
+@@ -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-06-07 12:05:36.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 12:23:39.000000000 -0500
+@@ -258,6 +258,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-06-07 12:05:36.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 12:23:39.000000000 -0500
+@@ -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/devel/avr-binutils/files/patch-406-binutils-2.20.1-atxmega256a3bu b/devel/avr-binutils/files/patch-406-binutils-2.20.1-atxmega256a3bu
new file mode 100644
index 000000000000..fe44be90af09
--- /dev/null
+++ b/devel/avr-binutils/files/patch-406-binutils-2.20.1-atxmega256a3bu
@@ -0,0 +1,34 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-06-07 12:31:12.000000000 -0500
++++ binutils/size.c 2011-06-07 12:31:23.000000000 -0500
+@@ -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-06-07 12:31:12.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 12:31:23.000000000 -0500
+@@ -264,6 +264,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-06-07 12:31:12.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 12:31:23.000000000 -0500
+@@ -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/devel/avr-binutils/files/patch-407-binutils-2.20.1-at90pwm161 b/devel/avr-binutils/files/patch-407-binutils-2.20.1-at90pwm161
new file mode 100644
index 000000000000..43f2e66ea67a
--- /dev/null
+++ b/devel/avr-binutils/files/patch-407-binutils-2.20.1-at90pwm161
@@ -0,0 +1,73 @@
+diff -rupw binutils/size.c binutils/size.c
+--- binutils/size.c 2011-01-10 13:22:40.000000000 -0600
++++ binutils/size.c 2011-01-05 19:15:32.000000000 -0600
+@@ -220,6 +220,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 -rupw gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-01-10 13:22:40.000000000 -0600
++++ gas/config/tc-avr.c 2011-01-05 19:09:23.000000000 -0600
+@@ -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 -rupw gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2011-01-10 13:22:40.000000000 -0600
++++ gas/doc/c-avr.texi 2011-01-05 19:10:26.000000000 -0600
+@@ -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 -rupw ld/Makefile.in ld/Makefile.in
+--- ld/Makefile.in 2011-01-10 13:22:05.000000000 -0600
++++ ld/Makefile.in 2011-01-06 11:18:12.000000000 -0600
+@@ -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/devel/avr-binutils/files/patch-408-binutils-2.20.1-atmega16hvb-32hvb b/devel/avr-binutils/files/patch-408-binutils-2.20.1-atmega16hvb-32hvb
new file mode 100644
index 000000000000..eeccf6a8532b
--- /dev/null
+++ b/devel/avr-binutils/files/patch-408-binutils-2.20.1-atmega16hvb-32hvb
@@ -0,0 +1,52 @@
+diff -Naur binutils/size.c binutils/size.c
+--- binutils/size.c 2011-01-19 13:46:48.000000000 -0600
++++ binutils/size.c 2011-01-19 13:50:05.000000000 -0600
+@@ -207,8 +207,8 @@
+ {"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},
+@@ -244,7 +244,8 @@
+ {"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 -Naur gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-01-19 13:46:48.000000000 -0600
++++ gas/config/tc-avr.c 2011-01-19 13:51:06.000000000 -0600
+@@ -220,7 +220,9 @@
+ {"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 -Naur gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2011-01-19 13:46:48.000000000 -0600
++++ gas/doc/c-avr.texi 2011-01-19 13:52:30.000000000 -0600
+@@ -75,9 +75,9 @@
+ 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/devel/avr-binutils/files/patch-409-binutils-2.20.1-atmega32_5_50_90_pa b/devel/avr-binutils/files/patch-409-binutils-2.20.1-atmega32_5_50_90_pa
new file mode 100644
index 000000000000..bf390e35be86
--- /dev/null
+++ b/devel/avr-binutils/files/patch-409-binutils-2.20.1-atmega32_5_50_90_pa
@@ -0,0 +1,88 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-02-17 11:55:20.000000000 -0600
++++ binutils/size.c 2011-02-16 15:37:59.000000000 -0600
+@@ -194,9 +194,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},
+@@ -206,6 +208,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-02-17 11:55:20.000000000 -0600
++++ gas/config/tc-avr.c 2011-02-16 15:22:24.000000000 -0600
+@@ -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 07:49:55.000000000 -0600
++++ gas/doc/as.info 2011-02-17 11:59:53.000000000 -0600
+@@ -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-02-17 11:55:20.000000000 -0600
++++ gas/doc/c-avr.texi 2011-02-16 15:42:20.000000000 -0600
+@@ -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/devel/avr-binutils/files/patch-410-binutils-2.20.1-attiny1634 b/devel/avr-binutils/files/patch-410-binutils-2.20.1-attiny1634
new file mode 100644
index 000000000000..e41a2f6193e7
--- /dev/null
+++ b/devel/avr-binutils/files/patch-410-binutils-2.20.1-attiny1634
@@ -0,0 +1,36 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-06-07 12:36:56.000000000 -0500
++++ binutils/size.c 2011-06-07 12:37:08.000000000 -0500
+@@ -250,6 +250,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-06-07 12:36:56.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 12:37:08.000000000 -0500
+@@ -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-06-07 12:36:56.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 12:37:08.000000000 -0500
+@@ -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/devel/avr-binutils/files/patch-411-binutils-2.20.1-atmega48pa b/devel/avr-binutils/files/patch-411-binutils-2.20.1-atmega48pa
new file mode 100644
index 000000000000..9dd0e85f3967
--- /dev/null
+++ b/devel/avr-binutils/files/patch-411-binutils-2.20.1-atmega48pa
@@ -0,0 +1,39 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-06-07 12:38:50.000000000 -0500
++++ binutils/size.c 2011-06-07 12:39:18.000000000 -0500
+@@ -288,6 +288,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-06-07 12:38:50.000000000 -0500
++++ gas/config/tc-avr.c 2011-06-07 12:39:18.000000000 -0500
+@@ -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-06-07 12:38:50.000000000 -0500
++++ gas/doc/c-avr.texi 2011-06-07 12:39:18.000000000 -0500
+@@ -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/devel/avr-binutils/files/patch-500-binutils-2.20.1-bug13789 b/devel/avr-binutils/files/patch-500-binutils-2.20.1-bug13789
new file mode 100644
index 000000000000..6bd1e412a10c
--- /dev/null
+++ b/devel/avr-binutils/files/patch-500-binutils-2.20.1-bug13789
@@ -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=0x1F
+ 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/devel/avr-binutils/files/patch-aa b/devel/avr-binutils/files/patch-aa
deleted file mode 100644
index 154b211ebfd2..000000000000
--- a/devel/avr-binutils/files/patch-aa
+++ /dev/null
@@ -1,50 +0,0 @@
---- etc/Makefile.in~ 2009-07-31 00:44:48.000000000 +0200
-+++ etc/Makefile.in 2010-03-03 17:13:29.000000000 +0100
-@@ -64,7 +64,8 @@
- HTMLFILES = standards.html configure.html
-
- all: info
--install: install-info
-+#install: install-info
-+install:
-
- uninstall:
-
---- libiberty/Makefile.in~ 2009-08-23 21:03:58.000000000 +0200
-+++ libiberty/Makefile.in 2010-03-03 17:14:00.000000000 +0100
-@@ -321,7 +321,8 @@
- @MAINT@ echo stamp > stamp-functions
-
- INSTALL_DEST = @INSTALL_DEST@
--install: install_to_$(INSTALL_DEST) install-subdir
-+#install: install_to_$(INSTALL_DEST) install-subdir
-+install:
-
- # This is tricky. Even though CC in the Makefile contains
- # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
---- bfd/Makefile.in~ 2009-10-16 13:47:48.000000000 +0200
-+++ bfd/Makefile.in 2010-03-03 17:19:17.000000000 +0100
-@@ -1673,8 +1673,9 @@
- for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(bfdincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
--install: $(BUILT_SOURCES)
-- $(MAKE) $(AM_MAKEFLAGS) install-recursive
-+#install: $(BUILT_SOURCES)
-+# $(MAKE) $(AM_MAKEFLAGS) install-recursive
-+install:
- install-exec: install-exec-recursive
- install-data: install-data-recursive
- uninstall: uninstall-recursive
---- opcodes/Makefile.in~ 2009-09-07 14:08:03.000000000 +0200
-+++ opcodes/Makefile.in 2010-03-03 17:19:43.000000000 +0100
-@@ -1051,7 +1051,8 @@
- for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(bfdincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
--install: install-recursive
-+#install: install-recursive
-+install:
- install-exec: install-exec-recursive
- install-data: install-data-recursive
- uninstall: uninstall-recursive
diff --git a/devel/avr-binutils/files/patch-as-dwarf b/devel/avr-binutils/files/patch-as-dwarf
deleted file mode 100644
index d081eb3a9982..000000000000
--- a/devel/avr-binutils/files/patch-as-dwarf
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -ru binutils-2.19.1.orig/gas/config/tc-avr.h binutils-2.19.1/gas/config/tc-avr.h
---- gas/config/tc-avr.h Tue Jul 3 14:01:04 2007
-+++ gas/config/tc-avr.h Thu Apr 16 20:46:54 2009
-@@ -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/devel/avr-binutils/pkg-descr b/devel/avr-binutils/pkg-descr
index 4e1e878472cb..ccb3061e03c1 100644
--- a/devel/avr-binutils/pkg-descr
+++ b/devel/avr-binutils/pkg-descr
@@ -7,14 +7,7 @@ generate AVR (extended) COFF files to be used on Atmel AVR Studio and
VMLAB. Note that this patch has known issues, see
http://www.sax.de/~joerg/README.coff-avr-patch
-In addition to the stock binutils-2.18 distribution, support for the
-following AVR devices has been added by a private patch:
-
- ATtiny43U, ATtiny48/88, ATtiny167
- AT90PWM2B/PWM3B, AT90PWM216/PWM316
- ATmega32C1, ATmega32M1, ATmega32U4
- ATmega48P/88P/168P/328P
- ATmega32HVB, ATmega1284P
- ATxmega64A1, ATxmega128A1
+The support for additional devices has been synchronize with the
+latest public Atmel AVR Tools package.
WWW: http://www.sourceware.org/binutils/