rpms/avr-binutils/devel patch-coff-avr.patch, NONE, 1.1 patch-newdevices.patch, NONE, 1.1 patch-newsections.patch, NONE, 1.1

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Fri Jan 25 10:13:51 UTC 2008


Author: jwrdegoede

Update of /cvs/extras/rpms/avr-binutils/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1514

Added Files:
	patch-coff-avr.patch patch-newdevices.patch 
	patch-newsections.patch 
Log Message:
* Thu Jan 24 2008 John Voltz <ninevoltz at metalink.net> 2.18-1
- Bump to binutils 2.18 and add coff-avr patch for VMLAB (on Wine)


patch-coff-avr.patch:

--- NEW FILE patch-coff-avr.patch ---
diff -Nur ../binutils-2.18.orig/binutils/doc/objcopy.1 ./binutils/doc/objcopy.1
--- ../binutils-2.18.orig/binutils/doc/objcopy.1	Tue Oct 23 21:44:42 2007
+++ ./binutils/doc/objcopy.1	Tue Oct 23 22:18:44 2007
@@ -193,6 +193,8 @@
         [\fB\-\-readonly\-text\fR]
         [\fB\-\-pure\fR]
         [\fB\-\-impure\fR]
+        [\fB\-\-change\-pathname\fR \fIold\fR=\fInew\fR]
+        [\fB\-\-basename\fR]
         [\fB\-v\fR|\fB\-\-verbose\fR]
         [\fB\-V\fR|\fB\-\-version\fR]  
         [\fB\-\-help\fR] [\fB\-\-info\fR]
@@ -807,6 +809,23 @@
 It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
 linker input file.
 .RE
+.IP "\fB\-\-change\-pathname\fR \fIold\fR=\fInew\fR" 4
+.IX Item "--change-pathname old=new"
+When converting debugging information using \fB\-\-debugging\fR, for
+every pathname that starts with \fIold\fR, replace the matching part
+by \fInew\fR.  This is intented to map pathnames between different
+debugging tools, or when parts of the object file(s) had their
+pathnames recorded in a different build environment.  Note that only
+leading directory name components might be changed that way, since the
+trailing filename could be recorded elsewhere as well (depending on the
+debugging format of the input file).
+.IP "\fB\-\-basename\fR"
+.IX Item "--basename"
+When converting debugging information using \fB\-\-debugging\fR, for
+every pathname, strip all leading directory information.  This option
+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 -Nur ../binutils-2.18.orig/binutils/Makefile.am ./binutils/Makefile.am
--- ../binutils-2.18.orig/binutils/Makefile.am	Tue Oct 23 21:44:42 2007
+++ ./binutils/Makefile.am	Tue Oct 23 22:22:40 2007
@@ -98,7 +98,7 @@
 	resbin.c rescoff.c resrc.c resres.c \
 	size.c srconv.c stabs.c strings.c sysdump.c \
 	unwind-ia64.c version.c \
-	windres.c winduni.c wrstabs.c \
+	windres.c winduni.c wrcoff.c wrstabs.c \
 	windmc.c mclex.c
 
 GENERATED_CFILES = \
@@ -106,7 +106,7 @@
 	defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
 
 DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
+WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
 
 # Code shared by all the binutils.
 BULIBS = bucomm.c version.c filemode.c
diff -Nur ../binutils-2.18.orig/binutils/Makefile.in ./binutils/Makefile.in
--- ../binutils-2.18.orig/binutils/Makefile.in	Tue Oct 23 21:44:42 2007
+++ ./binutils/Makefile.in	Tue Oct 23 22:26:52 2007
@@ -129,7 +129,7 @@
 nm_new_OBJECTS = $(am_nm_new_OBJECTS)
 nm_new_LDADD = $(LDADD)
 am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
-	ieee.$(OBJEXT) rdcoff.$(OBJEXT)
+	ieee.$(OBJEXT) rdcoff.$(OBJEXT) wrcoff.$(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)
@@ -418,7 +418,7 @@
 	resbin.c rescoff.c resrc.c resres.c \
 	size.c srconv.c stabs.c strings.c sysdump.c \
 	unwind-ia64.c version.c \
