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