aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>2011-12-17 06:39:21 +0800
committerjoerg <joerg@FreeBSD.org>2011-12-17 06:39:21 +0800
commit5dc1c0929ee380bc82b1479b358b2b15f6b25c77 (patch)
tree6b3316c11fc1d2698bc0dcbff19eddc92010e806 /devel
parent4e69cea8e5793bb2c158f57b4fd4c896adef0157 (diff)
downloadfreebsd-ports-gnome-5dc1c0929ee380bc82b1479b358b2b15f6b25c77.tar.gz
freebsd-ports-gnome-5dc1c0929ee380bc82b1479b358b2b15f6b25c77.tar.zst
freebsd-ports-gnome-5dc1c0929ee380bc82b1479b358b2b15f6b25c77.zip
Upgrade to binutils 2.20.1.
Completely reorganize the patches for this port. Patches for new devices are now synchronized with the Atmel AVR tools. The main difference is the naming scheme, as FreeBSD patches start with "patch-", while the Atmel AVR Tools patches end up in ".patch".
Diffstat (limited to 'devel')
-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/