-	windres.c winduni.c wrstabs.c \
+	windres.c winduni.c wrcoff.c wrstabs.c \
 	windmc.c mclex.c
 
 GENERATED_CFILES = \
@@ -426,7 +426,7 @@
 	defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
 
 DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
+WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
 
 # Code shared by all the binutils.
 BULIBS = bucomm.c version.c filemode.c
diff -Nur ../binutils-2.18.orig/binutils/bucomm.c ./binutils/bucomm.c
--- ../binutils-2.18.orig/binutils/bucomm.c	Tue Oct 23 21:44:42 2007
+++ ./binutils/bucomm.c	Tue Oct 23 22:18:44 2007
@@ -501,6 +501,32 @@
   return ret;
 }
 
+/* Return the basename of "file", i. e. everything minus whatever
+   directory part has been provided.  Stolen from bfd/archive.c.
+   Should we also handle the VMS case (as in bfd/archive.c)?  */
+const char *
+bu_basename (file)
+     const char *file;
+{
+  const char *filename = strrchr (file, '/');
+
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+  {
+    /* We could have foo/bar\\baz, or foo\\bar, or d:bar.  */
+    char *bslash = strrchr (file, '\\');
+    if (filename == NULL || (bslash != NULL && bslash > filename))
+      filename = bslash;
+    if (filename == NULL && file[0] != '\0' && file[1] == ':')
+      filename = file + 1;
+  }
+#endif
+  if (filename != (char *) NULL)
+    filename++;
+  else
+    filename = file;
+  return filename;
+}
+
 /* 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 -Nur ../binutils-2.18.orig/binutils/bucomm.h ./binutils/bucomm.h
--- ../binutils-2.18.orig/binutils/bucomm.h	Tue Oct 23 21:44:42 2007
+++ ./binutils/bucomm.h	Tue Oct 23 22:18:44 2007
@@ -54,6 +54,8 @@
 
 off_t get_file_size (const char *);
 
+const char *bu_basename PARAMS ((const char *));
+
 extern char *program_name;
 
 /* filemode.c */
diff -Nur ../binutils-2.18.orig/binutils/budbg.h ./binutils/budbg.h
--- ../binutils-2.18.orig/binutils/budbg.h	Tue Oct 23 21:44:42 2007
+++ ./binutils/budbg.h	Tue Oct 23 22:18:44 2007
@@ -51,8 +51,11 @@
 
 extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
 
-/* Routine used to read COFF debugging information.  */
+/* Routine used to read and write COFF debugging information.  */
 
 extern bfd_boolean parse_coff (bfd *, asymbol **, long, void *);
+
+extern bfd_boolean write_coff_debugging_info
+  (bfd *abfd, void *, long *symcountp, asymbol ***);
 
 #endif
--- binutils/debug.c.orig	Mon Aug  6 21:55:10 2007
+++ binutils/debug.c	Tue Oct 23 23:43:19 2007
@@ -31,6 +31,7 @@
 #include <assert.h>
 #include "bfd.h"
 #include "libiberty.h"
+#include "bucomm.h"
 #include "debug.h"
 
 /* Global information we keep for debugging.  A pointer to this
@@ -552,6 +553,19 @@
   struct debug_type *t;
 };
 
+/* Simple list, used for pathname translations. */
+struct xlat_list
+{
+  /* Next string on list. */
+  struct xlat_list *next;
+  /* Old part to match against. */
+  const char *old;
+  size_t olen;
+  /* New part to replace. */
+  const char *newstr;
+  size_t nlen;
+};
+
 /* Local functions.  */
 
 static void debug_error (const char *);
@@ -588,6 +602,11 @@
   (struct debug_handle *, struct debug_type *, struct debug_type *);
 static bfd_boolean debug_class_type_samep
   (struct debug_handle *, struct debug_type *, struct debug_type *);
+static const char *debug_xlat_pathname (const char *);
+
+/* List of pathname translations. */
+static struct xlat_list *xlat, *xltail;
+static bfd_boolean xlat_basename;
 
 /* Issue an error message.  */
 
