-diff -Nruw 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
-@@ -228,6 +228,8 @@
+diff -uNdr binutils-2.21-orig.0/bfd/Makefile.am binutils-2.21/bfd/Makefile.am
+--- binutils-2.21-orig.0/bfd/Makefile.am 2010-12-08 09:37:33.000000000 +0100
++++ binutils-2.21/bfd/Makefile.am 2011-06-17 18:17:52.000000000 +0200
+@@ -232,6 +232,8 @@
coff-apollo.lo \
coff-arm.lo \
coff-aux.lo \
coff-go32.lo \
coff-h8300.lo \
coff-h8500.lo \
-@@ -411,6 +413,8 @@
+@@ -413,6 +415,8 @@
coff-apollo.c \
coff-arm.c \
coff-aux.c \
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
-diff -Nruw 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
-@@ -524,6 +524,8 @@
+diff -uNdr binutils-2.21-orig.0/bfd/Makefile.in binutils-2.21/bfd/Makefile.in
+--- binutils-2.21-orig.0/bfd/Makefile.in 2010-12-08 09:37:36.000000000 +0100
++++ binutils-2.21/bfd/Makefile.in 2011-06-17 18:17:52.000000000 +0200
+@@ -532,6 +532,8 @@
coff-apollo.lo \
coff-arm.lo \
coff-aux.lo \
coff-go32.lo \
coff-h8300.lo \
coff-h8500.lo \
-@@ -707,6 +709,8 @@
+@@ -713,6 +715,8 @@
coff-apollo.c \
coff-arm.c \
coff-aux.c \
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/bfd/coff-avr.c binutils-2.21/bfd/coff-avr.c
+--- binutils-2.21-orig.0/bfd/coff-avr.c 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/bfd/coff-avr.c 2011-06-17 18:17:52.000000000 +0200
@@ -0,0 +1,613 @@
+/* BFD back-end for Atmel AVR COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
+
+ COFF_SWAP_TABLE
+};
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/bfd/coff-ext-avr.c binutils-2.21/bfd/coff-ext-avr.c
+--- binutils-2.21-orig.0/bfd/coff-ext-avr.c 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/bfd/coff-ext-avr.c 2011-06-17 18:17:52.000000000 +0200
@@ -0,0 +1,428 @@
+/* BFD back-end for Atmel AVR "extended" COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
+
+ COFF_SWAP_TABLE
+};
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/bfd/coffcode.h binutils-2.21/bfd/coffcode.h
+--- binutils-2.21-orig.0/bfd/coffcode.h 2010-11-04 17:03:22.000000000 +0100
++++ binutils-2.21/bfd/coffcode.h 2011-06-17 18:17:52.000000000 +0200
@@ -1,3 +1,4 @@
+
/* Support for the generic parts of most COFF variants, for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-@@ -1910,6 +1911,17 @@
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@@ -1934,6 +1935,17 @@
coff->relocbase = 0;
coff->local_toc_sym_map = 0;
/* make_abs_section(abfd);*/
return TRUE;
-@@ -1934,17 +1946,6 @@
+@@ -1958,17 +1970,6 @@
coff->sym_filepos = internal_f->f_symptr;
coff->timestamp = internal_f->f_timdat;
obj_raw_syment_count (abfd) =
-@@ -2076,6 +2077,11 @@
+@@ -2100,6 +2101,11 @@
}
break;
#endif
#ifdef MC68MAGIC
case MC68MAGIC:
case M68MAGIC:
-@@ -2871,6 +2877,13 @@
+@@ -2879,6 +2885,13 @@
return TRUE;
#endif
#ifdef PPCMAGIC
case bfd_arch_powerpc:
*magicp = PPCMAGIC;
-@@ -3698,6 +3711,11 @@
+@@ -3705,6 +3718,11 @@
section.s_page = 0;
#endif
#ifdef COFF_WITH_PE
section.s_paddr = 0;
#endif
-@@ -4042,6 +4060,17 @@
+@@ -4051,6 +4069,17 @@
internal_a.magic = ZMAGIC;
#endif
#if defined(PPC_PE)
#define __A_MAGIC_SET__
internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC;
-@@ -4109,8 +4138,16 @@
+@@ -4113,8 +4142,16 @@
#endif
}
/* Now should write relocs, strings, syms. */
obj_sym_filepos (abfd) = sym_base;
-@@ -4668,6 +4705,10 @@
+@@ -4672,6 +4709,10 @@
/* In PE, 0x69 (105) denotes a weak external symbol. */
case C_NT_WEAK:
#endif
switch (coff_classify_symbol (abfd, &src->u.syment))
{
case COFF_SYMBOL_GLOBAL:
-@@ -4891,7 +4932,9 @@
+@@ -4895,7 +4936,9 @@
&& src->u.syment.n_scnum == 0)
break;
/* Fall through. */
case C_ULABEL: /* Undefined label. */
case C_USTATIC: /* Undefined static. */
#ifndef COFF_WITH_PE
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/bfd/coffgen.c binutils-2.21/bfd/coffgen.c
+--- binutils-2.21-orig.0/bfd/coffgen.c 2010-04-27 16:42:50.000000000 +0200
++++ binutils-2.21/bfd/coffgen.c 2011-06-17 18:17:52.000000000 +0200
@@ -699,6 +699,20 @@
if (last_file != NULL)
last_file->n_value = native_index;
new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
if (!new_symbol->native)
return NULL;
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/bfd/coffswap.h binutils-2.21/bfd/coffswap.h
+--- binutils-2.21-orig.0/bfd/coffswap.h 2009-09-05 09:56:22.000000000 +0200
++++ binutils-2.21/bfd/coffswap.h 2011-06-17 18:17:52.000000000 +0200
@@ -383,7 +383,11 @@
void * ext1,
int type,
}
else
memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
-diff -Nruw 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
-@@ -339,6 +339,7 @@
+diff -uNdr binutils-2.21-orig.0/bfd/config.bfd binutils-2.21/bfd/config.bfd
+--- binutils-2.21-orig.0/bfd/config.bfd 2010-12-01 12:03:10.000000000 +0100
++++ binutils-2.21/bfd/config.bfd 2011-06-17 18:17:52.000000000 +0200
+@@ -338,6 +338,7 @@
avr-*-*)
targ_defvec=bfd_elf32_avr_vec
;;
bfin-*-*)
-diff -Nruw bfd/configure bfd/configure
---- bfd/configure 2009-10-16 17:17:47.000000000 +0530
-+++ bfd/configure 2010-02-10 17:35:58.331474600 +0530
-@@ -14782,6 +14782,8 @@
+diff -uNdr binutils-2.21-orig.0/bfd/configure binutils-2.21/bfd/configure
+--- binutils-2.21-orig.0/bfd/configure 2010-12-08 09:37:34.000000000 +0100
++++ binutils-2.21/bfd/configure 2011-06-17 18:17:52.000000000 +0200
+@@ -15035,6 +15035,8 @@
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
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
---- bfd/configure.in 2009-10-16 17:17:44.000000000 +0530
-+++ bfd/configure.in 2010-02-10 17:35:58.331474600 +0530
+diff -uNdr binutils-2.21-orig.0/bfd/configure.in binutils-2.21/bfd/configure.in
+--- binutils-2.21-orig.0/bfd/configure.in 2010-12-08 09:37:33.000000000 +0100
++++ binutils-2.21/bfd/configure.in 2011-06-17 18:17:52.000000000 +0200
@@ -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 " ;;
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
---- bfd/targets.c 2009-09-10 17:17:13.000000000 +0530
-+++ bfd/targets.c 2010-02-10 17:35:58.347099600 +0530
-@@ -564,6 +564,8 @@
+diff -uNdr binutils-2.21-orig.0/bfd/targets.c binutils-2.21/bfd/targets.c
+--- binutils-2.21-orig.0/bfd/targets.c 2010-10-22 14:08:28.000000000 +0200
++++ binutils-2.21/bfd/targets.c 2011-06-17 18:17:52.000000000 +0200
+@@ -575,6 +575,8 @@
extern const bfd_target armpe_little_vec;
extern const bfd_target armpei_big_vec;
extern const bfd_target armpei_little_vec;
extern const bfd_target b_out_vec_big_host;
extern const bfd_target b_out_vec_little_host;
extern const bfd_target bfd_pei_ia64_vec;
-@@ -890,6 +892,8 @@
+@@ -911,6 +913,8 @@
&armpe_little_vec,
&armpei_big_vec,
&armpei_little_vec,
&b_out_vec_big_host,
&b_out_vec_little_host,
#ifdef BFD64
-diff -Nruw 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
-@@ -101,7 +101,7 @@
+diff -uNdr binutils-2.21-orig.0/binutils/Makefile.am binutils-2.21/binutils/Makefile.am
+--- binutils-2.21-orig.0/binutils/Makefile.am 2010-11-05 14:23:02.000000000 +0100
++++ binutils-2.21/binutils/Makefile.am 2011-06-17 18:20:09.000000000 +0200
+@@ -103,7 +103,7 @@
resbin.c rescoff.c resrc.c resres.c \
size.c srconv.c stabs.c strings.c sysdump.c \
- unwind-ia64.c version.c \
+ unwind-ia64.c elfedit.c version.c \
- windres.c winduni.c wrstabs.c \
+ windres.c winduni.c wrcoff.c wrstabs.c \
windmc.c mclex.c
GENERATED_CFILES = \
-@@ -109,7 +109,7 @@
+@@ -111,7 +111,7 @@
defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
-diff -Nruw 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
-@@ -126,7 +126,7 @@
+diff -uNdr binutils-2.21-orig.0/binutils/Makefile.in binutils-2.21/binutils/Makefile.in
+--- binutils-2.21-orig.0/binutils/Makefile.in 2010-11-05 14:23:02.000000000 +0100
++++ binutils-2.21/binutils/Makefile.in 2011-06-17 18:20:34.000000000 +0200
+@@ -131,7 +131,7 @@
nm_new_OBJECTS = $(am_nm_new_OBJECTS)
nm_new_LDADD = $(LDADD)
am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT)
am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
-@@ -439,7 +439,7 @@
+@@ -444,7 +444,7 @@
resbin.c rescoff.c resrc.c resres.c \
size.c srconv.c stabs.c strings.c sysdump.c \
- unwind-ia64.c version.c \
+ unwind-ia64.c elfedit.c version.c \
- windres.c winduni.c wrstabs.c \
+ windres.c winduni.c wrcoff.c wrstabs.c \
windmc.c mclex.c
GENERATED_CFILES = \
-@@ -447,7 +447,7 @@
+@@ -452,7 +452,7 @@
defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
-diff -Nruw 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
-@@ -550,6 +550,32 @@
+diff -uNdr binutils-2.21-orig.0/binutils/bucomm.c binutils-2.21/binutils/bucomm.c
+--- binutils-2.21-orig.0/binutils/bucomm.c 2010-10-06 00:48:34.000000000 +0200
++++ binutils-2.21/binutils/bucomm.c 2011-06-17 18:17:52.000000000 +0200
+@@ -558,6 +558,32 @@
return ret;
}
+
/* 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
---- binutils/bucomm.h 2009-09-02 12:52:31.000000000 +0530
-+++ binutils/bucomm.h 2010-02-10 17:35:58.050224600 +0530
+ error message is printed and (off_t) -1 is returned. */
+diff -uNdr binutils-2.21-orig.0/binutils/bucomm.h binutils-2.21/binutils/bucomm.h
+--- binutils-2.21-orig.0/binutils/bucomm.h 2009-09-02 09:22:31.000000000 +0200
++++ binutils-2.21/binutils/bucomm.h 2011-06-17 18:17:52.000000000 +0200
@@ -58,6 +58,8 @@
off_t get_file_size (const char *);
extern char *program_name;
/* filemode.c */
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/binutils/budbg.h binutils-2.21/binutils/budbg.h
+--- binutils-2.21-orig.0/binutils/budbg.h 2009-09-02 09:22:31.000000000 +0200
++++ binutils-2.21/binutils/budbg.h 2011-06-17 18:17:52.000000000 +0200
@@ -52,8 +52,11 @@
extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
+ (bfd *abfd, void *, long *symcountp, asymbol ***);
+
#endif
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/binutils/debug.c binutils-2.21/binutils/debug.c
+--- binutils-2.21-orig.0/binutils/debug.c 2009-09-10 15:40:44.000000000 +0200
++++ binutils-2.21/binutils/debug.c 2011-06-17 18:17:52.000000000 +0200
@@ -31,6 +31,7 @@
#include <assert.h>
#include "bfd.h"
+ /* Not found, pass the original name on. */
+ return oname;
+}
-diff -Nruw 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
-@@ -440,6 +440,12 @@
+diff -uNdr binutils-2.21-orig.0/binutils/debug.h binutils-2.21/binutils/debug.h
+--- binutils-2.21-orig.0/binutils/debug.h 2009-09-10 15:40:44.000000000 +0200
++++ binutils-2.21/binutils/debug.h 2011-06-17 18:17:52.000000000 +0200
+@@ -441,6 +441,12 @@
extern bfd_boolean debug_start_source (void *, const char *);
/* 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
---- binutils/doc/objcopy.1 2009-10-16 17:22:19.000000000 +0530
-+++ binutils/doc/objcopy.1 2010-02-11 10:22:09.312500000 +0530
-@@ -202,6 +202,8 @@
+diff -uNdr binutils-2.21-orig.0/binutils/doc/objcopy.1 binutils-2.21/binutils/doc/objcopy.1
+--- binutils-2.21-orig.0/binutils/doc/objcopy.1 2010-12-08 09:39:12.000000000 +0100
++++ binutils-2.21/binutils/doc/objcopy.1 2011-06-17 18:24:32.000000000 +0200
+@@ -203,6 +203,8 @@
[\fB\-\-readonly\-text\fR]
[\fB\-\-pure\fR]
[\fB\-\-impure\fR]
[\fB\-\-file\-alignment=\fR\fInum\fR]
[\fB\-\-heap=\fR\fIsize\fR]
[\fB\-\-image\-base=\fR\fIaddress\fR]
-@@ -885,6 +887,23 @@
+@@ -911,6 +913,23 @@
It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
linker input file.
.RE
+takes precedence over any \fB\-\-change\-pathname\fR option. For some
+debugging formats that cannot handle long filenames, this options is
+implied (notably, some COFF debugging formats).
- .IP "\fB\-V\fR" 4
- .IX Item "-V"
- .PD 0
-diff -Nruw 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
+ .IP "\fB\-\-compress\-debug\-sections\fR" 4
+ .IX Item "--compress-debug-sections"
+ Compress \s-1DWARF\s0 debug sections using zlib.
+diff -uNdr binutils-2.21-orig.0/binutils/objcopy.c binutils-2.21/binutils/objcopy.c
+--- binutils-2.21-orig.0/binutils/objcopy.c 2010-10-29 14:10:25.000000000 +0200
++++ binutils-2.21/binutils/objcopy.c 2011-06-17 18:17:52.000000000 +0200
@@ -32,6 +32,7 @@
#include "elf-bfd.h"
#include <sys/stat.h>
#include "coff/internal.h"
#include "libcoff.h"
-@@ -297,6 +298,8 @@
+@@ -308,6 +309,8 @@
OPTION_IMPURE,
OPTION_EXTRACT_SYMBOL,
OPTION_REVERSE_BYTES,
OPTION_FILE_ALIGNMENT,
OPTION_HEAP,
OPTION_IMAGE_BASE,
-@@ -346,10 +349,12 @@
+@@ -358,10 +361,12 @@
{"adjust-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
{"adjust-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS},
{"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE},
{"change-section-address", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
{"change-section-lma", required_argument, 0, OPTION_CHANGE_SECTION_LMA},
{"change-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_VMA},
-@@ -543,6 +548,8 @@
+@@ -554,6 +559,8 @@
--prefix-alloc-sections <prefix>\n\
Add <prefix> to start of every allocatable\n\
section name\n\
--file-alignment <num> Set PE file alignment to <num>\n\
--heap <reserve>[,<commit>] Set PE reserve/commit heap to <reserve>/\n\
<commit>\n\
-@@ -999,6 +1006,8 @@
+@@ -1006,6 +1013,8 @@
asymbol **from = isyms, **to = osyms;
long src_count = 0, dst_count = 0;
int relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0;
for (; src_count < symcount; src_count++)
{
-@@ -1099,7 +1108,8 @@
+@@ -1106,7 +1115,8 @@
|| bfd_is_com_section (bfd_get_section (sym)))
keep = strip_symbols != STRIP_UNNEEDED;
else if ((flags & BSF_DEBUGGING) != 0) /* Debugging symbol. */
&& strip_symbols != STRIP_UNNEEDED
&& ! convert_debugging);
else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym)))
-@@ -2817,6 +2827,10 @@
+@@ -2857,6 +2867,10 @@
return write_ieee_debugging_info (obfd, dhandle);
if (bfd_get_flavour (obfd) == bfd_target_coff_flavour
|| bfd_get_flavour (obfd) == bfd_target_elf_flavour)
{
bfd_byte *syms, *strings;
-@@ -3641,6 +3655,30 @@
+@@ -3707,6 +3721,30 @@
prefix_alloc_sections_string = optarg;
break;
case OPTION_READONLY_TEXT:
bfd_flags_to_set |= WP_TEXT;
bfd_flags_to_clear &= ~WP_TEXT;
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/binutils/rdcoff.c binutils-2.21/binutils/rdcoff.c
+--- binutils-2.21-orig.0/binutils/rdcoff.c 2009-09-02 09:22:32.000000000 +0200
++++ binutils-2.21/binutils/rdcoff.c 2011-06-17 18:17:52.000000000 +0200
@@ -82,6 +82,9 @@
struct coff_slots *slots;
/* Basic types. */
if (ISFCN (syment.n_type))
{
fnname = name;
-diff -Nruw 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
-@@ -0,0 +1,3410 @@
+diff -uNdr binutils-2.21-orig.0/binutils/wrcoff.c binutils-2.21/binutils/wrcoff.c
+--- binutils-2.21-orig.0/binutils/wrcoff.c 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/binutils/wrcoff.c 2011-06-17 18:17:52.000000000 +0200
+@@ -0,0 +1,3412 @@
+/* wrcoff.c -- Generate (AVR) COFF debugging information
+ Copyright 2003 Free Software Foundation, Inc.
+
+ struct coff_struct_hash_entry *shash;
+ struct coff_enum_hash_entry *ehash;
+ struct coff_private_symdata *priv;
-+ unsigned int type, numaux, arydim, size, i, nele, nderived;
++ unsigned int type, numaux, arydim, size, nele, nderived;
+ const char *name;
+ bfd_boolean oldavrcoff = (info->flags & (COFF_FL_AVR | COFF_FL_EXT_AVR))
+ == COFF_FL_AVR;
+
+ if (ISARY (type))
+ {
++ unsigned i;
++
+ /* Compute size of entire array. */
+ for (i = 0, nele = 1; i < arydim; i++)
+ nele *= aux->x_sym.x_fcnary.x_ary.x_dimen[i];
+
+ return TRUE;
+}
-diff -Nruw 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
+diff -uNdr binutils-2.21-orig.0/include/coff/avr.h binutils-2.21/include/coff/avr.h
+--- binutils-2.21-orig.0/include/coff/avr.h 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/include/coff/avr.h 2011-06-17 18:17:52.000000000 +0200
@@ -0,0 +1,110 @@
+/* coff information for Atmel AVR.
+
+
+#define RELOC struct external_reloc
+#define RELSZ 10
-diff -Nruw 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
-@@ -646,6 +646,8 @@
+diff -uNdr binutils-2.21-orig.0/include/coff/internal.h binutils-2.21/include/coff/internal.h
+--- binutils-2.21-orig.0/include/coff/internal.h 2010-04-15 12:26:07.000000000 +0200
++++ binutils-2.21/include/coff/internal.h 2011-06-17 18:17:52.000000000 +0200
+@@ -647,6 +647,8 @@
};
-diff -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 @@
+diff -uNdr binutils-2.21-orig.2/bfd/archures.c binutils-2.21/bfd/archures.c
+--- binutils-2.21-orig.2/bfd/archures.c 2010-07-23 16:52:46.000000000 +0200
++++ binutils-2.21/bfd/archures.c 2011-06-17 18:29:41.000000000 +0200
+@@ -373,6 +373,13 @@
.#define bfd_mach_avr5 5
.#define bfd_mach_avr51 51
.#define bfd_mach_avr6 6
. 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 -uNdr binutils-2.21-orig.2/bfd/bfd-in2.h binutils-2.21/bfd/bfd-in2.h
+--- binutils-2.21-orig.2/bfd/bfd-in2.h 2010-11-03 03:31:02.000000000 +0100
++++ binutils-2.21/bfd/bfd-in2.h 2011-06-17 18:29:41.000000000 +0200
+@@ -2053,6 +2053,13 @@
#define bfd_mach_avr5 5
#define bfd_mach_avr51 51
#define bfd_mach_avr6 6
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
+diff -uNdr binutils-2.21-orig.2/bfd/cpu-avr.c binutils-2.21/bfd/cpu-avr.c
+--- binutils-2.21-orig.2/bfd/cpu-avr.c 2009-09-02 09:18:36.000000000 +0200
++++ binutils-2.21/bfd/cpu-avr.c 2011-06-17 18:29:41.000000000 +0200
@@ -133,7 +133,29 @@
N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
};
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 -uNdr binutils-2.21-orig.2/bfd/elf32-avr.c binutils-2.21/bfd/elf32-avr.c
+--- binutils-2.21-orig.2/bfd/elf32-avr.c 2010-10-25 17:54:13.000000000 +0200
++++ binutils-2.21/bfd/elf32-avr.c 2011-06-17 18:29:41.000000000 +0200
+@@ -1340,6 +1340,34 @@
case bfd_mach_avr6:
val = E_AVR_MACH_AVR6;
break;
}
elf_elfheader (abfd)->e_machine = EM_AVR;
-@@ -1390,6 +1418,34 @@
+@@ -1402,6 +1430,34 @@
case E_AVR_MACH_AVR6:
e_set = bfd_mach_avr6;
break;
}
}
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
+diff -uNdr binutils-2.21-orig.2/gas/config/tc-avr.c binutils-2.21/gas/config/tc-avr.c
+--- binutils-2.21-orig.2/gas/config/tc-avr.c 2010-06-28 16:06:57.000000000 +0200
++++ binutils-2.21/gas/config/tc-avr.c 2011-06-17 18:29:41.000000000 +0200
@@ -27,20 +27,21 @@
struct avr_opcodes_s
{"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 @@
- {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51},
+@@ -237,6 +245,21 @@
+ {"at90usb1287",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},
{NULL, 0, 0}
};
-@@ -418,6 +441,11 @@
+@@ -413,6 +436,11 @@
" 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"
" or immediate microcontroller name.\n"));
fprintf (stream,
_(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-@@ -845,7 +873,12 @@
+@@ -840,7 +868,12 @@
if (*str == '+')
{
++str;
}
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
-@@ -962,6 +995,16 @@
+@@ -957,6 +990,16 @@
}
break;
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 -uNdr binutils-2.21-orig.2/gas/doc/c-avr.texi binutils-2.21/gas/doc/c-avr.texi
+--- binutils-2.21-orig.2/gas/doc/c-avr.texi 2010-04-09 05:48:54.000000000 +0200
++++ binutils-2.21/gas/doc/c-avr.texi 2011-06-17 18:29:41.000000000 +0200
+@@ -85,6 +85,27 @@
Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
atmega2560, atmega2561).
@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 -uNdr binutils-2.21-orig.2/include/elf/avr.h binutils-2.21/include/elf/avr.h
+--- binutils-2.21-orig.2/include/elf/avr.h 2010-04-15 12:26:08.000000000 +0200
++++ binutils-2.21/include/elf/avr.h 2011-06-17 18:29:41.000000000 +0200
@@ -40,6 +40,13 @@
#define E_AVR_MACH_AVR5 5
#define E_AVR_MACH_AVR51 51
/* 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
-@@ -30,6 +30,8 @@
+diff -uNdr binutils-2.21-orig.2/include/opcode/avr.h binutils-2.21/include/opcode/avr.h
+--- binutils-2.21-orig.2/include/opcode/avr.h 2010-04-15 12:26:09.000000000 +0200
++++ binutils-2.21/include/opcode/avr.h 2011-06-17 18:29:41.000000000 +0200
+@@ -31,6 +31,8 @@
#define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */
#define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
-@@ -48,6 +50,8 @@
+@@ -49,6 +51,8 @@
#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
#define AVR_ISA_AVR1 AVR_ISA_TINY1
#define AVR_ISA_AVR2 AVR_ISA_2xxx
-@@ -108,6 +112,7 @@
+@@ -109,6 +113,7 @@
L - signed pc relative offset from -2048 to 2047
h - absolute code address (call, jmp)
S - immediate value from 0 to 7 (S = s << 4)
? - 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 @@
+@@ -169,7 +174,8 @@
AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588)
AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598)
AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-@@ -282,3 +288,6 @@
+@@ -283,3 +289,6 @@
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 \
+diff -uNdr binutils-2.21-orig.2/ld/Makefile.am binutils-2.21/ld/Makefile.am
+--- binutils-2.21-orig.2/ld/Makefile.am 2010-11-03 04:22:01.000000000 +0100
++++ binutils-2.21/ld/Makefile.am 2011-06-17 18:32:58.000000000 +0200
+@@ -162,6 +162,13 @@
+ eavr5.c \
+ eavr51.c \
+ eavr6.c \
+ eavrxmega1.o \
+ eavrxmega2.o \
+ eavrxmega3.o \
+ eavrxmega5.o \
+ eavrxmega6.o \
+ eavrxmega7.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -727,6 +734,34 @@
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ eelf32_spu.c \
+@@ -760,6 +767,34 @@
$(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avr6 "$(tdir_avr2)"
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 \
+diff -uNdr binutils-2.21-orig.2/ld/Makefile.in binutils-2.21/ld/Makefile.in
+--- binutils-2.21-orig.2/ld/Makefile.in 2010-11-05 11:34:22.000000000 +0100
++++ binutils-2.21/ld/Makefile.in 2011-06-17 18:33:50.000000000 +0200
+@@ -462,6 +462,13 @@
+ eavr5.c \
+ eavr51.c \
+ eavr6.c \
+ eavrxmega1.o \
+ eavrxmega2.o \
+ eavrxmega3.o \
+ eavrxmega5.o \
+ eavrxmega6.o \
+ eavrxmega7.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -2068,6 +2075,34 @@
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ eelf32_spu.c \
+@@ -2183,6 +2190,34 @@
$(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avr6 "$(tdir_avr2)"
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 -uNdr binutils-2.21-orig.2/ld/configure.tgt binutils-2.21/ld/configure.tgt
+--- binutils-2.21-orig.2/ld/configure.tgt 2010-12-01 12:03:47.000000000 +0100
++++ binutils-2.21/ld/configure.tgt 2011-06-17 18:29:41.000000000 +0200
+@@ -111,7 +111,7 @@
xscale-*-elf) targ_emul=armelf
;;
avr-*-*) targ_emul=avr2
;;
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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega1.sh binutils-2.21/ld/emulparams/avrxmega1.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega1.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega1.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:101
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega2.sh binutils-2.21/ld/emulparams/avrxmega2.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega2.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega2.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:102
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega3.sh binutils-2.21/ld/emulparams/avrxmega3.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega3.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega3.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:103
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega4.sh binutils-2.21/ld/emulparams/avrxmega4.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega4.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega4.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:104
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega5.sh binutils-2.21/ld/emulparams/avrxmega5.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega5.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega5.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:105
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega6.sh binutils-2.21/ld/emulparams/avrxmega6.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega6.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega6.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:106
+MACHINE=
+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 -uNdr binutils-2.21-orig.2/ld/emulparams/avrxmega7.sh binutils-2.21/ld/emulparams/avrxmega7.sh
+--- binutils-2.21-orig.2/ld/emulparams/avrxmega7.sh 1970-01-01 01:00:00.000000000 +0100
++++ binutils-2.21/ld/emulparams/avrxmega7.sh 2011-06-17 18:29:41.000000000 +0200
@@ -0,0 +1,12 @@
+ARCH=avr:107
+MACHINE=
+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
+diff -uNdr binutils-2.21-orig.2/ld/emultempl/avrelf.em binutils-2.21/ld/emultempl/avrelf.em
+--- binutils-2.21-orig.2/ld/emultempl/avrelf.em 2009-11-26 14:45:25.000000000 +0100
++++ binutils-2.21/ld/emultempl/avrelf.em 2011-06-17 18:29:41.000000000 +0200
@@ -71,8 +71,10 @@
gld${EMULATION_NAME}_before_allocation ();
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
+diff -uNdr binutils-2.21-orig.2/opcodes/avr-dis.c binutils-2.21/opcodes/avr-dis.c
+--- binutils-2.21-orig.2/opcodes/avr-dis.c 2008-11-06 13:03:24.000000000 +0100
++++ binutils-2.21/opcodes/avr-dis.c 2011-06-17 18:29:41.000000000 +0200
@@ -50,7 +50,7 @@
static int