@@ -680,6 +699,8 @@
 
   if (name == NULL)
     name = "";
+  else
+    name = debug_xlat_pathname (name);
[...5205 lines suppressed...]
+		  ,
 		  int numaux,
 		  void * in1)
 {
@@ -409,9 +413,13 @@
 #else
 	  if (numaux > 1)
 	    {
+#if defined(AVR)
+	      memcpy (in->x_file.x_fname, ext->x_file.x_fname, sizeof (AUXENT));
+#else
 	      if (indx == 0)
 		memcpy (in->x_file.x_fname, ext->x_file.x_fname,
 			numaux * sizeof (AUXENT));
+#endif
 	    }
 	  else
 	    memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
diff -Nur ../binutils-2.18.orig/bfd/config.bfd ./bfd/config.bfd
--- ../binutils-2.18.orig/bfd/config.bfd	Tue Oct 23 21:44:07 2007
+++ ./bfd/config.bfd	Tue Oct 23 22:18:44 2007
@@ -327,6 +327,7 @@
 
   avr-*-*)
     targ_defvec=bfd_elf32_avr_vec
+    targ_selvecs="bfd_elf32_avr_vec avrcoff_vec avrextcoff_vec"
     ;;
 
   bfin-*-*)
diff -Nur ../binutils-2.18.orig/bfd/configure ./bfd/configure
--- ../binutils-2.18.orig/bfd/configure	Tue Oct 23 21:44:09 2007
+++ ./bfd/configure	Tue Oct 23 22:18:44 2007
@@ -19034,6 +19034,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 " ;;
+    avrcoff_vec)		tb="$tb coff-avr.lo cofflink.lo " ;;
+    avrextcoff_vec)		tb="$tb coff-ext-avr.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_efi_app_ia32_vec)	tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
diff -Nur ../binutils-2.18.orig/bfd/configure.in ./bfd/configure.in
--- ../binutils-2.18.orig/bfd/configure.in	Tue Oct 23 21:44:07 2007
+++ ./bfd/configure.in	Tue Oct 23 22:18:44 2007
@@ -612,6 +612,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 " ;;
+    avrcoff_vec)		tb="$tb coff-avr.lo cofflink.lo " ;;
+    avrextcoff_vec)		tb="$tb coff-ext-avr.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_efi_app_ia32_vec)	tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
diff -Nur ../binutils-2.18.orig/bfd/targets.c ./bfd/targets.c
--- ../binutils-2.18.orig/bfd/targets.c	Tue Oct 23 21:44:09 2007
+++ ./bfd/targets.c	Tue Oct 23 22:18:44 2007
@@ -558,6 +558,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 avrcoff_vec;
+extern const bfd_target avrextcoff_vec;
 extern const bfd_target b_out_vec_big_host;
 extern const bfd_target b_out_vec_little_host;
 extern const bfd_target bfd_efi_app_ia32_vec;
@@ -876,6 +878,8 @@
 	&armpe_little_vec,
 	&armpei_big_vec,
 	&armpei_little_vec,
+	&avrcoff_vec,
+	&avrextcoff_vec,
 	&b_out_vec_big_host,
 	&b_out_vec_little_host,
 	&bfd_efi_app_ia32_vec,
diff -Nur ../binutils-2.18.orig/include/coff/avr.h ./include/coff/avr.h
--- ../binutils-2.18.orig/include/coff/avr.h	Thu Jan  1 01:00:00 1970
+++ ./include/coff/avr.h	Tue Oct 23 22:18:44 2007
@@ -0,0 +1,110 @@
+/* coff information for Atmel AVR.
+   
+   Copyright 2001 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+/* This file was hacked from i860.h */
+
+#define L_LNNO_SIZE 2
+#include "coff/external.h"
+
+/* Bits for f_flags:
+ 	F_RELFLG	relocation info stripped from file
+ 	F_EXEC		file is executable (no unresolved external references)
+ 	F_LNNO		line numbers stripped from file
+ 	F_LSYMS		local symbols stripped from file  */
+
+#define F_RELFLG	(0x0001)
+#define F_EXEC		(0x0002)
+#define F_LNNO		(0x0004)
+#define F_LSYMS		(0x0008)
+/* Upper nibble of flags always needs to be set.  This used to be
+ * undocumented, recent information from Atmel says that bit 7 used to
+ * differentiate between an old vendor-specific deviation of the
+ * format and the current format. */
+#define F_JUNK		(0x00f0)
+#define F_UNUSED	(0xff00)
+
+#define	AVRMAGIC	0xa12
+
+#undef AOUTSZ
+#ifdef AVR_EXT_COFF
+
+/* AVR "extended" COFF format.  This uses the optional header ("a.out"
+   header) to inform the consumer about some additional features that
+   are supported. */
+#define COFF_LONG_FILENAMES yes	/* long filenames supported in consecutive aux entries */
+#define AOUTSZ		28	/* size of optional header in "extended" COFF */
+
+/* Flags in the optional header; they are stored in the vstamp field. */
+#define F_FULLPATHS	0x0001	/* long filenames supported */
+#define F_STRUCTINFO	0x0002	/* structure information contained */
+#define F_PTRINFO	0x0004	/* inter-segment pointers supported */
+
+#else /* old AVR COFF */
+
+#define AOUTSZ		0	/* no a.out for AVR */
+#endif
+
+/* #define AVRAOUTMAGIC	0x406 */ /* "general" magic number of optional header */
+/*
+ * The following magic number causes AVR Studio 4.x to recognize
+ * avr-gcc/GNU binutils produced AVR extended COFF files.  By now,
+ * the only special treatment for them is that the contents of .data
+ * will be appended after .text in the simulator flash.
+ *
+ * 0x9cc has been chosen since it resembles "gcc". ;-)
+ */
+#define AVRAOUTMAGIC	0x9cc	/* "gcc" magic number */
+
+/* By matching not only the magic number, but also the size of the
+   optional a.out header, we can differentiate between both
+   formats. */
+#define AVRBADMAG(x)   ((x).f_magic != AVRMAGIC || (x).f_opthdr != AOUTSZ)
+
+/* AVR COFF has several anomalities in the way the handle the derived
+   type information, and AUX entries, mainly because they apparently
+   didn't bother to learn how COFF is supposed to work before they
+   started.  We fix many of them at the export/import boundary, so all
+   the internal generic COFF handling will work mostly as designed. */
+
+/* NB: these functions are only defined in bfd/coff-avr.c, but also
+   used in coff-ext-avr.c, so the latter can only be configured if the
+   former is also present.  This is certainly always the case
+   anyway. */
+extern void avr_coff_adjust_sym_in_post
+  PARAMS((bfd *, PTR, PTR));
+
+extern void avr_coff_adjust_sym_out_post
+  PARAMS((bfd *, PTR, PTR));
+
+#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \
+	avr_coff_adjust_sym_in_post (ABFD, EXT, INT)
+
+#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \
+	avr_coff_adjust_sym_out_post (ABFD, INT, EXT)
+
+/********************** RELOCATION DIRECTIVES **********************/
+
+struct external_reloc
+{
+  char r_vaddr[4];
+  char r_symndx[4];
+  char r_type[2];
+};
+
+#define RELOC struct external_reloc
+#define RELSZ 10
diff -Nur ../binutils-2.18.orig/include/coff/internal.h ./include/coff/internal.h
--- ../binutils-2.18.orig/include/coff/internal.h	Tue Oct 23 21:44:43 2007
+++ ./include/coff/internal.h	Tue Oct 23 22:18:44 2007
@@ -630,6 +630,8 @@
 
 };
 
+#define NAUXENTS 10		/* number of pre-allocated aux entries */
+
 /********************** RELOCATION DIRECTIVES **********************/
 
 struct internal_reloc

patch-newdevices.patch:

--- NEW FILE patch-newdevices.patch ---
--- gas/config/tc-avr.c.orig	Mon Aug  6 21:59:55 2007
+++ gas/config/tc-avr.c	Wed Dec 19 12:08:45 2007
@@ -63,7 +63,7 @@
 {
   {"avr1",       AVR_ISA_TINY1,   bfd_mach_avr1},
   {"avr2",       AVR_ISA_TINY2,   bfd_mach_avr2},
-  {"avr3",       AVR_ISA_M103,    bfd_mach_avr3},
+  {"avr3",       AVR_ISA_USB162,  bfd_mach_avr3},
   {"avr4",       AVR_ISA_M8,      bfd_mach_avr4},
   {"avr5",       AVR_ISA_ALL,     bfd_mach_avr5},
   {"avr6",       AVR_ISA_ALL,     bfd_mach_avr6},
@@ -97,22 +97,31 @@
   {"attiny25",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny45",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny85",   AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny43u",  AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny48",   AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny88",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"atmega603",  AVR_ISA_M603,    bfd_mach_avr3}, /* XXX -> m103 */
   {"atmega103",  AVR_ISA_M103,    bfd_mach_avr3},
   {"at43usb320", AVR_ISA_M103,    bfd_mach_avr3},
   {"at43usb355", AVR_ISA_M603,    bfd_mach_avr3},
   {"at76c711",   AVR_ISA_M603,    bfd_mach_avr3},
+  {"at90usb82",  AVR_ISA_USB162,  bfd_mach_avr3},
+  {"at90usb162", AVR_ISA_USB162,  bfd_mach_avr3},
   {"atmega48",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"atmega48p",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega8",    AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega83",   AVR_ISA_M8,      bfd_mach_avr4}, /* XXX -> m8535 */
   {"atmega85",   AVR_ISA_M8,      bfd_mach_avr4}, /* XXX -> m8 */
   {"atmega88",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"atmega88p",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega8515", AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega8535", AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega8hva", AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm1",   AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm2",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"at90pwm2b",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm3",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"at90pwm3b",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega16",   AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega161",  AVR_ISA_M161,    bfd_mach_avr5},
   {"atmega162",  AVR_ISA_M323,    bfd_mach_avr5},
@@ -121,6 +130,7 @@
   {"atmega165",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega165p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega168",  AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega168p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega169",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega169p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega32",   AVR_ISA_M323,    bfd_mach_avr5},
@@ -128,12 +138,14 @@
   {"atmega324p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega325",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega325p", AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega328p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega329",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega329p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3250", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3250p",AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3290", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3290p",AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega32hvb",AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega406",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega64",   AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega640",  AVR_ISA_M323,    bfd_mach_avr5},
@@ -142,6 +154,7 @@
   {"atmega128",  AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega1280", AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega1281", AVR_ISA_M128,    bfd_mach_avr5},
+  {"atmega1284p",AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega645",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega649",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega6450", AVR_ISA_M323,    bfd_mach_avr5},
@@ -150,8 +163,8 @@
   {"at90can32" , AVR_ISA_M323,    bfd_mach_avr5},
   {"at90can64" , AVR_ISA_M323,    bfd_mach_avr5},
   {"at90can128", AVR_ISA_M128,    bfd_mach_avr5},
-  {"at90usb82",  AVR_ISA_M323,    bfd_mach_avr5},
-  {"at90usb162", AVR_ISA_M323,    bfd_mach_avr5},
+  {"at90pwm216", AVR_ISA_M323,    bfd_mach_avr5},
+  {"at90pwm316", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb646", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb647", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb1286",AVR_ISA_M128,    bfd_mach_avr5},
--- gas/doc/c-avr.texi.orig	Mon Aug  6 22:00:08 2007
+++ gas/doc/c-avr.texi	Wed Dec 19 12:07:54 2007
@@ -41,24 +41,26 @@
 attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
 at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
 attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
-attiny45, attiny85).
+attiny45, attiny85, attiny43u, attiny48, attiny88).
 
 Instruction set avr3 is for the classic AVR core with up to 128K program
 memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
-at76c711).
+at76c711, at90usb82, at90usb162).
 
-Instruction set avr4 is for the enhanced AVR core with up to 8K program
-memory space (MCU types: atmega48, atmega8, atmega83, atmega85, atmega88,
-atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm3).
+Instruction set avr4 is for the enhanced AVR core with up to 8K
+program memory space (MCU types: atmega48, atmega48p, atmega8,
+atmega83, atmega85, atmega88, atmega88p, atmega8515, atmega8535,
+atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b).
 
-Instruction set avr5 is for the enhanced AVR core with up to 128K program
-memory space (MCU types: atmega16, atmega161, atmega162, atmega163,
-atmega164p, atmega165, atmega165p, atmega168, atmega169, atmega169p, 
-atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega329, 
-atmega329p, atmega3250, atmega3250p, atmega3290, atmega3290p, atmega406, 
-atmega64, atmega640, atmega644, atmega644p, atmega128, atmega1280, 
-atmega1281, atmega645, atmega649, atmega6450, atmega6490, atmega16hva, 
-at90can32, at90can64, at90can128, at90usb82, at90usb162, at90usb646, 
+Instruction set avr5 is for the enhanced AVR core with up to 128K
+program memory space (MCU types: atmega16, atmega161, atmega162,
+atmega163, atmega164p, atmega165, atmega165p, atmega168, atmega168p,
+atmega169, atmega169p, atmega32, atmega32hvb, atmega323, atmega324p, atmega325,
+atmega325p, atmega328p, atmega329, atmega329p, atmega3250,
+atmega3250p, atmega3290, atmega3290p, atmega406, atmega64, atmega640,
+atmega644, atmega644p, atmega128, atmega1280, atmega1281, atmega1284p, atmega645,
+atmega649, atmega6450, atmega6490, atmega16hva, at90can32, at90can64,
+at90can128, at90pwm216, at90pwm316, at90usb646,
 at90usb647, at90usb1286, at90usb1287, at94k).
 
 Instruction set avr6 is for the enhanced AVR core with 256K program
--- include/opcode/avr.h.orig	Fri Apr  7 17:18:08 2006
+++ include/opcode/avr.h	Wed Dec 19 12:10:04 2007
@@ -40,6 +40,8 @@
                        AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_M603  (AVR_ISA_2xxx | AVR_ISA_MEGA)
 #define AVR_ISA_M103  (AVR_ISA_M603 | AVR_ISA_ELPM)
+#define AVR_ISA_USB162 (AVR_ISA_M603 | AVR_ISA_MOVW | \
+			AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_M161  (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \
                        AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_94K   (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)

patch-newsections.patch:

--- NEW FILE patch-newsections.patch ---
--- ld/scripttempl/avr.sc.old	2007-09-14 06:32:02.437500000 -0600
+++ ld/scripttempl/avr.sc	2007-09-14 06:50:28.854125000 -0600
@@ -4,9 +4,12 @@ OUTPUT_ARCH(${ARCH})
 
 MEMORY
 {
-  text   (rx)   : ORIGIN = 0, LENGTH = $TEXT_LENGTH
-  data   (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH
-  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
+  text      (rx)   : ORIGIN = 0, LENGTH = $TEXT_LENGTH
+  data      (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH
+  eeprom    (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
+  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
+  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
+  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
 }
 
 SECTIONS
@@ -196,6 +199,24 @@ SECTIONS
     ${RELOCATING+ __eeprom_end = . ; }
   } ${RELOCATING+ > eeprom}
 
+  .fuse ${RELOCATING-0}:
+  {
+    KEEP(*(.fuse))
+    KEEP(*(.lfuse))
+    KEEP(*(.hfuse))
+    KEEP(*(.efuse))
+  } ${RELOCATING+ > fuse}
+
+  .lock ${RELOCATING-0}:
+  {
+    KEEP(*(.lock*))
+  } ${RELOCATING+ > lock}
+
+  .signature ${RELOCATING-0}:
+  {
+    KEEP(*(.signature*))
+  } ${RELOCATING+ > signature}
+
   /* Stabs debugging sections.  */
   .stab 0 : { *(.stab) }
   .stabstr 0 : { *(.stabstr) }




More information about the fedora-extras-commits mailing list