init
This commit is contained in:
commit
d0ae43bb2f
119 changed files with 34583 additions and 0 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
*.bz2
|
||||
objdir
|
||||
*-build
|
||||
avr-libc-1.6.4
|
||||
binutils-2.20.1
|
||||
gcc-4.3.2
|
||||
|
||||
442
avr-libc-patches/eeprom.h
Normal file
442
avr-libc-patches/eeprom.h
Normal file
|
|
@ -0,0 +1,442 @@
|
|||
/* Copyright (c) 2002, 2003, 2004, 2007 Marek Michalkiewicz
|
||||
Copyright (c) 2005, 2006 Bjoern Haase
|
||||
Copyright (c) 2008 Atmel Corporation
|
||||
Copyright (c) 2008 Wouter van Gulik
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of the copyright holders nor the names of
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
/* $Id: eeprom.h,v 1.21.2.6 2008/08/19 22:10:39 arcanum Exp $ */
|
||||
|
||||
#ifndef _AVR_EEPROM_H_
|
||||
#define _AVR_EEPROM_H_ 1
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <stddef.h> /* size_t */
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef __ATTR_PURE__
|
||||
# ifdef __DOXYGEN__
|
||||
# define __ATTR_PURE__
|
||||
# else
|
||||
# define __ATTR_PURE__ __attribute__((__pure__))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
uint16_t __eerd_word (const uint16_t *, uint8_t (*)(const uint8_t *))
|
||||
__ATTR_PURE__;
|
||||
uint32_t __eerd_dword (const uint32_t *, uint8_t (*)(const uint8_t *))
|
||||
__ATTR_PURE__;
|
||||
void __eerd_block (void *, const void *, size_t, uint8_t (*)(const uint8_t *));
|
||||
|
||||
void __eewr_word (uint16_t *, uint16_t, void (*)(uint8_t *, uint8_t));
|
||||
void __eewr_dword (uint32_t *, uint32_t, void (*)(uint8_t *, uint8_t));
|
||||
void __eewr_block (void *, const void *, size_t, void (*)(uint8_t *, uint8_t));
|
||||
#endif /* (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) ) */
|
||||
|
||||
#if !E2END && !defined(__DOXYGEN__)
|
||||
# ifndef __COMPILING_AVR_LIBC__
|
||||
# warning "Device does not have EEPROM available."
|
||||
# endif
|
||||
/* Omit below for chips without EEPROM. */
|
||||
|
||||
#else
|
||||
|
||||
/** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
|
||||
\code #include <avr/eeprom.h> \endcode
|
||||
|
||||
This header file declares the interface to some simple library
|
||||
routines suitable for handling the data EEPROM contained in the
|
||||
AVR microcontrollers. The implementation uses a simple polled
|
||||
mode interface. Applications that require interrupt-controlled
|
||||
EEPROM access to ensure that no time will be wasted in spinloops
|
||||
will have to deploy their own implementation.
|
||||
|
||||
\note All of the read/write functions first make sure the EEPROM
|
||||
is ready to be accessed. Since this may cause long delays if a
|
||||
write operation is still pending, time-critical applications
|
||||
should first poll the EEPROM e. g. using eeprom_is_ready() before
|
||||
attempting any actual I/O. But this functions are not wait until
|
||||
SELFPRGEN in SPMCSR becomes zero. Do this manually, if your
|
||||
softwate contains the Flash burning.
|
||||
|
||||
\note As these functions modify IO registers, they are known to be
|
||||
non-reentrant. If any of these functions are used from both,
|
||||
standard and interrupt context, the applications must ensure
|
||||
proper protection (e.g. by disabling interrupts before accessing
|
||||
them).
|
||||
|
||||
\note All write functions force erase_and_write programming mode.
|
||||
*/
|
||||
|
||||
/** \def EEMEM
|
||||
\ingroup avr_eeprom
|
||||
Attribute expression causing a variable to be allocated within the
|
||||
.eeprom section. */
|
||||
#define EEMEM __attribute__((section(".eeprom")))
|
||||
|
||||
|
||||
/* Register definitions */
|
||||
|
||||
/* Check for aliases. */
|
||||
#if !defined(EEWE) && defined(EEPE)
|
||||
# define EEWE EEPE
|
||||
#endif
|
||||
|
||||
#if !defined(EEMWE) && defined(EEMPE)
|
||||
# define EEMWE EEMPE
|
||||
#endif
|
||||
|
||||
#if !defined(EECR) && defined(DEECR)
|
||||
/* AT86RF401 */
|
||||
# define EECR DEECR
|
||||
# define EEAR DEEAR
|
||||
# define EEARL DEEAR
|
||||
# define EEDR DEEDR
|
||||
# define EERE EER
|
||||
# define EEWE EEL
|
||||
# define EEMWE EEU
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(EECR) || !defined(EEDR) || !defined(EEARL)
|
||||
|
||||
# if !defined(__EEPROM_REG_LOCATIONS__) \
|
||||
&& !defined(EEPROM_REG_LOCATIONS_OVERRIDE)
|
||||
/* 6-byte string denoting where to find the EEPROM registers in memory
|
||||
space. Adresses denoted in hex syntax with uppercase letters. Used
|
||||
by the EEPROM subroutines.
|
||||
First two letters: EECR address.
|
||||
Second two letters: EEDR address.
|
||||
Last two letters: EEAR address.
|
||||
*/
|
||||
# error "Unknown EEPROM register(s) location."
|
||||
# endif
|
||||
|
||||
/* If needed, override the locations defined in the IO headers. */
|
||||
# ifdef EEPROM_REG_LOCATIONS_OVERRIDE
|
||||
# undef __EEPROM_REG_LOCATIONS__
|
||||
# define __EEPROM_REG_LOCATIONS__ EEPROM_REG_LOCATIONS_OVERRIDE
|
||||
# endif
|
||||
|
||||
# define CONCAT1(a, b) CONCAT2(a, b)
|
||||
# define CONCAT2(a, b) a ## b
|
||||
# define HEXNR CONCAT1(0x, __EEPROM_REG_LOCATIONS__)
|
||||
|
||||
# undef EECR
|
||||
# define EECR _SFR_IO8((HEXNR >> 16) & 0xFF)
|
||||
|
||||
# undef EEDR
|
||||
# define EEDR _SFR_IO8((HEXNR >> 8) & 0xFF)
|
||||
|
||||
# undef EEAR
|
||||
# define EEAR _SFR_IO8(HEXNR & 0xFF)
|
||||
|
||||
# undef EEARH
|
||||
|
||||
# undef EEARL
|
||||
# define EEARL EEAR
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/** \def eeprom_is_ready
|
||||
\ingroup avr_eeprom
|
||||
\returns 1 if EEPROM is ready for a new read/write operation, 0 if not.
|
||||
*/
|
||||
#if defined(__DOXYGEN__)
|
||||
# define eeprom_is_ready()
|
||||
#elif defined(DEECR)
|
||||
# define eeprom_is_ready() bit_is_clear(DEECR, BSY)
|
||||
#else
|
||||
# define eeprom_is_ready() bit_is_clear(EECR, EEWE)
|
||||
#endif
|
||||
|
||||
|
||||
/** \def eeprom_busy_wait
|
||||
\ingroup avr_eeprom
|
||||
Loops until the eeprom is no longer busy.
|
||||
\returns Nothing.
|
||||
*/
|
||||
#define eeprom_busy_wait() do {} while (!eeprom_is_ready())
|
||||
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Read one byte from EEPROM address \a __p.
|
||||
*/
|
||||
__ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p)
|
||||
{
|
||||
do {} while (!eeprom_is_ready ());
|
||||
#if E2END <= 0xFF
|
||||
EEARL = (uint8_t)(uint16_t)__p;
|
||||
#else
|
||||
EEAR = (uint16_t)__p;
|
||||
#endif
|
||||
/* Use inline assembly below as some AVRs have problems with accessing
|
||||
EECR with STS instructions. For example, see errata for ATmega64.
|
||||
The code below also assumes that EECR and EEDR are in the I/O space.
|
||||
*/
|
||||
uint8_t __result;
|
||||
__asm__ __volatile__
|
||||
(
|
||||
"/* START EEPROM READ CRITICAL SECTION */ \n\t"
|
||||
"sbi %1, %2 \n\t"
|
||||
"in %0, %3 \n\t"
|
||||
"/* END EEPROM READ CRITICAL SECTION */ \n\t"
|
||||
: "=r" (__result)
|
||||
: "i" (_SFR_IO_ADDR(EECR)),
|
||||
"i" (EERE),
|
||||
"i" (_SFR_IO_ADDR(EEDR))
|
||||
);
|
||||
return __result;
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Read one 16-bit word (little endian) from EEPROM address \a __p.
|
||||
*/
|
||||
__ATTR_PURE__ static __inline__ uint16_t eeprom_read_word (const uint16_t *__p)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
return __eerd_word (__p, eeprom_read_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
union
|
||||
{
|
||||
uint16_t word;
|
||||
struct
|
||||
{
|
||||
uint8_t lo;
|
||||
uint8_t hi;
|
||||
} byte;
|
||||
} x;
|
||||
|
||||
x.byte.lo = eeprom_read_byte ((const uint8_t *)__p);
|
||||
x.byte.hi = eeprom_read_byte ((const uint8_t *)__p + 1);
|
||||
return x.word;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Read one 32-bit double word (little endian) from EEPROM address \a __p.
|
||||
*/
|
||||
__ATTR_PURE__ static __inline__
|
||||
uint32_t eeprom_read_dword (const uint32_t *__p)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
return __eerd_dword (__p, eeprom_read_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
union
|
||||
{
|
||||
uint32_t dword;
|
||||
struct
|
||||
{
|
||||
uint8_t byte0;
|
||||
uint8_t byte1;
|
||||
uint8_t byte2;
|
||||
uint8_t byte3;
|
||||
} byte;
|
||||
} x;
|
||||
|
||||
x.byte.byte0 = eeprom_read_byte ((const uint8_t *)__p);
|
||||
x.byte.byte1 = eeprom_read_byte ((const uint8_t *)__p + 1);
|
||||
x.byte.byte2 = eeprom_read_byte ((const uint8_t *)__p + 2);
|
||||
x.byte.byte3 = eeprom_read_byte ((const uint8_t *)__p + 3);
|
||||
return x.dword;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Read a block of \a __n bytes from EEPROM address \a __src to SRAM
|
||||
\a __dst.
|
||||
*/
|
||||
static __inline__ void
|
||||
eeprom_read_block (void *__dst, const void *__src, size_t __n)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
__eerd_block (__dst, __src, __n, eeprom_read_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
char *_myDstPtr;
|
||||
char *_mySrcPtr;
|
||||
|
||||
_myDstPtr = (char *)__dst;
|
||||
_mySrcPtr = (char *)__src;
|
||||
while (__n--)
|
||||
{
|
||||
//* Jul 6, 2010 modifed by Mark Sproul to work with the 2560
|
||||
// *(char *)__dst++ = eeprom_read_byte((const uint8_t *)__src++);
|
||||
*_myDstPtr = eeprom_read_byte((const uint8_t *)_mySrcPtr);
|
||||
_myDstPtr++;
|
||||
_mySrcPtr++;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Write a byte \a __value to EEPROM address \a __p.
|
||||
*/
|
||||
static __inline__ void eeprom_write_byte (uint8_t *__p, uint8_t __value)
|
||||
{
|
||||
do {} while (!eeprom_is_ready ());
|
||||
|
||||
#if defined(EEPM0) && defined(EEPM1)
|
||||
EECR = 0; /* Set programming mode: erase and write. */
|
||||
#elif defined(EEPM0) || defined(EEPM1)
|
||||
# warning "Unknown EECR register, eeprom_write_byte() has become outdated."
|
||||
#endif
|
||||
|
||||
#if E2END <= 0xFF
|
||||
EEARL = (unsigned)__p;
|
||||
#else
|
||||
EEAR = (unsigned)__p;
|
||||
#endif
|
||||
EEDR = __value;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"/* START EEPROM WRITE CRITICAL SECTION */\n\t"
|
||||
"in r0, %[__sreg] \n\t"
|
||||
"cli \n\t"
|
||||
"sbi %[__eecr], %[__eemwe] \n\t"
|
||||
"sbi %[__eecr], %[__eewe] \n\t"
|
||||
"out %[__sreg], r0 \n\t"
|
||||
"/* END EEPROM WRITE CRITICAL SECTION */"
|
||||
:
|
||||
: [__eecr] "i" (_SFR_IO_ADDR(EECR)),
|
||||
[__sreg] "i" (_SFR_IO_ADDR(SREG)),
|
||||
[__eemwe] "i" (EEMWE),
|
||||
[__eewe] "i" (EEWE)
|
||||
: "r0"
|
||||
);
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Write a word \a __value to EEPROM address \a __p.
|
||||
*/
|
||||
static __inline__ void eeprom_write_word (uint16_t *__p, uint16_t __value)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
__eewr_word (__p, __value, eeprom_write_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
union
|
||||
{
|
||||
uint16_t word;
|
||||
struct
|
||||
{
|
||||
uint8_t lo;
|
||||
uint8_t hi;
|
||||
} byte;
|
||||
} x;
|
||||
|
||||
x.word = __value;
|
||||
eeprom_write_byte ((uint8_t *)__p, x.byte.lo);
|
||||
eeprom_write_byte ((uint8_t *)__p + 1, x.byte.hi);
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Write a 32-bit double word \a __value to EEPROM address \a __p.
|
||||
*/
|
||||
static __inline__ void eeprom_write_dword (uint32_t *__p, uint32_t __value)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
__eewr_dword (__p, __value, eeprom_write_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
union
|
||||
{
|
||||
uint32_t dword;
|
||||
struct
|
||||
{
|
||||
uint8_t byte0;
|
||||
uint8_t byte1;
|
||||
uint8_t byte2;
|
||||
uint8_t byte3;
|
||||
} byte;
|
||||
} x;
|
||||
|
||||
x.dword = __value;
|
||||
eeprom_write_byte ((uint8_t *)__p, x.byte.byte0);
|
||||
eeprom_write_byte ((uint8_t *)__p + 1, x.byte.byte1);
|
||||
eeprom_write_byte ((uint8_t *)__p + 2, x.byte.byte2);
|
||||
eeprom_write_byte ((uint8_t *)__p + 3, x.byte.byte3);
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \ingroup avr_eeprom
|
||||
Write a block of \a __n bytes to EEPROM address \a __dst from \a __src.
|
||||
\note The argument order is mismatch with common functions like strcpy().
|
||||
*/
|
||||
static __inline__ void
|
||||
eeprom_write_block (const void *__src, void *__dst, size_t __n)
|
||||
{
|
||||
#if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
|
||||
__eewr_block (__dst, __src, __n, eeprom_write_byte);
|
||||
#else
|
||||
/* If ATmega256x device, do not call function. */
|
||||
uint8_t *_myDstPtr;
|
||||
uint8_t *_mySrcPtr;
|
||||
|
||||
//* Jul 6, 2010 modifed by Mark Sproul to work with the 2560
|
||||
_myDstPtr = (uint8_t *)__dst;
|
||||
_mySrcPtr = (uint8_t *)__src;
|
||||
|
||||
while (__n--)
|
||||
{
|
||||
// eeprom_write_byte((uint8_t *)__dst++, *(uint8_t *)__src++);
|
||||
eeprom_write_byte(_myDstPtr++, *_mySrcPtr++);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \name IAR C compatibility defines */
|
||||
/*@{*/
|
||||
|
||||
/** \def _EEPUT
|
||||
\ingroup avr_eeprom
|
||||
Write a byte to EEPROM. Compatibility define for IAR C. */
|
||||
#define _EEPUT(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
|
||||
|
||||
/** \def _EEGET
|
||||
\ingroup avr_eeprom
|
||||
Read a byte from EEPROM. Compatibility define for IAR C. */
|
||||
#define _EEGET(var, addr) (var) = eeprom_read_byte ((const uint8_t *)(addr))
|
||||
|
||||
/*@}*/
|
||||
|
||||
#endif /* E2END || defined(__DOXYGEN__) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_AVR_EEPROM_H */
|
||||
29
avr-libc.build.bash
Executable file
29
avr-libc.build.bash
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
if [[ ! -f avr-libc-1.6.4.tar.bz2 ]] ;
|
||||
then
|
||||
wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.6.4.tar.bz2
|
||||
fi
|
||||
|
||||
tar xfjv avr-libc-1.6.4.tar.bz2
|
||||
|
||||
cp avr-libc-patches/eeprom.h avr-libc-1.6.4/include/avr/eeprom.h
|
||||
|
||||
mkdir -p objdir
|
||||
cd objdir
|
||||
PREFIX=`pwd`
|
||||
cd -
|
||||
|
||||
mkdir -p avr-libc-build
|
||||
cd avr-libc-build
|
||||
|
||||
CONFARGS=" \
|
||||
--prefix=$PREFIX \
|
||||
--host=avr"
|
||||
|
||||
PATH=$PREFIX/bin:$PATH CFLAGS=-w CXXFLAGS=-w ../avr-libc-1.6.4/configure $CONFARGS
|
||||
|
||||
PATH=$PREFIX/bin:$PATH nice -n 10 make -j 5
|
||||
|
||||
PATH=$PREFIX/bin:$PATH make install
|
||||
|
||||
8
binutils-debian/README.debian
Normal file
8
binutils-debian/README.debian
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
To make it possible to have different versions of binutils packages
|
||||
installed for diffrent targets the locale and most common documentation have
|
||||
been removed from the cross packages. If you want these files aswell you'll
|
||||
have to install the same version of the native package as of this package.
|
||||
|
||||
For nesC/TinyOS users, the addition of "OPTFLAGS:= -Wa,--allow-dollars"
|
||||
to their makefiles will allow the use of dollars in function names (with
|
||||
nesC >=1.1.3).
|
||||
521
binutils-debian/atmel_patches/30-binutils-2.20.1-avr-size.patch
Normal file
521
binutils-debian/atmel_patches/30-binutils-2.20.1-avr-size.patch
Normal file
|
|
@ -0,0 +1,521 @@
|
|||
AVR specific only
|
||||
===========================================================
|
||||
--- binutils/size.c 2007-08-06 13:56:14.000000000 -0600
|
||||
+++ binutils/size.c 2007-09-13 09:13:10.281250000 -0600
|
||||
@@ -36,10 +36,31 @@
|
||||
#include "getopt.h"
|
||||
#include "bucomm.h"
|
||||
|
||||
-#ifndef BSD_DEFAULT
|
||||
-#define BSD_DEFAULT 1
|
||||
+typedef enum
|
||||
+{
|
||||
+ format_sysv = 0,
|
||||
+ format_bsd = 1,
|
||||
+ format_avr = 2,
|
||||
+} format_type_t;
|
||||
+
|
||||
+
|
||||
+/* Set the default format. */
|
||||
+#define FORMAT_DEFAULT_SYSV 0
|
||||
+#define FORMAT_DEFAULT_BSD 1
|
||||
+#define FORMAT_DEFAULT_AVR 0
|
||||
+
|
||||
+#if FORMAT_DEFAULT_SYSV
|
||||
+ #define FORMAT_DEFAULT format_sysv
|
||||
+ #define FORMAT_NAME "sysv"
|
||||
+#elif FORMAT_DEFAULT_BSD
|
||||
+ #define FORMAT_DEFAULT format_bsd
|
||||
+ #define FORMAT_NAME "berkeley"
|
||||
+#elif FORMAT_DEFAULT_AVR
|
||||
+ #define FORMAT_DEFAULT format_avr
|
||||
+ #define FORMAT_NAME "avr"
|
||||
#endif
|
||||
|
||||
+
|
||||
/* Program options. */
|
||||
|
||||
static enum
|
||||
@@ -48,9 +69,8 @@ static enum
|
||||
}
|
||||
radix = decimal;
|
||||
|
||||
-/* 0 means use AT&T-style output. */
|
||||
-static int berkeley_format = BSD_DEFAULT;
|
||||
|
||||
+format_type_t format = FORMAT_DEFAULT;
|
||||
static int show_version = 0;
|
||||
static int show_help = 0;
|
||||
static int show_totals = 0;
|
||||
@@ -64,6 +84,246 @@ static bfd_size_type total_textsize;
|
||||
/* Program exit status. */
|
||||
static int return_code = 0;
|
||||
|
||||
+
|
||||
+/* AVR Size specific stuff */
|
||||
+
|
||||
+#define AVR64 64UL
|
||||
+#define AVR128 128UL
|
||||
+#define AVR256 256UL
|
||||
+#define AVR512 512UL
|
||||
+#define AVR1K 1024UL
|
||||
+#define AVR2K 2048UL
|
||||
+#define AVR4K 4096UL
|
||||
+#define AVR8K 8192UL
|
||||
+#define AVR16K 16384UL
|
||||
+#define AVR20K 20480UL
|
||||
+#define AVR24K 24576UL
|
||||
+#define AVR32K 32768UL
|
||||
+#define AVR36K 36864UL
|
||||
+#define AVR40K 40960UL
|
||||
+#define AVR64K 65536UL
|
||||
+#define AVR68K 69632UL
|
||||
+#define AVR128K 131072UL
|
||||
+#define AVR136K 139264UL
|
||||
+#define AVR200K 204800UL
|
||||
+#define AVR256K 262144UL
|
||||
+#define AVR264K 270336UL
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ char *name;
|
||||
+ long flash;
|
||||
+ long ram;
|
||||
+ long eeprom;
|
||||
+} avr_device_t;
|
||||
+
|
||||
+avr_device_t avr[] =
|
||||
+{
|
||||
+ {"atxmega256a3", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256d3", AVR264K, AVR16K, AVR4K},
|
||||
+
|
||||
+ {"atmega2560", AVR256K, AVR8K, AVR4K},
|
||||
+ {"atmega2561", AVR256K, AVR8K, AVR4K},
|
||||
+
|
||||
+ {"atxmega192a3", AVR200K, AVR16K, AVR2K},
|
||||
+ {"atxmega192d3", AVR200K, AVR16K, AVR2K},
|
||||
+
|
||||
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128a1u", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
|
||||
+
|
||||
+ {"at43usb320", AVR128K, 608UL, 0UL},
|
||||
+ {"at90can128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"at90usb1286", AVR128K, AVR8K, AVR4K},
|
||||
+ {"at90usb1287", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"atmega1280", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1281", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1284p", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega128rfa1", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega103", AVR128K, 4000UL, AVR4K},
|
||||
+
|
||||
+ {"atxmega64a1", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64a1u", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64a3", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"at90can64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90scr100", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega640", AVR64K, AVR8K, AVR4K},
|
||||
+ {"atmega644", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644pa", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64c1", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64hve", AVR64K, AVR4K, AVR1K},
|
||||
+ {"atmega64m1", AVR64K, AVR4K, AVR2K},
|
||||
+ {"m3000", AVR64K, AVR4K, 0UL},
|
||||
+
|
||||
+ {"atmega406", AVR40K, AVR2K, AVR512},
|
||||
+
|
||||
+ {"atxmega32a4", AVR36K, AVR4K, AVR1K},
|
||||
+ {"atxmega32d4", AVR36K, AVR4K, AVR1K},
|
||||
+
|
||||
+ {"at90can32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"at94k", AVR32K, AVR4K, 0UL},
|
||||
+ {"atmega32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega323", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324a", AVR32K, AVR2K, AVR1K},
|
||||
+ {"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},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32u2", AVR32K, AVR1K, AVR1K},
|
||||
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
|
||||
+ {"atmega32u6", AVR32K, 2560UL, AVR1K},
|
||||
+
|
||||
+ {"at43usb355", AVR24K, 1120UL, 0UL},
|
||||
+
|
||||
+ {"atxmega16a4", AVR20K, AVR2K, AVR1K},
|
||||
+ {"atxmega16d4", AVR20K, AVR2K, AVR1K},
|
||||
+
|
||||
+ {"at76c711", AVR16K, AVR2K, 0UL},
|
||||
+ {"at90pwm216", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90pwm316", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90usb162", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega161", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega162", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega163", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169pa", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16hva", AVR16K, 768UL, AVR256},
|
||||
+ {"atmega16hva2", AVR16K, AVR1K, AVR256},
|
||||
+ {"atmega16hvb", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16m1", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16u2", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16u4", AVR16K, 1280UL, AVR512},
|
||||
+ {"attiny167", AVR16K, AVR512, AVR512},
|
||||
+
|
||||
+ {"at90c8534", AVR8K, 352UL, AVR512},
|
||||
+ {"at90pwm1", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm81", AVR8K, AVR256, AVR512},
|
||||
+ {"at90s8515", AVR8K, AVR512, AVR512},
|
||||
+ {"at90s8535", AVR8K, AVR512, AVR512},
|
||||
+ {"at90usb82", AVR8K, AVR512, AVR512},
|
||||
+ {"ata6289", AVR8K, AVR512, 320UL},
|
||||
+ {"atmega8", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8515", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega8535", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega88", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88a", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88p", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88pa", AVR8K, AVR1K, AVR512},
|
||||
+ {"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},
|
||||
+ {"attiny87", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny88", AVR8K, AVR512, AVR64},
|
||||
+
|
||||
+ {"at90s4414", AVR4K, 352UL, AVR256},
|
||||
+ {"at90s4433", AVR4K, AVR128, AVR256},
|
||||
+ {"at90s4434", AVR4K, 352UL, AVR256},
|
||||
+ {"atmega48", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48a", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48p", AVR4K, AVR512, AVR256},
|
||||
+ {"attiny4313", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny43u", AVR4K, AVR256, AVR64},
|
||||
+ {"attiny44", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny44a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny45", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny48", AVR4K, AVR256, AVR64},
|
||||
+
|
||||
+ {"at86rf401", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2313", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2323", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2333", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2343", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny20", AVR2K, AVR128, 0UL},
|
||||
+ {"attiny22", AVR2K, 224UL, AVR128},
|
||||
+ {"attiny2313", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny2313a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny25", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny26", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny28", AVR2K, 0UL, 0UL},
|
||||
+ {"attiny40", AVR2K, AVR256, 0UL},
|
||||
+
|
||||
+ {"at90s1200", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny9", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny10", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny11", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny12", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny13", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny13a", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny15", AVR1K, 0UL, AVR64},
|
||||
+
|
||||
+ {"attiny4", AVR512, 32UL, 0UL},
|
||||
+ {"attiny5", AVR512, 32UL, 0UL},
|
||||
+};
|
||||
+
|
||||
+static char *avrmcu = NULL;
|
||||
+
|
||||
+
|
||||
static char *target = NULL;
|
||||
|
||||
/* Forward declarations. */
|
||||
@@ -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\
|
||||
- -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\
|
||||
+ -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\
|
||||
+ --mcu=<avrmcu> MCU name for AVR format only\n\
|
||||
-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 +337,7 @@ usage (FILE *stream, int status)
|
||||
-h --help Display this information\n\
|
||||
-v --version Display the program's version\n\
|
||||
\n"),
|
||||
-#if BSD_DEFAULT
|
||||
- "berkeley"
|
||||
-#else
|
||||
- "sysv"
|
||||
-#endif
|
||||
+FORMAT_NAME
|
||||
);
|
||||
list_supported_targets (program_name, stream);
|
||||
if (REPORT_BUGS_TO[0] && status == 0)
|
||||
@@ -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)
|
||||
+#define OPTION_MCU (OPTION_TARGET + 1)
|
||||
|
||||
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},
|
||||
+ {"mcu", required_argument, 0, 203},
|
||||
{"totals", no_argument, &show_totals, 1},
|
||||
{"version", no_argument, &show_version, 1},
|
||||
{"help", no_argument, &show_help, 1},
|
||||
@@ -141,7 +399,7 @@ main (int argc, char **argv)
|
||||
bfd_init ();
|
||||
set_default_bfd_target ();
|
||||
|
||||
- while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options,
|
||||
+ while ((c = getopt_long (argc, argv, "ABCHhVvdfotx", long_options,
|
||||
(int *) 0)) != EOF)
|
||||
switch (c)
|
||||
{
|
||||
@@ -150,11 +409,15 @@ main (int argc, char **argv)
|
||||
{
|
||||
case 'B':
|
||||
case 'b':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
+ break;
|
||||
+ case 'A':
|
||||
+ case 'a':
|
||||
+ format = format_avr;
|
||||
break;
|
||||
default:
|
||||
non_fatal (_("invalid argument to --format: %s"), optarg);
|
||||
@@ -162,6 +424,10 @@ main (int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
|
||||
+ case OPTION_MCU:
|
||||
+ avrmcu = optarg;
|
||||
+ break;
|
||||
+
|
||||
case OPTION_TARGET:
|
||||
target = optarg;
|
||||
break;
|
||||
@@ -190,11 +457,14 @@ main (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
break;
|
||||
case 'B':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
+ case 'C':
|
||||
+ format = format_avr;
|
||||
+ break;
|
||||
case 'v':
|
||||
case 'V':
|
||||
show_version = 1;
|
||||
@@ -240,7 +509,7 @@ main (int argc, char **argv)
|
||||
for (; optind < argc;)
|
||||
display_file (argv[optind++]);
|
||||
|
||||
- if (show_totals && berkeley_format)
|
||||
+ if (show_totals && format == format_bsd)
|
||||
{
|
||||
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
|
||||
|
||||
@@ -599,13 +869,117 @@ print_sysv_format (bfd *file)
|
||||
printf ("\n\n");
|
||||
}
|
||||
|
||||
+
|
||||
+static avr_device_t *
|
||||
+avr_find_device (void)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ if (avrmcu != NULL)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++)
|
||||
+ {
|
||||
+ if (strcmp(avr[i].name, avrmcu) == 0)
|
||||
+ {
|
||||
+ /* Match found */
|
||||
+ return (&avr[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+print_avr_format (bfd *file)
|
||||
+{
|
||||
+ char *avr_name = "Unknown";
|
||||
+ int flashmax = 0;
|
||||
+ int rammax = 0;
|
||||
+ int eeprommax = 0;
|
||||
+ asection *section;
|
||||
+ bfd_size_type datasize = 0;
|
||||
+ bfd_size_type textsize = 0;
|
||||
+ bfd_size_type bsssize = 0;
|
||||
+ bfd_size_type bootloadersize = 0;
|
||||
+ bfd_size_type noinitsize = 0;
|
||||
+ bfd_size_type eepromsize = 0;
|
||||
+
|
||||
+ avr_device_t *avrdevice = avr_find_device();
|
||||
+ if (avrdevice != NULL)
|
||||
+ {
|
||||
+ avr_name = avrdevice->name;
|
||||
+ flashmax = avrdevice->flash;
|
||||
+ rammax = avrdevice->ram;
|
||||
+ eeprommax = avrdevice->eeprom;
|
||||
+ }
|
||||
+
|
||||
+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL)
|
||||
+ datasize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL)
|
||||
+ textsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL)
|
||||
+ bsssize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL)
|
||||
+ bootloadersize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL)
|
||||
+ noinitsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL)
|
||||
+ eepromsize = bfd_section_size (file, section);
|
||||
+
|
||||
+ bfd_size_type text = textsize + datasize + bootloadersize;
|
||||
+ bfd_size_type data = datasize + bsssize + noinitsize;
|
||||
+ bfd_size_type eeprom = eepromsize;
|
||||
+
|
||||
+ printf ("AVR Memory Usage\n"
|
||||
+ "----------------\n"
|
||||
+ "Device: %s\n\n", avr_name);
|
||||
+
|
||||
+ /* Text size */
|
||||
+ printf ("Program:%8ld bytes", text);
|
||||
+ if (flashmax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.text + .data + .bootloader)\n\n");
|
||||
+
|
||||
+ /* Data size */
|
||||
+ printf ("Data: %8ld bytes", data);
|
||||
+ if (rammax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)data / rammax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.data + .bss + .noinit)\n\n");
|
||||
+
|
||||
+ /* EEPROM size */
|
||||
+ if (eeprom > 0)
|
||||
+ {
|
||||
+ printf ("EEPROM: %8ld bytes", eeprom);
|
||||
+ if (eeprommax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.eeprom)\n\n");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void
|
||||
print_sizes (bfd *file)
|
||||
{
|
||||
if (show_common)
|
||||
calculate_common_size (file);
|
||||
- if (berkeley_format)
|
||||
- print_berkeley_format (file);
|
||||
- else
|
||||
- print_sysv_format (file);
|
||||
+ switch (format)
|
||||
+ {
|
||||
+ case format_sysv:
|
||||
+ print_sysv_format (file);
|
||||
+ break;
|
||||
+ case format_bsd:
|
||||
+ print_berkeley_format (file);
|
||||
+ break;
|
||||
+ case format_avr:
|
||||
+ default:
|
||||
+ print_avr_format (file);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
5505
binutils-debian/atmel_patches/31-binutils-2.20.1-avr-coff.patch
Normal file
5505
binutils-debian/atmel_patches/31-binutils-2.20.1-avr-coff.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,38 @@
|
|||
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-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
|
||||
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 @@
|
||||
${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) }
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
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
|
||||
out_debug_line(). */
|
||||
+#ifndef TC_AVR
|
||||
#define DWARF2_LINE_OPCODE_BASE 13
|
||||
-
|
||||
+#else
|
||||
+#define DWARF2_LINE_OPCODE_BASE 10
|
||||
+#endif
|
||||
#ifndef DWARF2_LINE_BASE
|
||||
/* Minimum line offset in a special line info. opcode. This value
|
||||
was chosen to give a reasonable range of values. */
|
||||
@@ -1439,9 +1442,11 @@
|
||||
out_byte (0); /* DW_LNS_set_basic_block */
|
||||
out_byte (0); /* DW_LNS_const_add_pc */
|
||||
out_byte (1); /* DW_LNS_fixed_advance_pc */
|
||||
+#ifndef TC_AVR
|
||||
out_byte (0); /* DW_LNS_set_prologue_end */
|
||||
out_byte (0); /* DW_LNS_set_epilogue_begin */
|
||||
out_byte (1); /* DW_LNS_set_isa */
|
||||
+#endif
|
||||
|
||||
out_file_list ();
|
||||
|
||||
|
|
@ -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"
|
||||
679
binutils-debian/atmel_patches/50-binutils-2.20.1-xmega.patch
Normal file
679
binutils-debian/atmel_patches/50-binutils-2.20.1-xmega.patch
Normal file
|
|
@ -0,0 +1,679 @@
|
|||
avrxmega1
|
||||
avrxmega2
|
||||
avrxmega3
|
||||
avrxmega4
|
||||
avrxmega5
|
||||
avrxmega6
|
||||
avrxmega7
|
||||
atxmega16a4
|
||||
atxmega16d4
|
||||
atxmega32d4
|
||||
atxmega32a4
|
||||
atxmega64a3
|
||||
atxmega64d3
|
||||
atxmega64a1
|
||||
atxmega128a3
|
||||
atxmega128d3
|
||||
atxmega192a3
|
||||
atxmega192d3
|
||||
atxmega256a3
|
||||
atxmega256a3b
|
||||
atxmega256d3
|
||||
atxmega128a1
|
||||
=======================================================
|
||||
diff -ruwN bfd/archures.c bfd/archures.c
|
||||
--- bfd/archures.c 2010-03-11 15:11:01.594960800 +0530
|
||||
+++ bfd/archures.c 2010-03-11 15:12:26.227001600 +0530
|
||||
@@ -368,6 +368,13 @@
|
||||
.#define bfd_mach_avr5 5
|
||||
.#define bfd_mach_avr51 51
|
||||
.#define bfd_mach_avr6 6
|
||||
+.#define bfd_mach_avrxmega1 101
|
||||
+.#define bfd_mach_avrxmega2 102
|
||||
+.#define bfd_mach_avrxmega3 103
|
||||
+.#define bfd_mach_avrxmega4 104
|
||||
+.#define bfd_mach_avrxmega5 105
|
||||
+.#define bfd_mach_avrxmega6 106
|
||||
+.#define bfd_mach_avrxmega7 107
|
||||
. bfd_arch_bfin, {* ADI Blackfin *}
|
||||
.#define bfd_mach_bfin 1
|
||||
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
|
||||
diff -ruwN bfd/bfd-in2.h bfd/bfd-in2.h
|
||||
--- bfd/bfd-in2.h 2010-03-11 15:11:01.594960800 +0530
|
||||
+++ bfd/bfd-in2.h 2010-03-11 15:12:26.242627900 +0530
|
||||
@@ -2035,6 +2035,13 @@
|
||||
#define bfd_mach_avr5 5
|
||||
#define bfd_mach_avr51 51
|
||||
#define bfd_mach_avr6 6
|
||||
+#define bfd_mach_avrxmega1 101
|
||||
+#define bfd_mach_avrxmega2 102
|
||||
+#define bfd_mach_avrxmega3 103
|
||||
+#define bfd_mach_avrxmega4 104
|
||||
+#define bfd_mach_avrxmega5 105
|
||||
+#define bfd_mach_avrxmega6 106
|
||||
+#define bfd_mach_avrxmega7 107
|
||||
bfd_arch_bfin, /* ADI Blackfin */
|
||||
#define bfd_mach_bfin 1
|
||||
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
|
||||
diff -ruwN bfd/cpu-avr.c bfd/cpu-avr.c
|
||||
--- bfd/cpu-avr.c 2010-03-11 15:11:01.813729000 +0530
|
||||
+++ bfd/cpu-avr.c 2010-03-11 15:12:26.242627900 +0530
|
||||
@@ -133,7 +133,29 @@
|
||||
N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
|
||||
|
||||
/* 3-Byte PC. */
|
||||
- N (22, bfd_mach_avr6, "avr:6", FALSE, NULL)
|
||||
+ N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
|
||||
+
|
||||
+ /* Xmega 1 */
|
||||
+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
|
||||
+
|
||||
+ /* Xmega 2 */
|
||||
+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
|
||||
+
|
||||
+ /* Xmega 3 */
|
||||
+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
|
||||
+
|
||||
+ /* Xmega 4 */
|
||||
+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
|
||||
+
|
||||
+ /* Xmega 5 */
|
||||
+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
|
||||
+
|
||||
+ /* Xmega 6 */
|
||||
+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
|
||||
+
|
||||
+ /* Xmega 7 */
|
||||
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
|
||||
+
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_avr_arch =
|
||||
diff -ruwN bfd/elf32-avr.c bfd/elf32-avr.c
|
||||
--- bfd/elf32-avr.c 2010-03-11 15:11:02.079376100 +0530
|
||||
+++ bfd/elf32-avr.c 2010-03-11 15:12:26.258254200 +0530
|
||||
@@ -1328,6 +1328,34 @@
|
||||
case bfd_mach_avr6:
|
||||
val = E_AVR_MACH_AVR6;
|
||||
break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega1:
|
||||
+ val = E_AVR_MACH_XMEGA1;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega2:
|
||||
+ val = E_AVR_MACH_XMEGA2;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega3:
|
||||
+ val = E_AVR_MACH_XMEGA3;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega4:
|
||||
+ val = E_AVR_MACH_XMEGA4;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega5:
|
||||
+ val = E_AVR_MACH_XMEGA5;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega6:
|
||||
+ val = E_AVR_MACH_XMEGA6;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega7:
|
||||
+ val = E_AVR_MACH_XMEGA7;
|
||||
+ break;
|
||||
}
|
||||
|
||||
elf_elfheader (abfd)->e_machine = EM_AVR;
|
||||
@@ -1390,6 +1418,34 @@
|
||||
case E_AVR_MACH_AVR6:
|
||||
e_set = bfd_mach_avr6;
|
||||
break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA1:
|
||||
+ e_set = bfd_mach_avrxmega1;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA2:
|
||||
+ e_set = bfd_mach_avrxmega2;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA3:
|
||||
+ e_set = bfd_mach_avrxmega3;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA4:
|
||||
+ e_set = bfd_mach_avrxmega4;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA5:
|
||||
+ e_set = bfd_mach_avrxmega5;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA6:
|
||||
+ e_set = bfd_mach_avrxmega6;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA7:
|
||||
+ e_set = bfd_mach_avrxmega7;
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
|
||||
diff -ruwN gas/config/tc-avr.c gas/config/tc-avr.c
|
||||
--- gas/config/tc-avr.c 2010-03-11 15:11:05.704677700 +0530
|
||||
+++ gas/config/tc-avr.c 2010-03-11 15:12:26.273880500 +0530
|
||||
@@ -30,18 +30,19 @@
|
||||
{
|
||||
char * name;
|
||||
char * constraints;
|
||||
+ char *opcode;
|
||||
int insn_size; /* In words. */
|
||||
int isa;
|
||||
unsigned int bin_opcode;
|
||||
};
|
||||
|
||||
#define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
|
||||
-{#NAME, CONSTR, SIZE, ISA, BIN},
|
||||
+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
|
||||
|
||||
struct avr_opcodes_s avr_opcodes[] =
|
||||
{
|
||||
#include "opcode/avr.h"
|
||||
- {NULL, NULL, 0, 0, 0}
|
||||
+ {NULL, NULL, NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
const char comment_chars[] = ";";
|
||||
@@ -80,6 +81,13 @@
|
||||
{"avr5", AVR_ISA_AVR51, bfd_mach_avr5},
|
||||
{"avr51", AVR_ISA_AVR51, bfd_mach_avr51},
|
||||
{"avr6", AVR_ISA_AVR6, bfd_mach_avr6},
|
||||
+ {"avrxmega1", AVR_ISA_XMEGA, bfd_mach_avrxmega1},
|
||||
+ {"avrxmega2", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
|
||||
+ {"avrxmega3", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
|
||||
+ {"avrxmega4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
|
||||
+ {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
|
||||
{"attiny11", AVR_ISA_AVR1, bfd_mach_avr1},
|
||||
{"attiny12", AVR_ISA_AVR1, bfd_mach_avr1},
|
||||
@@ -216,6 +224,21 @@
|
||||
{"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},
|
||||
+ {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"atxmega64a1", 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},
|
||||
+ {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
@@ -393,6 +416,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"
|
||||
+ " avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
|
||||
" or immediate microcontroller name.\n"));
|
||||
fprintf (stream,
|
||||
_(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
|
||||
@@ -820,7 +848,12 @@
|
||||
if (*str == '+')
|
||||
{
|
||||
++str;
|
||||
- op_mask |= 1;
|
||||
+ char *s;
|
||||
+ for (s = opcode->opcode; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ op_mask |= (1 << (15 - (s - opcode->opcode)));
|
||||
+ }
|
||||
}
|
||||
|
||||
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
|
||||
@@ -937,6 +970,16 @@
|
||||
}
|
||||
break;
|
||||
|
||||
+ case 'E':
|
||||
+ {
|
||||
+ unsigned int x;
|
||||
+
|
||||
+ x = avr_get_constant (str, 15);
|
||||
+ str = input_line_pointer;
|
||||
+ op_mask |= (x << 4);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case '?':
|
||||
break;
|
||||
|
||||
diff -ruwN gas/doc/c-avr.texi gas/doc/c-avr.texi
|
||||
--- gas/doc/c-avr.texi 2010-03-11 15:11:06.736013500 +0530
|
||||
+++ gas/doc/c-avr.texi 2010-03-11 15:12:26.289506800 +0530
|
||||
@@ -80,6 +80,27 @@
|
||||
Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
|
||||
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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
@cindex @code{-mall-opcodes} command line option, AVR
|
||||
@item -mall-opcodes
|
||||
Accept all AVR opcodes, even if not supported by @code{-mmcu}.
|
||||
diff -ruwN include/elf/avr.h include/elf/avr.h
|
||||
--- include/elf/avr.h 2010-03-11 15:11:19.705842500 +0530
|
||||
+++ include/elf/avr.h 2010-03-11 15:12:26.336385700 +0530
|
||||
@@ -40,6 +40,13 @@
|
||||
#define E_AVR_MACH_AVR5 5
|
||||
#define E_AVR_MACH_AVR51 51
|
||||
#define E_AVR_MACH_AVR6 6
|
||||
+#define E_AVR_MACH_XMEGA1 101
|
||||
+#define E_AVR_MACH_XMEGA2 102
|
||||
+#define E_AVR_MACH_XMEGA3 103
|
||||
+#define E_AVR_MACH_XMEGA4 104
|
||||
+#define E_AVR_MACH_XMEGA5 105
|
||||
+#define E_AVR_MACH_XMEGA6 106
|
||||
+#define E_AVR_MACH_XMEGA7 107
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_avr_reloc_type)
|
||||
diff -ruwN include/opcode/avr.h include/opcode/avr.h
|
||||
--- include/opcode/avr.h 2010-03-11 15:11:19.940237000 +0530
|
||||
+++ include/opcode/avr.h 2010-03-11 15:12:26.336385700 +0530
|
||||
@@ -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) */
|
||||
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
|
||||
+#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
|
||||
+#define AVR_ISA_DES 0x4000 /* device has DES */
|
||||
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
@@ -48,6 +50,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_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
|
||||
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
|
||||
|
||||
#define AVR_ISA_AVR1 AVR_ISA_TINY1
|
||||
#define AVR_ISA_AVR2 AVR_ISA_2xxx
|
||||
@@ -108,6 +112,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)
|
||||
+ E - immediate value from 0 to 15, shifted left by 4 (des)
|
||||
? - 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 @@
|
||||
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 (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
|
||||
|
||||
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 @@
|
||||
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 -ruwN ld/Makefile.am ld/Makefile.am
|
||||
--- ld/Makefile.am 2010-03-11 15:11:21.893524500 +0530
|
||||
+++ ld/Makefile.am 2010-03-11 15:12:26.352012000 +0530
|
||||
@@ -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 -ruwN ld/Makefile.in ld/Makefile.in
|
||||
--- ld/Makefile.in 2010-03-11 15:11:21.909150800 +0530
|
||||
+++ ld/Makefile.in 2010-03-11 15:12:26.367638300 +0530
|
||||
@@ -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 -ruwN ld/configure.tgt ld/configure.tgt
|
||||
--- ld/configure.tgt 2010-03-11 15:11:20.237136700 +0530
|
||||
+++ ld/configure.tgt 2010-03-11 15:12:26.367638300 +0530
|
||||
@@ -110,7 +110,7 @@
|
||||
xscale-*-elf) targ_emul=armelf
|
||||
;;
|
||||
avr-*-*) targ_emul=avr2
|
||||
- targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6"
|
||||
+ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
|
||||
;;
|
||||
bfin-*-elf) targ_emul=elf32bfin;
|
||||
targ_extra_emuls="elf32bfinfd"
|
||||
diff -ruwN ld/emulparams/avrxmega1.sh ld/emulparams/avrxmega1.sh
|
||||
--- ld/emulparams/avrxmega1.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega1.sh 2010-03-11 15:12:26.398890900 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:101
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega2.sh ld/emulparams/avrxmega2.sh
|
||||
--- ld/emulparams/avrxmega2.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega2.sh 2010-03-11 15:12:26.414517200 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:102
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega3.sh ld/emulparams/avrxmega3.sh
|
||||
--- ld/emulparams/avrxmega3.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega3.sh 2010-03-11 15:12:26.414517200 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:103
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega4.sh ld/emulparams/avrxmega4.sh
|
||||
--- ld/emulparams/avrxmega4.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega4.sh 2010-03-11 15:12:26.430143500 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:104
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega5.sh ld/emulparams/avrxmega5.sh
|
||||
--- ld/emulparams/avrxmega5.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega5.sh 2010-03-11 15:12:26.430143500 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:105
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega6.sh ld/emulparams/avrxmega6.sh
|
||||
--- ld/emulparams/avrxmega6.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega6.sh 2010-03-11 15:12:26.430143500 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:106
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emulparams/avrxmega7.sh ld/emulparams/avrxmega7.sh
|
||||
--- ld/emulparams/avrxmega7.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrxmega7.sh 2010-03-11 15:12:26.445769800 +0530
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:107
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
diff -ruwN ld/emultempl/avrelf.em ld/emultempl/avrelf.em
|
||||
--- ld/emultempl/avrelf.em 2010-03-11 15:11:21.346604000 +0530
|
||||
+++ ld/emultempl/avrelf.em 2010-03-11 15:12:26.383264600 +0530
|
||||
@@ -71,8 +71,10 @@
|
||||
|
||||
gld${EMULATION_NAME}_before_allocation ();
|
||||
|
||||
- /* We only need stubs for the avr6 family. */
|
||||
- if (strcmp ("${EMULATION_NAME}","avr6"))
|
||||
+ /* We only need stubs for avr6, avrxmega6, and avrxmega7. */
|
||||
+ if (strcmp ("${EMULATION_NAME}","avr6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega7") )
|
||||
avr_no_stubs = TRUE;
|
||||
|
||||
avr_elf_set_global_bfd_parameters ();
|
||||
diff -ruwN opcodes/avr-dis.c opcodes/avr-dis.c
|
||||
--- opcodes/avr-dis.c 2010-03-11 15:11:30.066079400 +0530
|
||||
+++ opcodes/avr-dis.c 2010-03-11 15:12:26.398890900 +0530
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
static int
|
||||
avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint,
|
||||
- char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
+ char *opcode_str, char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
{
|
||||
int ok = 1;
|
||||
*sym = 0;
|
||||
@@ -118,8 +118,18 @@
|
||||
|
||||
case 'z':
|
||||
*buf++ = 'Z';
|
||||
- if (insn & 0x1)
|
||||
+
|
||||
+ /* Check for post-increment. */
|
||||
+ char *s;
|
||||
+ for (s = opcode_str; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ {
|
||||
*buf++ = '+';
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
*buf = '\0';
|
||||
if (AVR_UNDEF_P (insn))
|
||||
sprintf (comment, _("undefined"));
|
||||
@@ -227,6 +237,10 @@
|
||||
}
|
||||
break;
|
||||
|
||||
+ case 'E':
|
||||
+ sprintf (buf, "%d", (insn >> 4) & 15);
|
||||
+ break;
|
||||
+
|
||||
case '?':
|
||||
*buf = '\0';
|
||||
break;
|
||||
@@ -331,7 +345,8 @@
|
||||
|
||||
if (opcode->name)
|
||||
{
|
||||
- char *op = opcode->constraints;
|
||||
+ char *constraints = opcode->constraints;
|
||||
+ char *opcode_str = opcode->opcode;
|
||||
|
||||
insn2 = 0;
|
||||
ok = 1;
|
||||
@@ -342,14 +357,14 @@
|
||||
cmd_len = 4;
|
||||
}
|
||||
|
||||
- if (*op && *op != '?')
|
||||
+ if (*constraints && *constraints != '?')
|
||||
{
|
||||
- int regs = REGISTER_P (*op);
|
||||
+ int regs = REGISTER_P (*constraints);
|
||||
|
||||
- ok = avr_operand (insn, insn2, addr, *op, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
+ ok = avr_operand (insn, insn2, addr, *constraints, opcode_str, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
|
||||
- if (ok && *(++op) == ',')
|
||||
- ok = avr_operand (insn, insn2, addr, *(++op), op2,
|
||||
+ if (ok && *(++constraints) == ',')
|
||||
+ ok = avr_operand (insn, insn2, addr, *(++constraints), opcode_str, op2,
|
||||
*comment1 ? comment2 : comment1, regs, &sym_op2, &sym_addr2);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
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},
|
||||
+ {"atmega48a", 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},
|
||||
{"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
+ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
- {"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},
|
||||
+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega161", AVR_ISA_M161, bfd_mach_avr5},
|
||||
{"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega163", AVR_ISA_M161, bfd_mach_avr5},
|
||||
+ {"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},
|
||||
{"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"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},
|
||||
{"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},
|
||||
{"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"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},
|
||||
{"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
@@ -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,
|
||||
-attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
|
||||
-attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861,
|
||||
-attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289).
|
||||
+attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
|
||||
+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).
|
||||
@@ -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
|
||||
-memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
|
||||
-atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
|
||||
-at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1).
|
||||
+memory space (MCU types: atmega48, atmega48a, 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: 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).
|
||||
+memory space (MCU types: 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,
|
||||
+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).
|
||||
219
binutils-debian/atmel_patches/52-binutils-2.20.1-avrtiny10.patch
Normal file
219
binutils-debian/atmel_patches/52-binutils-2.20.1-avrtiny10.patch
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
diff -rupwN bfd/archures.c bfd/archures.c
|
||||
--- bfd/archures.c 2010-03-03 16:20:55.885794700 +0530
|
||||
+++ bfd/archures.c 2010-03-03 16:31:28.276419700 +0530
|
||||
@@ -364,6 +364,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 -rupwN bfd/bfd-in2.h bfd/bfd-in2.h
|
||||
--- bfd/bfd-in2.h 2010-03-03 16:20:55.901419700 +0530
|
||||
+++ bfd/bfd-in2.h 2010-03-03 16:29:05.932669700 +0530
|
||||
@@ -1986,6 +1986,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 -rupwN bfd/cpu-avr.c bfd/cpu-avr.c
|
||||
--- bfd/cpu-avr.c 2010-03-03 16:20:55.917044700 +0530
|
||||
+++ bfd/cpu-avr.c 2010-03-03 16:32:05.245169700 +0530
|
||||
@@ -147,7 +147,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 -rupwN bfd/elf32-avr.c bfd/elf32-avr.c
|
||||
--- bfd/elf32-avr.c 2010-03-03 16:20:55.917044700 +0530
|
||||
+++ bfd/elf32-avr.c 2010-03-03 16:29:41.088919700 +0530
|
||||
@@ -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 -rupwN gas/config/tc-avr.c gas/config/tc-avr.c
|
||||
--- gas/config/tc-avr.c 2010-03-03 16:21:04.370169700 +0530
|
||||
+++ gas/config/tc-avr.c 2010-03-24 13:32:53.117135700 +0530
|
||||
@@ -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 -rupwN include/elf/avr.h include/elf/avr.h
|
||||
--- include/elf/avr.h 2010-03-03 16:20:55.963919700 +0530
|
||||
+++ include/elf/avr.h 2010-03-03 16:35:50.448294700 +0530
|
||||
@@ -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 -rupwN include/opcode/avr.h include/opcode/avr.h
|
||||
--- include/opcode/avr.h 2010-03-09 11:43:29.977081100 +0530
|
||||
+++ include/opcode/avr.h 2010-03-09 11:41:29.492706100 +0530
|
||||
@@ -67,7 +67,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' \
|
||||
@@ -157,8 +157,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)
|
||||
@@ -258,8 +258,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)
|
||||
|
||||
@@ -271,8 +271,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 -rupwN ld/Makefile.am ld/Makefile.am
|
||||
--- ld/Makefile.am 2010-03-03 16:20:55.995169700 +0530
|
||||
+++ ld/Makefile.am 2010-03-03 16:27:57.917044700 +0530
|
||||
@@ -149,6 +149,7 @@ ALL_EMULATIONS = \
|
||||
eavrxmega5.o \
|
||||
eavrxmega6.o \
|
||||
eavrxmega7.o \
|
||||
+ eavrtiny10.o \
|
||||
ecoff_i860.o \
|
||||
ecoff_sparc.o \
|
||||
eelf32_spu.o \
|
||||
@@ -681,6 +682,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 -rupwN ld/Makefile.in ld/Makefile.in
|
||||
diff -rupwN ld/configure.tgt ld/configure.tgt
|
||||
--- ld/configure.tgt 2010-03-03 16:20:56.010794700 +0530
|
||||
+++ ld/configure.tgt 2010-03-03 16:34:44.854544700 +0530
|
||||
@@ -107,7 +107,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 -rupwN ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
|
||||
--- ld/emulparams/avrtiny10.sh 1970-01-01 05:30:00.000000000 +0530
|
||||
+++ ld/emulparams/avrtiny10.sh 2010-03-09 16:34:11.695439900 +0530
|
||||
@@ -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
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
--- gas/config/tc-avr.c 2010-03-27 12:26:07.250000000 -0600
|
||||
+++ gas/config/tc-avr.c 2010-03-28 13:56:11.937500000 -0600
|
||||
@@ -260,6 +260,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},
|
||||
@@ -268,6 +269,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},
|
||||
--- gas/doc/c-avr.texi 2010-03-27 12:26:07.000000000 -0600
|
||||
+++ gas/doc/c-avr.texi 2010-03-28 13:56:39.171875000 -0600
|
||||
@@ -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
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
--- gas/config/tc-avr.c 2010-09-21 20:24:16.703125000 -0600
|
||||
+++ gas/config/tc-avr.c 2010-09-21 20:26:21.312500000 -0600
|
||||
@@ -252,8 +252,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},
|
||||
--- gas/doc/c-avr.texi 2010-09-21 20:24:37.281250000 -0600
|
||||
+++ gas/doc/c-avr.texi 2010-09-21 20:27:33.656250000 -0600
|
||||
@@ -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).
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
diff -Naur ./binutils/size.c ./binutils/size.c
|
||||
--- ./binutils/size.c 2010-11-12 11:03:40.000000000 -0600
|
||||
+++ ./binutils/size.c 2010-11-12 11:15:58.000000000 -0600
|
||||
@@ -132,6 +132,7 @@
|
||||
{"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 -Naur ./gas/config/tc-avr.c ./gas/config/tc-avr.c
|
||||
--- ./gas/config/tc-avr.c 2010-11-12 11:03:43.000000000 -0600
|
||||
+++ ./gas/config/tc-avr.c 2010-11-12 11:35:32.000000000 -0600
|
||||
@@ -261,6 +261,7 @@
|
||||
{"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 -Naur ./gas/doc/c-avr.texi ./gas/doc/c-avr.texi
|
||||
--- ./gas/doc/c-avr.texi 2010-11-12 11:03:43.000000000 -0600
|
||||
+++ ./gas/doc/c-avr.texi 2010-11-12 11:36:39.000000000 -0600
|
||||
@@ -102,8 +102,8 @@
|
||||
|
||||
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,
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
diff -Naur binutils/size.c binutils/size.c
|
||||
--- binutils/size.c 2010-12-13 12:31:10.000000000 -0600
|
||||
+++ binutils/size.c 2010-12-13 12:38:19.000000000 -0600
|
||||
@@ -121,6 +121,7 @@
|
||||
{
|
||||
{"atxmega256a3", AVR264K, AVR16K, AVR4K},
|
||||
{"atxmega256a3b", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256a3bu",AVR264K, AVR16K, AVR4K},
|
||||
{"atxmega256d3", AVR264K, AVR16K, AVR4K},
|
||||
|
||||
{"atmega2560", AVR256K, AVR8K, AVR4K},
|
||||
diff -Naur gas/config/tc-avr.c gas/config/tc-avr.c
|
||||
--- gas/config/tc-avr.c 2010-12-13 12:31:10.000000000 -0600
|
||||
+++ gas/config/tc-avr.c 2010-12-13 13:14:34.000000000 -0600
|
||||
@@ -267,6 +267,7 @@
|
||||
{"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 -Naur gas/doc/c-avr.texi gas/doc/c-avr.texi
|
||||
--- gas/doc/c-avr.texi 2010-12-13 12:31:10.000000000 -0600
|
||||
+++ gas/doc/c-avr.texi 2010-12-13 13:15:34.000000000 -0600
|
||||
@@ -103,7 +103,7 @@
|
||||
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,
|
||||
|
|
@ -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)"
|
||||
|
|
@ -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,
|
||||
|
|
@ -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,
|
||||
377
binutils-debian/atmel_patches/60-binutils-2.20.1-bug13789.patch
Normal file
377
binutils-debian/atmel_patches/60-binutils-2.20.1-bug13789.patch
Normal file
|
|
@ -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
|
||||
+
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
diff -Naurp binutils/size.c binutils/size.c
|
||||
--- binutils/size.c 2011-03-24 12:38:45.000000000 -0500
|
||||
+++ binutils/size.c 2011-03-24 12:39:25.000000000 -0500
|
||||
@@ -255,6 +255,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-03-24 12:38:45.000000000 -0500
|
||||
+++ gas/config/tc-avr.c 2011-03-24 12:39:25.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-03-24 12:38:45.000000000 -0500
|
||||
+++ gas/doc/c-avr.texi 2011-03-24 12:39:25.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,
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
diff -Naurp ./binutils/size.c ./binutils/size.c
|
||||
--- ./binutils/size.c 2011-05-03 11:50:59.000000000 -0500
|
||||
+++ ./binutils/size.c 2011-05-03 13:07:20.000000000 -0500
|
||||
@@ -287,6 +287,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-05-03 11:50:59.000000000 -0500
|
||||
+++ ./gas/config/tc-avr.c 2011-05-03 13:01:39.000000000 -0500
|
||||
@@ -145,6 +145,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-05-03 11:50:59.000000000 -0500
|
||||
+++ ./gas/doc/c-avr.texi 2011-05-03 13:08:36.000000000 -0500
|
||||
@@ -59,10 +59,9 @@ instructions (MCU types: attiny167, at90
|
||||
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,
|
||||
9
binutils-debian/bsdpatches/CVS/Entries
Normal file
9
binutils-debian/bsdpatches/CVS/Entries
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
/patch-aa/1.7/Fri Jul 30 07:07:13 2010//
|
||||
/patch-as-dwarf/1.1/Thu Mar 4 13:38:29 2010//
|
||||
/patch-as-dwarf-avrstudio/1.1/Thu Mar 4 13:38:29 2010//
|
||||
/patch-avr-size/1.1/Thu Mar 4 13:38:29 2010//
|
||||
/patch-coff-avr/1.8/Fri Jul 30 07:07:14 2010//
|
||||
/patch-newdevices/1.16/Fri Jul 30 07:07:14 2010//
|
||||
/patch-newsections/1.3/Fri Jul 30 07:07:14 2010//
|
||||
/patch-xmega/1.4/Fri Jul 30 07:07:14 2010//
|
||||
D
|
||||
1
binutils-debian/bsdpatches/CVS/Repository
Normal file
1
binutils-debian/bsdpatches/CVS/Repository
Normal file
|
|
@ -0,0 +1 @@
|
|||
ports/devel/avr-binutils/files
|
||||
1
binutils-debian/bsdpatches/CVS/Root
Normal file
1
binutils-debian/bsdpatches/CVS/Root
Normal file
|
|
@ -0,0 +1 @@
|
|||
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs/
|
||||
15
binutils-debian/bsdpatches/CVS/Template
Normal file
15
binutils-debian/bsdpatches/CVS/Template
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
PR:
|
||||
Submitted by:
|
||||
Reviewed by:
|
||||
Approved by:
|
||||
Obtained from:
|
||||
MFC after:
|
||||
CVS: ----------------------------------------------------------------------
|
||||
CVS: PR: Fill this in if a GNATS PR is affected by the change.
|
||||
CVS: Submitted by: Fill this in if someone else sent in the change.
|
||||
CVS: Reviewed by: Fill this in if someone else reviewed your modification.
|
||||
CVS: Approved by: Fill this in if you needed approval for this commit.
|
||||
CVS: Obtained from: Fill this in if the change is from third party software.
|
||||
CVS: MFC after: N [day[s]|week[s]|month[s]]
|
||||
CVS: Fill in to get MFC notification later. (days assumed unless specified)
|
||||
50
binutils-debian/bsdpatches/patch-aa
Normal file
50
binutils-debian/bsdpatches/patch-aa
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
--- 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
|
||||
10
binutils-debian/bsdpatches/patch-as-dwarf
Normal file
10
binutils-debian/bsdpatches/patch-as-dwarf
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
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
|
||||
27
binutils-debian/bsdpatches/patch-as-dwarf-avrstudio
Normal file
27
binutils-debian/bsdpatches/patch-as-dwarf-avrstudio
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
--- gas/dwarf2dbg.c.orig 2009-09-14 13:43:26.000000000 +0200
|
||||
+++ gas/dwarf2dbg.c 2010-03-04 11:13:52.000000000 +0100
|
||||
@@ -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
|
||||
out_debug_line(). */
|
||||
+#ifndef TC_AVR
|
||||
#define DWARF2_LINE_OPCODE_BASE 13
|
||||
-
|
||||
+#else
|
||||
+#define DWARF2_LINE_OPCODE_BASE 10
|
||||
+#endif
|
||||
#ifndef DWARF2_LINE_BASE
|
||||
/* Minimum line offset in a special line info. opcode. This value
|
||||
was chosen to give a reasonable range of values. */
|
||||
@@ -1439,9 +1442,11 @@
|
||||
out_byte (0); /* DW_LNS_set_basic_block */
|
||||
out_byte (0); /* DW_LNS_const_add_pc */
|
||||
out_byte (1); /* DW_LNS_fixed_advance_pc */
|
||||
+#ifndef TC_AVR
|
||||
out_byte (0); /* DW_LNS_set_prologue_end */
|
||||
out_byte (0); /* DW_LNS_set_epilogue_begin */
|
||||
out_byte (1); /* DW_LNS_set_isa */
|
||||
+#endif
|
||||
|
||||
out_file_list ();
|
||||
|
||||
513
binutils-debian/bsdpatches/patch-avr-size
Normal file
513
binutils-debian/bsdpatches/patch-avr-size
Normal file
|
|
@ -0,0 +1,513 @@
|
|||
AVR specific only
|
||||
===========================================================
|
||||
--- binutils/size.c 2007-08-06 13:56:14.000000000 -0600
|
||||
+++ binutils/size.c 2007-09-13 09:13:10.281250000 -0600
|
||||
@@ -36,10 +36,31 @@
|
||||
#include "getopt.h"
|
||||
#include "bucomm.h"
|
||||
|
||||
-#ifndef BSD_DEFAULT
|
||||
-#define BSD_DEFAULT 1
|
||||
+typedef enum
|
||||
+{
|
||||
+ format_sysv = 0,
|
||||
+ format_bsd = 1,
|
||||
+ format_avr = 2,
|
||||
+} format_type_t;
|
||||
+
|
||||
+
|
||||
+/* Set the default format. */
|
||||
+#define FORMAT_DEFAULT_SYSV 0
|
||||
+#define FORMAT_DEFAULT_BSD 1
|
||||
+#define FORMAT_DEFAULT_AVR 0
|
||||
+
|
||||
+#if FORMAT_DEFAULT_SYSV
|
||||
+ #define FORMAT_DEFAULT format_sysv
|
||||
+ #define FORMAT_NAME "sysv"
|
||||
+#elif FORMAT_DEFAULT_BSD
|
||||
+ #define FORMAT_DEFAULT format_bsd
|
||||
+ #define FORMAT_NAME "berkeley"
|
||||
+#elif FORMAT_DEFAULT_AVR
|
||||
+ #define FORMAT_DEFAULT format_avr
|
||||
+ #define FORMAT_NAME "avr"
|
||||
#endif
|
||||
|
||||
+
|
||||
/* Program options. */
|
||||
|
||||
static enum
|
||||
@@ -48,9 +69,8 @@ static enum
|
||||
}
|
||||
radix = decimal;
|
||||
|
||||
-/* 0 means use AT&T-style output. */
|
||||
-static int berkeley_format = BSD_DEFAULT;
|
||||
|
||||
+format_type_t format = FORMAT_DEFAULT;
|
||||
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;
|
||||
/* Program exit status. */
|
||||
static int return_code = 0;
|
||||
|
||||
+
|
||||
+/* AVR Size specific stuff */
|
||||
+
|
||||
+#define AVR64 64UL
|
||||
+#define AVR128 128UL
|
||||
+#define AVR256 256UL
|
||||
+#define AVR512 512UL
|
||||
+#define AVR1K 1024UL
|
||||
+#define AVR2K 2048UL
|
||||
+#define AVR4K 4096UL
|
||||
+#define AVR8K 8192UL
|
||||
+#define AVR16K 16384UL
|
||||
+#define AVR20K 20480UL
|
||||
+#define AVR24K 24576UL
|
||||
+#define AVR32K 32768UL
|
||||
+#define AVR36K 36864UL
|
||||
+#define AVR40K 40960UL
|
||||
+#define AVR64K 65536UL
|
||||
+#define AVR68K 69632UL
|
||||
+#define AVR128K 131072UL
|
||||
+#define AVR136K 139264UL
|
||||
+#define AVR200K 204800UL
|
||||
+#define AVR256K 262144UL
|
||||
+#define AVR264K 270336UL
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ char *name;
|
||||
+ long flash;
|
||||
+ long ram;
|
||||
+ long eeprom;
|
||||
+} avr_device_t;
|
||||
+
|
||||
+avr_device_t avr[] =
|
||||
+{
|
||||
+ {"atxmega256a3", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256d3", AVR264K, AVR16K, AVR4K},
|
||||
+
|
||||
+ {"atmega2560", AVR256K, AVR8K, AVR4K},
|
||||
+ {"atmega2561", AVR256K, AVR8K, AVR4K},
|
||||
+
|
||||
+ {"atxmega192a3", AVR200K, AVR16K, AVR2K},
|
||||
+ {"atxmega192d3", AVR200K, AVR16K, AVR2K},
|
||||
+
|
||||
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
|
||||
+
|
||||
+ {"at43usb320", AVR128K, 608UL, 0UL},
|
||||
+ {"at90can128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"at90usb1286", AVR128K, AVR8K, AVR4K},
|
||||
+ {"at90usb1287", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"atmega1280", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1281", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1284p", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega128rfa1", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega103", AVR128K, 4000UL, AVR4K},
|
||||
+
|
||||
+ {"atxmega64a1", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64a3", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"at90can64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90scr100", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega640", AVR64K, AVR8K, AVR4K},
|
||||
+ {"atmega644", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644pa", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64c1", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64hve", AVR64K, AVR4K, AVR1K},
|
||||
+ {"atmega64m1", AVR64K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"atmega406", AVR40K, AVR2K, AVR512},
|
||||
+
|
||||
+ {"atxmega32a4", AVR36K, AVR4K, AVR1K},
|
||||
+ {"atxmega32d4", AVR36K, AVR4K, AVR1K},
|
||||
+
|
||||
+ {"at90can32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"at94k", AVR32K, AVR4K, 0UL},
|
||||
+ {"atmega32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega323", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324a", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324pa", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega328", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329pa", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32u2", AVR32K, AVR1K, AVR1K},
|
||||
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
|
||||
+ {"atmega32u6", AVR32K, 2560UL, AVR1K},
|
||||
+
|
||||
+ {"at43usb355", AVR24K, 1120UL, 0UL},
|
||||
+
|
||||
+ {"atxmega16a4", AVR20K, AVR2K, AVR1K},
|
||||
+ {"atxmega16d4", AVR20K, AVR2K, AVR1K},
|
||||
+
|
||||
+ {"at76c711", AVR16K, AVR2K, 0UL},
|
||||
+ {"at90pwm216", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90pwm316", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90usb162", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega161", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega162", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega163", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169pa", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16hva", AVR16K, 768UL, AVR256},
|
||||
+ {"atmega16hva2", AVR16K, AVR1K, AVR256},
|
||||
+ {"atmega16hvb", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16m1", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16u2", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16u4", AVR16K, 1280UL, AVR512},
|
||||
+ {"attiny167", AVR16K, AVR512, AVR512},
|
||||
+
|
||||
+ {"at90c8534", AVR8K, 352UL, AVR512},
|
||||
+ {"at90pwm1", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm81", AVR8K, AVR256, AVR512},
|
||||
+ {"at90s8515", AVR8K, AVR512, AVR512},
|
||||
+ {"at90s8535", AVR8K, AVR512, AVR512},
|
||||
+ {"at90usb82", AVR8K, AVR512, AVR512},
|
||||
+ {"ata6289", AVR8K, AVR512, 320UL},
|
||||
+ {"atmega8", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8515", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega8535", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega88", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88a", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88p", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88pa", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8hva", AVR8K, 768UL, AVR256},
|
||||
+ {"atmega8u2", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny84", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny85", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny861", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny861a", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny87", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny88", AVR8K, AVR512, AVR64},
|
||||
+
|
||||
+ {"at90s4414", AVR4K, 352UL, AVR256},
|
||||
+ {"at90s4433", AVR4K, AVR128, AVR256},
|
||||
+ {"at90s4434", AVR4K, 352UL, AVR256},
|
||||
+ {"atmega48", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48a", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48p", AVR4K, AVR512, AVR256},
|
||||
+ {"attiny4313", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny43u", AVR4K, AVR256, AVR64},
|
||||
+ {"attiny44", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny44a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny45", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny48", AVR4K, AVR256, AVR64},
|
||||
+
|
||||
+ {"at86rf401", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2313", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2323", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2333", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2343", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny20", AVR2K, AVR128, 0UL},
|
||||
+ {"attiny22", AVR2K, 224UL, AVR128},
|
||||
+ {"attiny2313", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny2313a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny25", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny26", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny28", AVR2K, 0UL, 0UL},
|
||||
+ {"attiny40", AVR2K, AVR256, 0UL},
|
||||
+
|
||||
+ {"at90s1200", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny9", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny10", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny11", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny12", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny13", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny13a", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny15", AVR1K, 0UL, AVR64},
|
||||
+
|
||||
+ {"attiny4", AVR512, 32UL, 0UL},
|
||||
+ {"attiny5", AVR512, 32UL, 0UL},
|
||||
+};
|
||||
+
|
||||
+static char *avrmcu = NULL;
|
||||
+
|
||||
+
|
||||
static char *target = NULL;
|
||||
|
||||
/* Forward declarations. */
|
||||
@@ -79,7 +329,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\
|
||||
- -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\
|
||||
+ -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\
|
||||
+ --mcu=<avrmcu> MCU name for AVR format only\n\
|
||||
-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)
|
||||
-h --help Display this information\n\
|
||||
-v --version Display the program's version\n\
|
||||
\n"),
|
||||
-#if BSD_DEFAULT
|
||||
- "berkeley"
|
||||
-#else
|
||||
- "sysv"
|
||||
-#endif
|
||||
+FORMAT_NAME
|
||||
);
|
||||
list_supported_targets (program_name, stream);
|
||||
if (REPORT_BUGS_TO[0] && status == 0)
|
||||
@@ -103,6 +351,7 @@ usage (FILE *stream, int status)
|
||||
#define OPTION_FORMAT (200)
|
||||
#define OPTION_RADIX (OPTION_FORMAT + 1)
|
||||
#define OPTION_TARGET (OPTION_RADIX + 1)
|
||||
+#define OPTION_MCU (OPTION_TARGET + 1)
|
||||
|
||||
static struct option long_options[] =
|
||||
{
|
||||
@@ -110,6 +360,7 @@ static struct option long_options[] =
|
||||
{"format", required_argument, 0, OPTION_FORMAT},
|
||||
{"radix", required_argument, 0, OPTION_RADIX},
|
||||
{"target", required_argument, 0, OPTION_TARGET},
|
||||
+ {"mcu", required_argument, 0, 203},
|
||||
{"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)
|
||||
bfd_init ();
|
||||
set_default_bfd_target ();
|
||||
|
||||
- while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options,
|
||||
+ while ((c = getopt_long (argc, argv, "ABCHhVvdfotx", long_options,
|
||||
(int *) 0)) != EOF)
|
||||
switch (c)
|
||||
{
|
||||
@@ -150,11 +401,15 @@ main (int argc, char **argv)
|
||||
{
|
||||
case 'B':
|
||||
case 'b':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
+ break;
|
||||
+ case 'A':
|
||||
+ case 'a':
|
||||
+ format = format_avr;
|
||||
break;
|
||||
default:
|
||||
non_fatal (_("invalid argument to --format: %s"), optarg);
|
||||
@@ -162,6 +416,10 @@ main (int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
|
||||
+ case OPTION_MCU:
|
||||
+ avrmcu = optarg;
|
||||
+ break;
|
||||
+
|
||||
case OPTION_TARGET:
|
||||
target = optarg;
|
||||
break;
|
||||
@@ -190,11 +449,14 @@ main (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
break;
|
||||
case 'B':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
+ case 'C':
|
||||
+ format = format_avr;
|
||||
+ break;
|
||||
case 'v':
|
||||
case 'V':
|
||||
show_version = 1;
|
||||
@@ -240,7 +501,7 @@ main (int argc, char **argv)
|
||||
for (; optind < argc;)
|
||||
display_file (argv[optind++]);
|
||||
|
||||
- if (show_totals && berkeley_format)
|
||||
+ if (show_totals && format == format_bsd)
|
||||
{
|
||||
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
|
||||
|
||||
@@ -599,13 +861,117 @@ print_sysv_format (bfd *file)
|
||||
printf ("\n\n");
|
||||
}
|
||||
|
||||
+
|
||||
+static avr_device_t *
|
||||
+avr_find_device (void)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ if (avrmcu != NULL)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++)
|
||||
+ {
|
||||
+ if (strcmp(avr[i].name, avrmcu) == 0)
|
||||
+ {
|
||||
+ /* Match found */
|
||||
+ return (&avr[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+print_avr_format (bfd *file)
|
||||
+{
|
||||
+ char *avr_name = "Unknown";
|
||||
+ int flashmax = 0;
|
||||
+ int rammax = 0;
|
||||
+ int eeprommax = 0;
|
||||
+ asection *section;
|
||||
+ bfd_size_type datasize = 0;
|
||||
+ bfd_size_type textsize = 0;
|
||||
+ bfd_size_type bsssize = 0;
|
||||
+ bfd_size_type bootloadersize = 0;
|
||||
+ bfd_size_type noinitsize = 0;
|
||||
+ bfd_size_type eepromsize = 0;
|
||||
+
|
||||
+ avr_device_t *avrdevice = avr_find_device();
|
||||
+ if (avrdevice != NULL)
|
||||
+ {
|
||||
+ avr_name = avrdevice->name;
|
||||
+ flashmax = avrdevice->flash;
|
||||
+ rammax = avrdevice->ram;
|
||||
+ eeprommax = avrdevice->eeprom;
|
||||
+ }
|
||||
+
|
||||
+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL)
|
||||
+ datasize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL)
|
||||
+ textsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL)
|
||||
+ bsssize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL)
|
||||
+ bootloadersize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL)
|
||||
+ noinitsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL)
|
||||
+ eepromsize = bfd_section_size (file, section);
|
||||
+
|
||||
+ bfd_size_type text = textsize + datasize + bootloadersize;
|
||||
+ bfd_size_type data = datasize + bsssize + noinitsize;
|
||||
+ bfd_size_type eeprom = eepromsize;
|
||||
+
|
||||
+ printf ("AVR Memory Usage\n"
|
||||
+ "----------------\n"
|
||||
+ "Device: %s\n\n", avr_name);
|
||||
+
|
||||
+ /* Text size */
|
||||
+ printf ("Program:%8ld bytes", text);
|
||||
+ if (flashmax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.text + .data + .bootloader)\n\n");
|
||||
+
|
||||
+ /* Data size */
|
||||
+ printf ("Data: %8ld bytes", data);
|
||||
+ if (rammax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)data / rammax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.data + .bss + .noinit)\n\n");
|
||||
+
|
||||
+ /* EEPROM size */
|
||||
+ if (eeprom > 0)
|
||||
+ {
|
||||
+ printf ("EEPROM: %8ld bytes", eeprom);
|
||||
+ if (eeprommax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.eeprom)\n\n");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void
|
||||
print_sizes (bfd *file)
|
||||
{
|
||||
if (show_common)
|
||||
calculate_common_size (file);
|
||||
- if (berkeley_format)
|
||||
- print_berkeley_format (file);
|
||||
- else
|
||||
- print_sysv_format (file);
|
||||
+ switch (format)
|
||||
+ {
|
||||
+ case format_sysv:
|
||||
+ print_sysv_format (file);
|
||||
+ break;
|
||||
+ case format_bsd:
|
||||
+ print_berkeley_format (file);
|
||||
+ break;
|
||||
+ case format_avr:
|
||||
+ default:
|
||||
+ print_avr_format (file);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
5505
binutils-debian/bsdpatches/patch-coff-avr
Normal file
5505
binutils-debian/bsdpatches/patch-coff-avr
Normal file
File diff suppressed because it is too large
Load diff
135
binutils-debian/bsdpatches/patch-newdevices
Normal file
135
binutils-debian/bsdpatches/patch-newdevices
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
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 @@
|
||||
{"atmega32u2", 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},
|
||||
{"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
+ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
+ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"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 @@
|
||||
{"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega161", AVR_ISA_M161, bfd_mach_avr5},
|
||||
{"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega163", AVR_ISA_M161, bfd_mach_avr5},
|
||||
+ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega165", 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},
|
||||
{"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega169", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega169p", 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},
|
||||
{"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega3250", 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},
|
||||
{"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega3290", 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},
|
||||
{"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"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},
|
||||
{"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 @@
|
||||
|
||||
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,
|
||||
-attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
|
||||
-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).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: at43usb355, at76c711).
|
||||
@@ -58,20 +59,25 @@
|
||||
atmega16u2, atmega32u2).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
-memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
|
||||
-atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
|
||||
-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).
|
||||
|
||||
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, 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).
|
||||
+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).
|
||||
|
||||
Instruction set avr51 is for the enhanced AVR core with exactly 128K program
|
||||
memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
|
||||
38
binutils-debian/bsdpatches/patch-newsections
Normal file
38
binutils-debian/bsdpatches/patch-newsections
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
diff -ruw 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
|
||||
@@ -7,6 +7,9 @@
|
||||
text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
|
||||
data (rw!x) : ORIGIN = $DATA_ORIGIN, 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 @@
|
||||
${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) }
|
||||
663
binutils-debian/bsdpatches/patch-xmega
Normal file
663
binutils-debian/bsdpatches/patch-xmega
Normal file
|
|
@ -0,0 +1,663 @@
|
|||
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 @@
|
||||
.#define bfd_mach_avr5 5
|
||||
.#define bfd_mach_avr51 51
|
||||
.#define bfd_mach_avr6 6
|
||||
+.#define bfd_mach_avrxmega1 101
|
||||
+.#define bfd_mach_avrxmega2 102
|
||||
+.#define bfd_mach_avrxmega3 103
|
||||
+.#define bfd_mach_avrxmega4 104
|
||||
+.#define bfd_mach_avrxmega5 105
|
||||
+.#define bfd_mach_avrxmega6 106
|
||||
+.#define bfd_mach_avrxmega7 107
|
||||
. 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 @@
|
||||
#define bfd_mach_avr5 5
|
||||
#define bfd_mach_avr51 51
|
||||
#define bfd_mach_avr6 6
|
||||
+#define bfd_mach_avrxmega1 101
|
||||
+#define bfd_mach_avrxmega2 102
|
||||
+#define bfd_mach_avrxmega3 103
|
||||
+#define bfd_mach_avrxmega4 104
|
||||
+#define bfd_mach_avrxmega5 105
|
||||
+#define bfd_mach_avrxmega6 106
|
||||
+#define bfd_mach_avrxmega7 107
|
||||
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 @@
|
||||
N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
|
||||
|
||||
/* 3-Byte PC. */
|
||||
- N (22, bfd_mach_avr6, "avr:6", FALSE, NULL)
|
||||
+ N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
|
||||
+
|
||||
+ /* Xmega 1 */
|
||||
+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
|
||||
+
|
||||
+ /* Xmega 2 */
|
||||
+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
|
||||
+
|
||||
+ /* Xmega 3 */
|
||||
+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
|
||||
+
|
||||
+ /* Xmega 4 */
|
||||
+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
|
||||
+
|
||||
+ /* Xmega 5 */
|
||||
+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
|
||||
+
|
||||
+ /* Xmega 6 */
|
||||
+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
|
||||
+
|
||||
+ /* Xmega 7 */
|
||||
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
|
||||
+
|
||||
};
|
||||
|
||||
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 @@
|
||||
case bfd_mach_avr6:
|
||||
val = E_AVR_MACH_AVR6;
|
||||
break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega1:
|
||||
+ val = E_AVR_MACH_XMEGA1;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega2:
|
||||
+ val = E_AVR_MACH_XMEGA2;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega3:
|
||||
+ val = E_AVR_MACH_XMEGA3;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega4:
|
||||
+ val = E_AVR_MACH_XMEGA4;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega5:
|
||||
+ val = E_AVR_MACH_XMEGA5;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega6:
|
||||
+ val = E_AVR_MACH_XMEGA6;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega7:
|
||||
+ val = E_AVR_MACH_XMEGA7;
|
||||
+ break;
|
||||
}
|
||||
|
||||
elf_elfheader (abfd)->e_machine = EM_AVR;
|
||||
@@ -1390,6 +1418,34 @@
|
||||
case E_AVR_MACH_AVR6:
|
||||
e_set = bfd_mach_avr6;
|
||||
break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA1:
|
||||
+ e_set = bfd_mach_avrxmega1;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA2:
|
||||
+ e_set = bfd_mach_avrxmega2;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA3:
|
||||
+ e_set = bfd_mach_avrxmega3;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA4:
|
||||
+ e_set = bfd_mach_avrxmega4;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA5:
|
||||
+ e_set = bfd_mach_avrxmega5;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA6:
|
||||
+ e_set = bfd_mach_avrxmega6;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA7:
|
||||
+ e_set = bfd_mach_avrxmega7;
|
||||
+ 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
|
||||
@@ -27,20 +27,21 @@
|
||||
|
||||
struct avr_opcodes_s
|
||||
{
|
||||
- char * name;
|
||||
- char * constraints;
|
||||
- int insn_size; /* In words. */
|
||||
- int isa;
|
||||
+ char *name;
|
||||
+ char *constraints;
|
||||
+ char *opcode;
|
||||
+ int insn_size; /* In words. */
|
||||
+ int isa;
|
||||
unsigned int bin_opcode;
|
||||
};
|
||||
|
||||
#define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
|
||||
-{#NAME, CONSTR, SIZE, ISA, BIN},
|
||||
+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
|
||||
|
||||
struct avr_opcodes_s avr_opcodes[] =
|
||||
{
|
||||
#include "opcode/avr.h"
|
||||
- {NULL, NULL, 0, 0, 0}
|
||||
+ {NULL, NULL, NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
const char comment_chars[] = ";";
|
||||
@@ -79,6 +80,13 @@
|
||||
{"avr5", AVR_ISA_AVR51, bfd_mach_avr5},
|
||||
{"avr51", AVR_ISA_AVR51, bfd_mach_avr51},
|
||||
{"avr6", AVR_ISA_AVR6, bfd_mach_avr6},
|
||||
+ {"avrxmega1", AVR_ISA_XMEGA, bfd_mach_avrxmega1},
|
||||
+ {"avrxmega2", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
|
||||
+ {"avrxmega3", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
|
||||
+ {"avrxmega4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
|
||||
+ {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{"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},
|
||||
{"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},
|
||||
+ {"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},
|
||||
+ {"atxmega128a3", 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},
|
||||
+ {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
@@ -418,6 +441,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"
|
||||
+ " avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\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 @@
|
||||
if (*str == '+')
|
||||
{
|
||||
++str;
|
||||
- op_mask |= 1;
|
||||
+ char *s;
|
||||
+ for (s = opcode->opcode; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ op_mask |= (1 << (15 - (s - opcode->opcode)));
|
||||
+ }
|
||||
}
|
||||
|
||||
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
|
||||
@@ -962,6 +995,16 @@
|
||||
}
|
||||
break;
|
||||
|
||||
+ case 'E':
|
||||
+ {
|
||||
+ unsigned int x;
|
||||
+
|
||||
+ x = avr_get_constant (str, 15);
|
||||
+ str = input_line_pointer;
|
||||
+ op_mask |= (x << 4);
|
||||
+ }
|
||||
+ 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 @@
|
||||
Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
|
||||
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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
@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
|
||||
@@ -40,6 +40,13 @@
|
||||
#define E_AVR_MACH_AVR5 5
|
||||
#define E_AVR_MACH_AVR51 51
|
||||
#define E_AVR_MACH_AVR6 6
|
||||
+#define E_AVR_MACH_XMEGA1 101
|
||||
+#define E_AVR_MACH_XMEGA2 102
|
||||
+#define E_AVR_MACH_XMEGA3 103
|
||||
+#define E_AVR_MACH_XMEGA4 104
|
||||
+#define E_AVR_MACH_XMEGA5 105
|
||||
+#define E_AVR_MACH_XMEGA6 106
|
||||
+#define E_AVR_MACH_XMEGA7 107
|
||||
|
||||
/* 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 @@
|
||||
#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_SPMX 0x2000 /* device has SPM Z[+] */
|
||||
+#define AVR_ISA_DES 0x4000 /* device has DES */
|
||||
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
@@ -48,6 +50,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_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
|
||||
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
|
||||
|
||||
#define AVR_ISA_AVR1 AVR_ISA_TINY1
|
||||
#define AVR_ISA_AVR2 AVR_ISA_2xxx
|
||||
@@ -108,6 +112,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)
|
||||
+ E - immediate value from 0 to 15, shifted left by 4 (des)
|
||||
? - 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 @@
|
||||
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 (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
xscale-*-elf) targ_emul=armelf
|
||||
;;
|
||||
avr-*-*) targ_emul=avr2
|
||||
- targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6"
|
||||
+ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
|
||||
;;
|
||||
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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:101
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:102
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:103
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:104
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:105
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:106
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:107
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+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 @@
|
||||
|
||||
gld${EMULATION_NAME}_before_allocation ();
|
||||
|
||||
- /* We only need stubs for the avr6 family. */
|
||||
- if (strcmp ("${EMULATION_NAME}","avr6"))
|
||||
+ /* We only need stubs for avr6, avrxmega6, and avrxmega7. */
|
||||
+ if (strcmp ("${EMULATION_NAME}","avr6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega7") )
|
||||
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 @@
|
||||
|
||||
static int
|
||||
avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint,
|
||||
- char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
+ char *opcode_str, char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
{
|
||||
int ok = 1;
|
||||
*sym = 0;
|
||||
@@ -118,8 +118,18 @@
|
||||
|
||||
case 'z':
|
||||
*buf++ = 'Z';
|
||||
- if (insn & 0x1)
|
||||
- *buf++ = '+';
|
||||
+
|
||||
+ /* Check for post-increment. */
|
||||
+ char *s;
|
||||
+ for (s = opcode_str; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ {
|
||||
+ *buf++ = '+';
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
*buf = '\0';
|
||||
if (AVR_UNDEF_P (insn))
|
||||
sprintf (comment, _("undefined"));
|
||||
@@ -226,6 +236,10 @@
|
||||
sprintf (comment, "%d", x);
|
||||
}
|
||||
break;
|
||||
+
|
||||
+ case 'E':
|
||||
+ sprintf (buf, "%d", (insn >> 4) & 15);
|
||||
+ break;
|
||||
|
||||
case '?':
|
||||
*buf = '\0';
|
||||
@@ -331,7 +345,8 @@
|
||||
|
||||
if (opcode->name)
|
||||
{
|
||||
- char *op = opcode->constraints;
|
||||
+ char *constraints = opcode->constraints;
|
||||
+ char *opcode_str = opcode->opcode;
|
||||
|
||||
insn2 = 0;
|
||||
ok = 1;
|
||||
@@ -342,14 +357,14 @@
|
||||
cmd_len = 4;
|
||||
}
|
||||
|
||||
- if (*op && *op != '?')
|
||||
+ if (*constraints && *constraints != '?')
|
||||
{
|
||||
- int regs = REGISTER_P (*op);
|
||||
+ int regs = REGISTER_P (*constraints);
|
||||
|
||||
- ok = avr_operand (insn, insn2, addr, *op, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
+ ok = avr_operand (insn, insn2, addr, *constraints, opcode_str, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
|
||||
- if (ok && *(++op) == ',')
|
||||
- ok = avr_operand (insn, insn2, addr, *(++op), op2,
|
||||
+ if (ok && *(++constraints) == ',')
|
||||
+ ok = avr_operand (insn, insn2, addr, *(++constraints), opcode_str, op2,
|
||||
*comment1 ? comment2 : comment1, regs, &sym_op2, &sym_addr2);
|
||||
}
|
||||
}
|
||||
341
binutils-debian/changelog
Normal file
341
binutils-debian/changelog
Normal file
|
|
@ -0,0 +1,341 @@
|
|||
binutils-avr (2.20.1-2) unstable; urgency=low
|
||||
|
||||
* Include our own copy of the binutils 2.20.1 source since binutils-
|
||||
source now provides version 2.21 and version 2.20.1 is the latest with
|
||||
upstream avr support (closes: #618657).
|
||||
* Added -Wno-error=unused-but-set-variable and -Wno-error=unused-but-
|
||||
set-parameter flags.
|
||||
* Replaced the patch-set with the patch-set provided by Atmel at
|
||||
http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/
|
||||
30-binutils-2.20.1-avr-size.patch
|
||||
31-binutils-2.20.1-avr-coff.patch
|
||||
32-binutils-2.20.1-new-sections.patch
|
||||
34-binutils-2.20.1-as-dwarf.patch
|
||||
35-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch
|
||||
36-binutils-2.20.1-assembler-options.patch
|
||||
50-binutils-2.20.1-xmega.patch
|
||||
51-binutils-2.20.1-new-devices.patch
|
||||
52-binutils-2.20.1-avrtiny10.patch
|
||||
53-binutils-2.20.1-xmega128a1u-64a1u.patch
|
||||
54-binutils-2.20.1-atxmega16x1-32x1.patch
|
||||
55-binutils-2.20.1-atxmega128b1.patch
|
||||
56-binutils-2.20.1-atxmega256a3bu.patch
|
||||
57-binutils-2.20.1-at90pwm161.patch
|
||||
58-binutils-2.20.1-atmega16hvb-32hvb.patch
|
||||
59-binutils-2.20.1-atmega32_5_50_90_pa.patch
|
||||
60-binutils-2.20.1-bug13789.patch
|
||||
62-binutils-2.20.1-attiny1634.patch
|
||||
64-binutils-2.20.1-atmega48pa.patch
|
||||
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 09 Jul 2011 14:01:29 +0200
|
||||
|
||||
binutils-avr (2.20.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream relese
|
||||
* Removed build-depends on dbs (closes: #576048)
|
||||
* Updated the patch-set to use patches from
|
||||
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/avr-binutils/:
|
||||
patch-avr-size
|
||||
patch-coff-avr
|
||||
patch-newsections
|
||||
patch-as-dwarf
|
||||
patch-as-dwarf-avrstudio
|
||||
patch-xmega
|
||||
patch-newdevices
|
||||
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 30 Jul 2010 09:20:02 +0200
|
||||
|
||||
binutils-avr (2.20-3) unstable; urgency=low
|
||||
|
||||
* Dale Whitfield <dale@4drealtime.co.za> collected a new set of
|
||||
patches from Eric Weddington (closes: #482356):
|
||||
30-binutils-2.20-avr-size.patch
|
||||
31-binutils-2.20-avr-coff.patch
|
||||
32-binutils-2.20-new-sections.patch
|
||||
34-binutils-2.20-as-dwarf.patch
|
||||
35-binutils-2.20-dwarf2-AVRStudio-workaround.patch
|
||||
50-binutils-2.20-xmega.patch
|
||||
51-binutils-2.20-new-devices.patch
|
||||
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 20 Feb 2010 09:59:17 +0100
|
||||
|
||||
binutils-avr (2.20-2) unstable; urgency=low
|
||||
|
||||
* Removed /usr/share/info since these docs are provided in binutils-
|
||||
doc and gnu-standards (closes: #553541, #553700)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 04 Nov 2009 18:53:17 +0100
|
||||
|
||||
binutils-avr (2.20-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #518742, #362270)
|
||||
* Applied newsections (rev 1.2) and xmega (rev 1.3) patches from
|
||||
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/avr-binutils/
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 31 Oct 2009 10:37:05 +0100
|
||||
|
||||
binutils-avr (2.19-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #518742)
|
||||
* Applied 3 of the patches from revision 63 of svn repository
|
||||
https://winavr.svn.sourceforge.net/svnroot/winavr/trunk/patches/binutils/2.19:
|
||||
30-binutils-2.19-avr-size.patch
|
||||
50-binutils-2.19-xmega.patch
|
||||
51-binutils-2.19-xmega2.patch
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 04 Oct 2009 09:52:54 +0200
|
||||
|
||||
binutils-avr (2.18-4) unstable; urgency=low
|
||||
|
||||
* Revered to an unpatched 2.18 release
|
||||
* Applied WinAVR-20080610 from patches/binutils/2.18 in cvs server
|
||||
anonymous@winavr.cvs.sourceforge.net:/cvsroot/winavr with tag
|
||||
WinAVR-20080610:
|
||||
00-binutils-2.18-version-WinAVR.patch
|
||||
30-binutils-2.18-avr-size.patch
|
||||
31-binutils-2.18-avr-coff.patch
|
||||
32-binutils-2.18-new-sections.patch
|
||||
33-binutils-2.18-data-origin.patch
|
||||
40-binutils-2.18-bug-5523.patch
|
||||
41-binutils-2.18-objdump-mixed.patch
|
||||
50-0-binutils-2.18-at90pwmx16.patch
|
||||
50-1-binutils-2.18-attiny43u.patch
|
||||
50-2-binutils-2.18-attiny48.patch
|
||||
50-3-binutils-2.18-at90pwm2b3b.patch
|
||||
50-4-binutils-2.18-remove-devices.patch
|
||||
50-5-binutils-2.18-atmega48p-88p-168p-328p.patch
|
||||
50-6-binutils-2.18-attiny88.patch
|
||||
50-7-binutils-2.18-atmega1284p.patch
|
||||
50-9-binutils-2.18-avr35.patch
|
||||
51-binutils-2.18-at86rf401.patch
|
||||
52-binutils-2.18-xmega.patch
|
||||
53-binutils-2.18-atmega32m1.patch
|
||||
54-binutils-2.18-atmega32c1.patch
|
||||
55-binutils-2.18-atmega32u4.patch
|
||||
56-binutils-2.18-attiny167.patch
|
||||
60-binutils-2.18-bug-2626.patch
|
||||
70-binutils-2.18-bug-6016.patch
|
||||
* Moved /usr/avr to /usr/lib/avr
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 02 Jul 2008 10:52:07 +0200
|
||||
|
||||
binutils-avr (2.18-3) unstable; urgency=low
|
||||
|
||||
* Upgraded newdevices patch to rev 1.13
|
||||
* Applied newsections patch rev 1.1 from
|
||||
http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-
|
||||
binutils/files/patch-newsections
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 08 Feb 2008 09:45:51 +0100
|
||||
|
||||
binutils-avr (2.18-2) unstable; urgency=low
|
||||
|
||||
* Filename of source tar-ball nolonger hardcoded (closes: #460362)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 05 Feb 2008 20:35:29 +0100
|
||||
|
||||
binutils-avr (2.18-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #454687)
|
||||
* Now uses src from binutils-source (closes: #413215)
|
||||
* Updated newdevices patch to rev 1.12
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 15 Dec 2007 10:45:05 +0100
|
||||
|
||||
binutils-avr (2.17-2) unstable; urgency=low
|
||||
|
||||
* Updated newdevices patch to rev 1.11
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 14 Aug 2007 17:36:23 +0200
|
||||
|
||||
binutils-avr (2.17) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
* Applied binutils-patch-newdevices.diff from FreeBSD
|
||||
(http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-
|
||||
binutils/files/)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 22 Apr 2007 10:51:18 +0200
|
||||
|
||||
binutils-avr (2.16.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 4 Feb 2006 16:20:51 +0100
|
||||
|
||||
binutils-avr (2.15-3) unstable; urgency=low
|
||||
|
||||
* Added patch from Theodore A. Roth that adds support for atmega48,
|
||||
atmega88, atmega168, attiny13, attiny2313 and at90can128.
|
||||
* Added patch from Tom Parker <palfrey@tevp.net> that adds --allow-
|
||||
dollars switch to as which allows dollars in function names
|
||||
(closes: #247346).
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 27 Feb 2005 11:43:00 +0100
|
||||
|
||||
binutils-avr (2.15-1) unstable; urgency=low
|
||||
|
||||
* Upstream release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 11 Aug 2004 20:18:26 +0200
|
||||
|
||||
binutils-avr (2.14-1) unstable; urgency=low
|
||||
|
||||
* Upstream upgrade
|
||||
* Readded Build-Depends on toolchain-source (closes: #199023)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 29 Mar 2004 14:15:56 +0200
|
||||
|
||||
binutils-avr (2.13.90.1.030512) unstable; urgency=low
|
||||
|
||||
* Now contains the src tar ball
|
||||
* Uses packaged dbs
|
||||
* Updated to 030512 snapshot
|
||||
* No longer Build-Depends on toolchain-source (closes: #187683)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 25 Jun 2003 20:58:07 +0200
|
||||
|
||||
binutils-avr (2.13.90.0.18-2) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.2-7
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 11 Mar 2003 15:50:57 +0100
|
||||
|
||||
binutils-avr (2.13.90.0.18-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.13.90.0.18)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 26 Feb 2003 12:23:09 +0100
|
||||
|
||||
binutils-avr (2.13.90.0.10-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.13.90.0.10)
|
||||
* Added patching support
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 7 Nov 2002 22:42:16 +0100
|
||||
|
||||
binutils-avr (2.13.90.0.4-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.13.90.0.4)
|
||||
* Relaxed dependency on native pkg and added README.debian describing
|
||||
the case
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 16 Oct 2002 13:36:55 +0200
|
||||
|
||||
binutils-avr (2.13-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.13)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 18 Aug 2002 16:01:53 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.7-4) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.1.1-1
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 2 Aug 2002 16:06:26 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.7-3) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.1-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 10 Jul 2002 13:28:07 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.7-2) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.1-2
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 6 Jul 2002 00:12:28 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.7-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.12.90.0.7)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 31 May 2002 13:44:36 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.1-4) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-5
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 2 May 2002 15:46:41 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.1-3) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-4
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 8 Apr 2002 11:24:53 +0200
|
||||
|
||||
binutils-avr (2.12.90.0.1-2) unstable; urgency=low
|
||||
|
||||
* /usr/include/dis-asm.h removed from cross packages
|
||||
* Recompiled with toolchain-source 3.0.4-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 30 Mar 2002 12:16:20 +0100
|
||||
|
||||
binutils-avr (2.12.90.0.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (2.12.90.0.1)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 30 Mar 2002 11:31:19 +0100
|
||||
|
||||
binutils-avr (2.11.92.0.12.3-4) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-1
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 11 Mar 2002 15:27:18 +0100
|
||||
|
||||
binutils-avr (2.11.92.0.12.3-3) unstable; urgency=low
|
||||
|
||||
* Added Build-Depends: bzip2 (closes: #129652)
|
||||
* Renamed avr-linux to avr as we dont run linux on target
|
||||
* Recompiled with toolchain-source 3.0.3-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 9 Feb 2002 15:42:19 +0100
|
||||
|
||||
binutils-avr (2.11.92.0.12.3-2) unstable; urgency=low
|
||||
|
||||
* Now uses tar tjf (Bug #128550)
|
||||
* No longer includes conflicting files with binutils, but depends on
|
||||
it (Bug #128550)
|
||||
* Recompiled with toolchain-source 3.0.3-2
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 10 Jan 2002 23:34:54 +0100
|
||||
|
||||
binutils-avr (2.11.92.0.12.3-1) unstable; urgency=low
|
||||
|
||||
* Updated to upstream version 2.11.92.0.12.3
|
||||
* Binutils version numer nolonger hardcoded in rules
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 7 Jan 2002 15:12:33 +0100
|
||||
|
||||
binutils-avr (2.11.90.0.7-5) unstable; urgency=low
|
||||
|
||||
* Changed Amtel into Atmel (Bug #114521)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 11 Nov 2001 12:48:06 +0100
|
||||
|
||||
binutils-avr (2.11.90.0.7-4) unstable; urgency=low
|
||||
|
||||
* Updated build-depend on toolchain-source (Bug #109205)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 19 Aug 2001 22:15:51 +0200
|
||||
|
||||
binutils-avr (2.11.90.0.7-3) unstable; urgency=low
|
||||
|
||||
* No longer uses apt-get but build-depends on toolchain-source (Bug
|
||||
#106148)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 26 Jul 2001 11:13:44 +0200
|
||||
|
||||
binutils-avr (2.11.90.0.7-2) unstable; urgency=low
|
||||
|
||||
* Initial Release as a source pakcage of it's own. Previos
|
||||
releases was as part of the binutils package.
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 9 Jul 2001 22:21:33 +0200
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
||||
1
binutils-debian/compat
Normal file
1
binutils-debian/compat
Normal file
|
|
@ -0,0 +1 @@
|
|||
5
|
||||
18
binutils-debian/control
Normal file
18
binutils-debian/control
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
Source: binutils-avr
|
||||
Section: devel
|
||||
Priority: extra
|
||||
Maintainer: Hakan Ardo <hakan@debian.org>
|
||||
Standards-Version: 3.0.1.1
|
||||
Build-Depends: autoconf (>= 2.13), bison, flex, gettext, texinfo, binutils (>= 2.9.5.0.12), gcc (>= 2.95.2), debhelper (>= 5), tar (>= 1.13.18), bzip2, findutils(>=4.2.31)
|
||||
|
||||
Package: binutils-avr
|
||||
Section: devel
|
||||
Architecture: any
|
||||
Priority: extra
|
||||
Depends: ${shlibs:Depends}
|
||||
Suggests: binutils (>= ${Source-Version})
|
||||
Description: Binary utilities supporting Atmel's AVR targets
|
||||
The programs in this package are used to manipulate binary and object
|
||||
files that may have been created for Atmel's AVR architecture. This package
|
||||
is primarily for AVR developers and cross-compilers and is not needed
|
||||
by normal users or developers.
|
||||
11
binutils-debian/copyright
Normal file
11
binutils-debian/copyright
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
This is a debian pakcage of the GNU assembler, linker, and binary
|
||||
utilities compiled for cross develoopment for the avr processor.
|
||||
It is created from a cvs snapshot downloaded from:
|
||||
|
||||
ftp://ftp.funet.fi/pub/gnu/prep/binutils/
|
||||
|
||||
|
||||
Copyright: GNU General Public License
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
93
binutils-debian/dbs-build.mk
Executable file
93
binutils-debian/dbs-build.mk
Executable file
|
|
@ -0,0 +1,93 @@
|
|||
#!/usr/bin/make -f
|
||||
# Separate tarball/patch build system by Adam Heath <doogie@debian.org>
|
||||
# Modified by Ben Collins <bcollins@debian.org>
|
||||
#
|
||||
# Usage in debian/rules - see dbs(7) man page for the full description
|
||||
#
|
||||
SOURCE_DIR = build-tree
|
||||
STAMP_DIR = stampdir
|
||||
## PATCH_DIR = debian/patches # set this in debian/vars
|
||||
## SRC_TAR_DIR = .
|
||||
|
||||
# include debian/vars if it exists
|
||||
# this allows to override the above variables
|
||||
ifneq (,$(wildcard debian/vars))
|
||||
include debian/vars
|
||||
debian_vars = debian/vars
|
||||
else
|
||||
debian_vars =
|
||||
endif
|
||||
|
||||
SHELL = /bin/bash -e
|
||||
DBS_SCRIPT_DIR = /usr/share/dbs
|
||||
DBS_SPLIT = $(DBS_SCRIPT_DIR)/dbs_split
|
||||
DBS_FILE2CAT = $(DBS_SCRIPT_DIR)/internal/file2cat
|
||||
DBS_LIB = $(DBS_SCRIPT_DIR)/internal/lib
|
||||
DBS_VARSBUILD = $(DBS_SCRIPT_DIR)/internal/vars.build
|
||||
|
||||
|
||||
unexport CDPATH ENV
|
||||
patched = $(STAMP_DIR)/patchapply
|
||||
unpacked = $(STAMP_DIR)/source.unpack
|
||||
created = $(STAMP_DIR)/source.created
|
||||
sh_vars = $(STAMP_DIR)/vars.sh
|
||||
DBS_LIB += "SOURCE_DIR=\"$(SOURCE_DIR)\""
|
||||
DBS_LIB += "STAMP_DIR=\"$(STAMP_DIR)\""
|
||||
DBS_LIB += "VARS_FILE=\"$(sh_vars)\""
|
||||
DBS_LIB += "STRIP_LEVEL=0"
|
||||
|
||||
ifdef TAR_DIR
|
||||
BUILD_TREE = $(SOURCE_DIR)/$(TAR_DIR)
|
||||
DBS_LIB += "TAR_DIR=\"$(TAR_DIR)\""
|
||||
else
|
||||
BUILD_TREE = $(SOURCE_DIR)
|
||||
endif
|
||||
|
||||
# for backward compatibility (used by pgp4pine)
|
||||
ifeq (,$(SCRIPT_DIR))
|
||||
SCRIPT_DIR = $(DBS_SCRIPT_DIR)/internal/
|
||||
$(STAMP_DIR)/created: $(created)
|
||||
touch "$@"
|
||||
endif
|
||||
|
||||
|
||||
dh_mak_deps = $(shell DH_COMPAT=$(DH_COMPAT) perl $(DBS_SPLIT) makedeps)
|
||||
dh_gen_deps = $(shell DH_COMPAT=$(DH_COMPAT) perl $(DBS_SPLIT) gendeps)
|
||||
|
||||
$(dh_mak_deps): $(dh_gen_deps)
|
||||
perl $(DBS_SPLIT)
|
||||
|
||||
|
||||
setup: $(dh_mak_deps)
|
||||
dh_testdir
|
||||
@-up-scripts
|
||||
$(MAKE) -f debian/rules $(unpacked) $(patched)
|
||||
|
||||
$(patched)/: $(created) $(sh_vars) $(unpacked)
|
||||
$(SHELL) $(DBS_LIB) patch_apply
|
||||
touch "$@"
|
||||
|
||||
unpacked: $(unpacked)
|
||||
$(unpacked): $(created) $(sh_vars)
|
||||
$(SHELL) $(DBS_LIB) source_unpack
|
||||
touch "$@"
|
||||
|
||||
make_patch:
|
||||
mv $(SOURCE_DIR) $(SOURCE_DIR).new
|
||||
rm -rf $(STAMP_DIR)
|
||||
$(MAKE) -f debian/rules $(unpacked) $(patched)
|
||||
mv $(SOURCE_DIR) $(SOURCE_DIR).old
|
||||
mv $(SOURCE_DIR).new $(SOURCE_DIR)
|
||||
(cd $(SOURCE_DIR) && diff -Nru ../$(SOURCE_DIR).old ./ || test $$? -eq 1 && exit 0) > new.diff
|
||||
rm -rf $(SOURCE_DIR).old
|
||||
@echo; ls -l new.diff
|
||||
|
||||
$(created):
|
||||
test -d $(STAMP_DIR) || mkdir $(STAMP_DIR)
|
||||
touch "$@"
|
||||
|
||||
$(sh_vars): $(debian_vars) $(created)
|
||||
ifneq (,$(debian_vars))
|
||||
$(SHELL) $(DBS_VARSBUILD) "$(debian_vars)" shell > "$@"
|
||||
endif
|
||||
touch "$@"
|
||||
6
binutils-debian/dirs
Normal file
6
binutils-debian/dirs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
usr/bin
|
||||
usr/lib
|
||||
|
||||
|
||||
|
||||
|
||||
179
binutils-debian/gasp.1
Normal file
179
binutils-debian/gasp.1
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
.\" gasp man page by Christopher C. Chimelis, chris@debian.org
|
||||
.\" for binutils 2.9.5.0.12 17 Sep 1999
|
||||
.TH gasp 1 "September 1999" Debian "GNU Development Tools"
|
||||
.SH NAME
|
||||
gasp \- a preprocessor for assembly programs
|
||||
.SH SYNOPSIS
|
||||
.hy 0
|
||||
.na
|
||||
.TP
|
||||
.B gasp
|
||||
.RB "[\|" \-a | \-\-alternate "\|]"
|
||||
.RB "[\|" "\-c\ "\c
|
||||
.I CHAR\c
|
||||
.RB " | " "\-\-commentchar\ "\c
|
||||
.I CHAR\c
|
||||
\&\|]
|
||||
.RB "[\|" \-d | \-\-debug "\|]"
|
||||
.RB "[\|" \-h | \-\-help "\|]"
|
||||
.RB "[\|" \-M | \-\-mri "\|]"
|
||||
.RB "[\|" "\-o\ "\c
|
||||
.I OUTFILE\c
|
||||
.RB " | " "\-\-output\ "\c
|
||||
.I OUTFILE\c
|
||||
\&\|]
|
||||
.RB "[\|" \-p | \-\-print "\|]"
|
||||
.RB "[\|" \-s | \-\-copysource "\|]"
|
||||
.RB "[\|" \-u | \-\-unreasonable "\|]"
|
||||
.RB "[\|" \-v | \-\-version "\|]"
|
||||
.I INFILE \c
|
||||
\&.\|.\.
|
||||
.ad b
|
||||
.hy 1
|
||||
.SH DESCRIPTION
|
||||
\c
|
||||
The primary purpose of the GNU assembler is to assemble the output of
|
||||
other programs--notably compilers. When you have to hand-code
|
||||
specialized routines in assembly, that means the GNU assembler is an
|
||||
unfriendly processor: it has no directives for macros, conditionals, or
|
||||
many other conveniences that you might expect.
|
||||
|
||||
In some cases you can simply use the C preprocessor, or a generalized
|
||||
preprocessor like M4; but this can be awkward, since none of these
|
||||
things are designed with assembly in mind.
|
||||
|
||||
.B gasp \c
|
||||
fills this need. It is expressly designed to provide the
|
||||
facilities you need with hand-coded assembly code. Implementing it as a
|
||||
preprocessor, rather than part of the assembler, allows the maximum
|
||||
flexibility: you can use it with hand-coded assembly, without paying a
|
||||
penalty of added complexity in the assembler you use for compiler
|
||||
output.
|
||||
.PP
|
||||
.IR "INFILE" .\|.\|.
|
||||
are the files to be preprocessed.
|
||||
|
||||
.SH OPTIONS
|
||||
The simplest way to use GASP is to run it as a filter and assemble
|
||||
its output. In Unix and its ilk, you can do this, for example:
|
||||
|
||||
$ gasp prog.asm | as -o prog.o
|
||||
|
||||
Naturally, there are also a few command-line options to allow you to
|
||||
request variations on this basic theme. Here is the full set of
|
||||
possibilities for the GASP command line.
|
||||
|
||||
.TP
|
||||
.B \-a
|
||||
.TP
|
||||
.B \-\-alternate
|
||||
Use alternative macro syntax. *Note Alternate macro syntax:
|
||||
Alternate, for a discussion of how this syntax differs from the
|
||||
default GASP syntax.
|
||||
|
||||
.TP
|
||||
.BI "\-c " CHAR
|
||||
.TP
|
||||
.BI "\-\-commentchar " CHAR
|
||||
Use CHAR as the comment character. The default comment character
|
||||
is `!'. For example, to use a semicolon as the comment character,
|
||||
specify `-c ';'' on the GASP command line. Since assembler
|
||||
command characters often have special significance to command
|
||||
shells, it is a good idea to quote or escape CHAR when you specify
|
||||
a comment character.
|
||||
|
||||
For the sake of simplicity, all examples in this manual use the
|
||||
default comment character `!'.
|
||||
|
||||
.TP
|
||||
.B \-d
|
||||
.TP
|
||||
.B \-\-debug
|
||||
Show debugging statistics. In this version of GASP, this option
|
||||
produces statistics about the string buffers that GASP allocates
|
||||
internally. For each defined buffersize S, GASP shows the number
|
||||
of strings N that it allocated, with a line like this:
|
||||
|
||||
strings size S : N
|
||||
|
||||
GASP displays these statistics on the standard error stream, when
|
||||
done preprocessing.
|
||||
|
||||
.TP
|
||||
.B \-h
|
||||
.TP
|
||||
.B \-\-help
|
||||
Display a summary of the GASP command line options.
|
||||
|
||||
.TP
|
||||
.B \-M
|
||||
.TP
|
||||
.B \-\-mri
|
||||
Use MRI compatibility mode. Using this option causes GASP to
|
||||
accept the syntax and pseudo-ops used by the Microtec Research
|
||||
`ASM68K' assembler.
|
||||
|
||||
.TP
|
||||
.BI "\-o " OUTFILE
|
||||
.TP
|
||||
.BI "\-\-output " OUTFILE
|
||||
`-o OUTFILE'
|
||||
`--output OUTFILE'
|
||||
Write the output in a file called OUTFILE. If you do not use the
|
||||
`-o' option, GASP writes its output on the standard output stream.
|
||||
|
||||
.TP
|
||||
.B \-p
|
||||
.TP
|
||||
.B \-\-print
|
||||
Print line numbers. GASP obeys this option _only_ if you also
|
||||
specify `-s' to copy source lines to its output. With `-s -p',
|
||||
GASP displays the line number of each source line copied
|
||||
(immediately after the comment character at the beginning of the
|
||||
line).
|
||||
|
||||
.TP
|
||||
.B \-s
|
||||
.TP
|
||||
.B \-\-copysource
|
||||
Copy the source lines to the output file. Use this option to see
|
||||
the effect of each preprocessor line on the GASP output. GASP
|
||||
places a comment character (`!' by default) at the beginning of
|
||||
each source line it copies, so that you can use this option and
|
||||
still assemble the result.
|
||||
|
||||
.TP
|
||||
.B \-u
|
||||
.TP
|
||||
.B \-\-unreasonable
|
||||
Bypass "unreasonable expansion" limit. Since you can define GASP
|
||||
macros inside other macro definitions, the preprocessor normally
|
||||
includes a sanity check. If your program requires more than 1,000
|
||||
nested expansions, GASP normally exits with an error message. Use
|
||||
this option to turn off this check, allowing unlimited nested
|
||||
expansions.
|
||||
|
||||
.TP
|
||||
.B \-v
|
||||
.TP
|
||||
.B \-\-version
|
||||
Display the GASP version number.
|
||||
|
||||
.TP
|
||||
.IB INFILE \ .\.\.
|
||||
The input file names. You must specify at least one input file;
|
||||
if you specify more, GASP preprocesses them all, concatenating the
|
||||
output in the order you list the INFILE arguments.
|
||||
|
||||
Mark the end of each input file with the preprocessor command
|
||||
`.END'.
|
||||
|
||||
.SH SEE ALSO
|
||||
.RB "`\|" gasp "\|'"
|
||||
entry in
|
||||
.B info\c
|
||||
\&;
|
||||
.I
|
||||
The GNU Binary Utilities\c
|
||||
\&, Roland H. Pesch (October 1991);
|
||||
.BR gasp "(" 1 ")."
|
||||
97
binutils-debian/newdevices.patch.old
Normal file
97
binutils-debian/newdevices.patch.old
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
--- binutils-2.18/gas/config/tc-avr.c~ Mon Aug 6 21:59:55 2007
|
||||
+++ binutils-2.18/gas/config/tc-avr.c Sat Oct 27 16:30:54 2007
|
||||
@@ -97,22 +97,28 @@
|
||||
{"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},
|
||||
{"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},
|
||||
{"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 +127,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,6 +135,7 @@
|
||||
{"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},
|
||||
@@ -150,6 +158,8 @@
|
||||
{"at90can32" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can64" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
+ {"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb82", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb162", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb646", AVR_ISA_M323, bfd_mach_avr5},
|
||||
--- binutils-2.18/gas/doc/c-avr.texi~ Mon Aug 6 22:00:08 2007
|
||||
+++ binutils-2.18/gas/doc/c-avr.texi Sat Oct 27 16:30:52 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).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
|
||||
at76c711).
|
||||
|
||||
-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, atmega323, atmega324p, atmega325,
|
||||
+atmega325p, atmega328p, atmega329, atmega329p, atmega3250,
|
||||
+atmega3250p, atmega3290, atmega3290p, atmega406, atmega64, atmega640,
|
||||
+atmega644, atmega644p, atmega128, atmega1280, atmega1281, atmega645,
|
||||
+atmega649, atmega6450, atmega6490, atmega16hva, at90can32, at90can64,
|
||||
+at90can128, at90pwm216, at90pwm316, at90usb82, at90usb162, at90usb646,
|
||||
at90usb647, at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
WinAVR specific only
|
||||
Need configure options like GCC.
|
||||
--------------------------------------------------------------------------------
|
||||
diff -Nur ../binutils-2.18.orig/bfd/Makefile.am ./bfd/Makefile.am
|
||||
--- bfd/Makefile.in Tue Oct 23 21:44:07 2007
|
||||
+++ bfd/Makefile.in Tue Oct 23 22:41:01 2007
|
||||
@@ -976,13 +980,13 @@
|
||||
bfdver.h: $(srcdir)/version.h $(srcdir)/Makefile.in
|
||||
@echo "creating $@"
|
||||
@bfd_version=`echo "$(VERSION)" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
|
||||
- bfd_version_string="\"$(VERSION)\"" ;\
|
||||
+ bfd_version_string="\"$(VERSION) (WinAVR 20080610)\"" ;\
|
||||
bfd_soversion="$(VERSION)" ;\
|
||||
bfd_version_package="\"$(PKGVERSION)\"" ;\
|
||||
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
|
||||
if test "x$(RELEASE)" = x ; then \
|
||||
bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
|
||||
- bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
|
||||
+ bfd_version_string="\"$(VERSION).$${bfd_version_date} (WinAVR 20080610)\"" ;\
|
||||
bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
|
||||
fi ;\
|
||||
sed -e "s,@bfd_version@,$$bfd_version," \
|
||||
431
binutils-debian/patches-2.18/30-binutils-2.18-avr-size.patch
Normal file
431
binutils-debian/patches-2.18/30-binutils-2.18-avr-size.patch
Normal file
|
|
@ -0,0 +1,431 @@
|
|||
AVR specific only
|
||||
--------------------------------------------------------------------------------
|
||||
--- binutils/size.c 2007-08-06 13:56:14.000000000 -0600
|
||||
+++ binutils/size.c 2007-09-13 09:13:10.281250000 -0600
|
||||
@@ -35,10 +35,31 @@
|
||||
#include "getopt.h"
|
||||
#include "bucomm.h"
|
||||
|
||||
-#ifndef BSD_DEFAULT
|
||||
-#define BSD_DEFAULT 1
|
||||
+typedef enum
|
||||
+{
|
||||
+ format_sysv = 0,
|
||||
+ format_bsd = 1,
|
||||
+ format_avr = 2,
|
||||
+} format_type_t;
|
||||
+
|
||||
+
|
||||
+/* Set the default format. */
|
||||
+#define FORMAT_DEFAULT_SYSV 0
|
||||
+#define FORMAT_DEFAULT_BSD 1
|
||||
+#define FORMAT_DEFAULT_AVR 0
|
||||
+
|
||||
+#if FORMAT_DEFAULT_SYSV
|
||||
+ #define FORMAT_DEFAULT format_sysv
|
||||
+ #define FORMAT_NAME "sysv"
|
||||
+#elif FORMAT_DEFAULT_BSD
|
||||
+ #define FORMAT_DEFAULT format_bsd
|
||||
+ #define FORMAT_NAME "berkeley"
|
||||
+#elif FORMAT_DEFAULT_AVR
|
||||
+ #define FORMAT_DEFAULT format_avr
|
||||
+ #define FORMAT_NAME "avr"
|
||||
#endif
|
||||
|
||||
+
|
||||
/* Program options. */
|
||||
|
||||
static enum
|
||||
@@ -47,9 +68,8 @@ static enum
|
||||
}
|
||||
radix = decimal;
|
||||
|
||||
-/* 0 means use AT&T-style output. */
|
||||
-static int berkeley_format = BSD_DEFAULT;
|
||||
|
||||
+format_type_t format = FORMAT_DEFAULT;
|
||||
static int show_version = 0;
|
||||
static int show_help = 0;
|
||||
static int show_totals = 0;
|
||||
@@ -63,6 +83,156 @@ static bfd_size_type total_textsize;
|
||||
/* Program exit status. */
|
||||
static int return_code = 0;
|
||||
|
||||
+
|
||||
+/* AVR Size specific stuff */
|
||||
+
|
||||
+#define AVR64 64UL
|
||||
+#define AVR128 128UL
|
||||
+#define AVR256 256UL
|
||||
+#define AVR512 512UL
|
||||
+#define AVR1K 1024UL
|
||||
+#define AVR2K 2048UL
|
||||
+#define AVR4K 4096UL
|
||||
+#define AVR8K 8192UL
|
||||
+#define AVR16K 16384UL
|
||||
+#define AVR24K 24576UL
|
||||
+#define AVR32K 32768UL
|
||||
+#define AVR40K 40960UL
|
||||
+#define AVR64K 65536UL
|
||||
+#define AVR128K 131072UL
|
||||
+#define AVR256K 262144UL
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ char *name;
|
||||
+ long flash;
|
||||
+ long ram;
|
||||
+ long eeprom;
|
||||
+} avr_device_t;
|
||||
+
|
||||
+avr_device_t avr[] =
|
||||
+{
|
||||
+ {"atmega2560", AVR256K, AVR8K, AVR4K},
|
||||
+ {"atmega2561", AVR256K, AVR8K, AVR4K},
|
||||
+
|
||||
+ {"at43usb320", AVR128K, 608UL, 0},
|
||||
+ {"at90can128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"at90usb1286", AVR128K, AVR8K, AVR4K},
|
||||
+ {"at90usb1287", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"atmega1280", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1281", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1284P", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega103", AVR128K, 4000UL, AVR4K},
|
||||
+ {"atxmega128a1",AVR128K, AVR8K, AVR2K},
|
||||
+
|
||||
+ {"at90can64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega640", AVR64K, AVR8K, AVR4K},
|
||||
+ {"atmega644", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atxmega64a1", AVR64K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"atmega406", AVR40K, AVR512, AVR2K},
|
||||
+
|
||||
+ {"at90can32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"at94k", AVR32K, AVR4K, 0},
|
||||
+ {"atmega32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega323", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
|
||||
+
|
||||
+ {"at43usb355", AVR24K, 1120, 0},
|
||||
+
|
||||
+ {"at76c711", AVR16K, AVR2K, 0},
|
||||
+ {"at90pwm216", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90pwm316", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90usb162", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega161", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega162", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega163", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169p", AVR16K, AVR1K, AVR512},
|
||||
+ {"attiny167", AVR16K, AVR512, AVR512},
|
||||
+
|
||||
+ {"at90c8534", AVR8K, 352, AVR512},
|
||||
+ {"at90pwm1", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90s8515", AVR8K, AVR512, AVR512},
|
||||
+ {"at90s8535", AVR8K, AVR512, AVR512},
|
||||
+ {"at90usb82", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega8", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8515", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega8535", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega88", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88p", AVR8K, AVR1K, AVR512},
|
||||
+ {"attiny84", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny85", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny861", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny88", AVR8K, AVR256, AVR64},
|
||||
+
|
||||
+ {"at90s4414", AVR4K, 352, AVR256},
|
||||
+ {"at90s4433", AVR4K, AVR128, AVR256},
|
||||
+ {"at90s4434", AVR4K, 352, AVR256},
|
||||
+ {"atmega48", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48p", AVR4K, AVR512, AVR256},
|
||||
+ {"attiny43u", AVR4K, AVR256, AVR64},
|
||||
+ {"attiny44", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny45", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny48", AVR4K, AVR256, AVR64},
|
||||
+
|
||||
+ {"at86rf401", AVR2K, 224, AVR128},
|
||||
+ {"at90s2313", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2323", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2333", AVR2K, 224, AVR128},
|
||||
+ {"at90s2343", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny22", AVR2K, 224, AVR128},
|
||||
+ {"attiny2313", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny25", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny26", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny28", AVR2K, 0, 0},
|
||||
+
|
||||
+ {"at90s1200", AVR1K, 0, AVR64},
|
||||
+ {"attiny11", AVR1K, 0, AVR64},
|
||||
+ {"attiny12", AVR1K, 0, AVR64},
|
||||
+ {"attiny13", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny15", AVR1K, 0, AVR64},
|
||||
+};
|
||||
+
|
||||
+static char *avrmcu = NULL;
|
||||
+
|
||||
+
|
||||
static char *target = NULL;
|
||||
|
||||
/* Forward declarations. */
|
||||
@@ -78,7 +240,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\
|
||||
- -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\
|
||||
+ -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\
|
||||
+ --mcu=<avrmcu> MCU name for AVR format only\n\
|
||||
-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\
|
||||
@@ -87,11 +250,7 @@ usage (FILE *stream, int status)
|
||||
-h --help Display this information\n\
|
||||
-v --version Display the program's version\n\
|
||||
\n"),
|
||||
-#if BSD_DEFAULT
|
||||
- "berkeley"
|
||||
-#else
|
||||
- "sysv"
|
||||
-#endif
|
||||
+FORMAT_NAME
|
||||
);
|
||||
list_supported_targets (program_name, stream);
|
||||
if (REPORT_BUGS_TO[0] && status == 0)
|
||||
@@ -102,6 +261,7 @@ usage (FILE *stream, int status)
|
||||
#define OPTION_FORMAT (200)
|
||||
#define OPTION_RADIX (OPTION_FORMAT + 1)
|
||||
#define OPTION_TARGET (OPTION_RADIX + 1)
|
||||
+#define OPTION_MCU (OPTION_TARGET + 1)
|
||||
|
||||
static struct option long_options[] =
|
||||
{
|
||||
@@ -109,6 +269,7 @@ static struct option long_options[] =
|
||||
{"format", required_argument, 0, OPTION_FORMAT},
|
||||
{"radix", required_argument, 0, OPTION_RADIX},
|
||||
{"target", required_argument, 0, OPTION_TARGET},
|
||||
+ {"mcu", required_argument, 0, 203},
|
||||
{"totals", no_argument, &show_totals, 1},
|
||||
{"version", no_argument, &show_version, 1},
|
||||
{"help", no_argument, &show_help, 1},
|
||||
@@ -140,7 +301,7 @@ main (int argc, char **argv)
|
||||
bfd_init ();
|
||||
set_default_bfd_target ();
|
||||
|
||||
- while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options,
|
||||
+ while ((c = getopt_long (argc, argv, "ABCHhVvdfotx", long_options,
|
||||
(int *) 0)) != EOF)
|
||||
switch (c)
|
||||
{
|
||||
@@ -149,11 +310,15 @@ main (int argc, char **argv)
|
||||
{
|
||||
case 'B':
|
||||
case 'b':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
+ break;
|
||||
+ case 'A':
|
||||
+ case 'a':
|
||||
+ format = format_avr;
|
||||
break;
|
||||
default:
|
||||
non_fatal (_("invalid argument to --format: %s"), optarg);
|
||||
@@ -161,6 +326,10 @@ main (int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
|
||||
+ case OPTION_MCU:
|
||||
+ avrmcu = optarg;
|
||||
+ break;
|
||||
+
|
||||
case OPTION_TARGET:
|
||||
target = optarg;
|
||||
break;
|
||||
@@ -189,11 +358,14 @@ main (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
break;
|
||||
case 'B':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
+ case 'C':
|
||||
+ format = format_avr;
|
||||
+ break;
|
||||
case 'v':
|
||||
case 'V':
|
||||
show_version = 1;
|
||||
@@ -239,7 +411,7 @@ main (int argc, char **argv)
|
||||
for (; optind < argc;)
|
||||
display_file (argv[optind++]);
|
||||
|
||||
- if (show_totals && berkeley_format)
|
||||
+ if (show_totals && format == format_bsd)
|
||||
{
|
||||
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
|
||||
|
||||
@@ -600,13 +772,117 @@ print_sysv_format (bfd *file)
|
||||
printf ("\n\n");
|
||||
}
|
||||
|
||||
+
|
||||
+static avr_device_t *
|
||||
+avr_find_device (void)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ if (avrmcu != NULL)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++)
|
||||
+ {
|
||||
+ if (strcmp(avr[i].name, avrmcu) == 0)
|
||||
+ {
|
||||
+ /* Match found */
|
||||
+ return (&avr[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+print_avr_format (bfd *file)
|
||||
+{
|
||||
+ char *avr_name = "Unknown";
|
||||
+ int flashmax = 0;
|
||||
+ int rammax = 0;
|
||||
+ int eeprommax = 0;
|
||||
+ asection *section;
|
||||
+ bfd_size_type datasize = 0;
|
||||
+ bfd_size_type textsize = 0;
|
||||
+ bfd_size_type bsssize = 0;
|
||||
+ bfd_size_type bootloadersize = 0;
|
||||
+ bfd_size_type noinitsize = 0;
|
||||
+ bfd_size_type eepromsize = 0;
|
||||
+
|
||||
+ avr_device_t *avrdevice = avr_find_device();
|
||||
+ if (avrdevice != NULL)
|
||||
+ {
|
||||
+ avr_name = avrdevice->name;
|
||||
+ flashmax = avrdevice->flash;
|
||||
+ rammax = avrdevice->ram;
|
||||
+ eeprommax = avrdevice->eeprom;
|
||||
+ }
|
||||
+
|
||||
+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL)
|
||||
+ datasize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL)
|
||||
+ textsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL)
|
||||
+ bsssize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL)
|
||||
+ bootloadersize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL)
|
||||
+ noinitsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL)
|
||||
+ eepromsize = bfd_section_size (file, section);
|
||||
+
|
||||
+ bfd_size_type text = textsize + datasize + bootloadersize;
|
||||
+ bfd_size_type data = datasize + bsssize + noinitsize;
|
||||
+ bfd_size_type eeprom = eepromsize;
|
||||
+
|
||||
+ printf ("AVR Memory Usage\n"
|
||||
+ "----------------\n"
|
||||
+ "Device: %s\n\n", avr_name);
|
||||
+
|
||||
+ /* Text size */
|
||||
+ printf ("Program:%8ld bytes", text);
|
||||
+ if (flashmax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.text + .data + .bootloader)\n\n");
|
||||
+
|
||||
+ /* Data size */
|
||||
+ printf ("Data: %8ld bytes", data);
|
||||
+ if (rammax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)data / rammax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.data + .bss + .noinit)\n\n");
|
||||
+
|
||||
+ /* EEPROM size */
|
||||
+ if (eeprom > 0)
|
||||
+ {
|
||||
+ printf ("EEPROM: %8ld bytes", eeprom);
|
||||
+ if (eeprommax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.eeprom)\n\n");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void
|
||||
print_sizes (bfd *file)
|
||||
{
|
||||
if (show_common)
|
||||
calculate_common_size (file);
|
||||
- if (berkeley_format)
|
||||
- print_berkeley_format (file);
|
||||
- else
|
||||
- print_sysv_format (file);
|
||||
+ switch (format)
|
||||
+ {
|
||||
+ case format_sysv:
|
||||
+ print_sysv_format (file);
|
||||
+ break;
|
||||
+ case format_bsd:
|
||||
+ print_berkeley_format (file);
|
||||
+ break;
|
||||
+ case format_avr:
|
||||
+ default:
|
||||
+ print_avr_format (file);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
5575
binutils-debian/patches-2.18/31-binutils-2.18-avr-coff.patch
Normal file
5575
binutils-debian/patches-2.18/31-binutils-2.18-avr-coff.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,45 @@
|
|||
Not committed.
|
||||
--------------------------------------------------------------------------------
|
||||
--- 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) }
|
||||
99
binutils-debian/patches-2.18/33-binutils-2.18-data-origin.patch
Executable file
99
binutils-debian/patches-2.18/33-binutils-2.18-data-origin.patch
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
Not committed.
|
||||
Patch by Anatoly Sokolov
|
||||
--------------------------------------------------------------------------------
|
||||
Index: ld/emulparams/avr1.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr1.sh,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 avr1.sh
|
||||
--- ld/emulparams/avr1.sh 24 May 2006 07:36:11 -0000 1.2
|
||||
+++ ld/emulparams/avr1.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=8K
|
||||
+DATA_ORIGIN=0x800060
|
||||
DATA_LENGTH=0
|
||||
EXTRA_EM_FILE=avrelf
|
||||
Index: ld/emulparams/avr2.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr2.sh,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 avr2.sh
|
||||
--- ld/emulparams/avr2.sh 24 May 2006 07:36:11 -0000 1.2
|
||||
+++ ld/emulparams/avr2.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=8K
|
||||
+DATA_ORIGIN=0x800060
|
||||
DATA_LENGTH=0xffa0
|
||||
EXTRA_EM_FILE=avrelf
|
||||
Index: ld/emulparams/avr3.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr3.sh,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 avr3.sh
|
||||
--- ld/emulparams/avr3.sh 24 May 2006 07:36:11 -0000 1.2
|
||||
+++ ld/emulparams/avr3.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=128K
|
||||
+DATA_ORIGIN=0x800060
|
||||
DATA_LENGTH=0xffa0
|
||||
EXTRA_EM_FILE=avrelf
|
||||
Index: ld/emulparams/avr4.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr4.sh,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 avr4.sh
|
||||
--- ld/emulparams/avr4.sh 24 May 2006 07:36:11 -0000 1.2
|
||||
+++ ld/emulparams/avr4.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=8K
|
||||
+DATA_ORIGIN=0x800060
|
||||
DATA_LENGTH=0xffa0
|
||||
EXTRA_EM_FILE=avrelf
|
||||
Index: ld/emulparams/avr5.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr5.sh,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 avr5.sh
|
||||
--- ld/emulparams/avr5.sh 24 May 2006 07:36:11 -0000 1.2
|
||||
+++ ld/emulparams/avr5.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=128K
|
||||
+DATA_ORIGIN=0x800060
|
||||
DATA_LENGTH=0xffa0
|
||||
EXTRA_EM_FILE=avrelf
|
||||
Index: ld/emulparams/avr6.sh
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emulparams/avr6.sh,v
|
||||
retrieving revision 1.1
|
||||
diff -u -r1.1 avr6.sh
|
||||
--- ld/emulparams/avr6.sh 24 May 2006 07:36:11 -0000 1.1
|
||||
+++ ld/emulparams/avr6.sh 29 Feb 2008 23:39:37 -0000
|
||||
@@ -7,5 +7,6 @@
|
||||
TEMPLATE_NAME=elf32
|
||||
|
||||
TEXT_LENGTH=1024K
|
||||
-DATA_LENGTH=0xffa0
|
||||
+DATA_ORIGIN=0x800200
|
||||
+DATA_LENGTH=0xfe00
|
||||
EXTRA_EM_FILE=avrelf
|
||||
--- ld/scripttempl/avr.sc.orig 2008-02-19 16:36:36.382765500 -0700
|
||||
+++ ld/scripttempl/avr.sc 2008-02-19 16:41:07.653804500 -0700
|
||||
@@ -5,7 +5,7 @@ OUTPUT_ARCH(${ARCH})
|
||||
MEMORY
|
||||
{
|
||||
text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
|
||||
- data (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH
|
||||
+ data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
|
||||
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
|
||||
fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
|
||||
lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
|
||||
30
binutils-debian/patches-2.18/40-binutils-2.18-bug-5523.patch
Executable file
30
binutils-debian/patches-2.18/40-binutils-2.18-bug-5523.patch
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
Committed
|
||||
Binutils 2.19.
|
||||
Backport patch to fix Binutils bug #5523.
|
||||
--------------------------------------------------------------------------------
|
||||
Index: gas/config/tc-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/config/tc-avr.c,v
|
||||
retrieving revision 1.48
|
||||
diff -c -3 -p -r1.48 tc-avr.c
|
||||
*** gas/config/tc-avr.c 16 Nov 2007 17:39:22 -0000 1.48
|
||||
--- gas/config/tc-avr.c 7 Jan 2008 16:43:30 -0000
|
||||
*************** avr_ldi_expression (expressionS *exp)
|
||||
*** 618,624 ****
|
||||
break;
|
||||
|
||||
default:
|
||||
! as_warn (_("expression dangerous with linker stubs"));
|
||||
}
|
||||
}
|
||||
return reloc_to_return;
|
||||
--- 618,626 ----
|
||||
break;
|
||||
|
||||
default:
|
||||
! /* PR 5523: Do not generate a warning here,
|
||||
! legitimate code can trigger this case. */
|
||||
! break;
|
||||
}
|
||||
}
|
||||
return reloc_to_return;
|
||||
19
binutils-debian/patches-2.18/41-binutils-2.18-objdump-mixed.patch
Executable file
19
binutils-debian/patches-2.18/41-binutils-2.18-objdump-mixed.patch
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
Not committed.
|
||||
Needs bug report filed
|
||||
--------------------------------------------------------------------------------
|
||||
diff -Nbaur binutils-2.18.50/binutils/objdump.c binutils-2.18.50-mod/binutils/objdump.c
|
||||
--- binutils/objdump.c Thu Feb 7 16:04:47 2008
|
||||
+++ binutils/objdump.c Thu Feb 7 16:02:11 2008
|
||||
@@ -964,7 +964,12 @@
|
||||
#endif
|
||||
const char *map;
|
||||
struct stat st;
|
||||
+
|
||||
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN32__
|
||||
+ int fd = open (fn, O_RDONLY | O_BINARY);
|
||||
+#else
|
||||
int fd = open (fn, O_RDONLY);
|
||||
+#endif
|
||||
|
||||
if (fd < 0)
|
||||
return NULL;
|
||||
26
binutils-debian/patches-2.18/50-0-binutils-2.18-at90pwmx16.patch
Executable file
26
binutils-debian/patches-2.18/50-0-binutils-2.18-at90pwmx16.patch
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-09-12 15:26:14.000000000 -0600
|
||||
+++ gas/config/tc-avr.c 2007-09-12 15:27:35.046875000 -0600
|
||||
@@ -150,6 +150,8 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90can32" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can64" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
+ {"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb82", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb162", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb646", AVR_ISA_M323, bfd_mach_avr5},
|
||||
--- gas/doc/c-avr.texi.old 2007-10-04 20:00:29.638750000 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-10-04 20:01:49.107500000 -0600
|
||||
@@ -58,7 +58,8 @@ atmega32, atmega323, atmega324p, atmega3
|
||||
atmega329p, atmega3250, atmega3250p, atmega3290, atmega3290p, atmega406,
|
||||
atmega64, atmega640, atmega644, atmega644p, atmega128, atmega1280,
|
||||
atmega1281, atmega645, atmega649, atmega6450, atmega6490, atmega16hva,
|
||||
-at90can32, at90can64, at90can128, at90usb82, at90usb162, at90usb646,
|
||||
+at90can32, at90can64, at90can128, at90pwm216, at90pwm316,
|
||||
+at90usb82, at90usb162, at90usb646,
|
||||
at90usb647, at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
24
binutils-debian/patches-2.18/50-1-binutils-2.18-attiny43u.patch
Executable file
24
binutils-debian/patches-2.18/50-1-binutils-2.18-attiny43u.patch
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-09-26 09:40:21.793625000 -0600
|
||||
+++ gas/config/tc-avr.c 2007-09-26 09:41:19.887375000 -0600
|
||||
@@ -98,6 +98,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
{"atmega603", AVR_ISA_M603, bfd_mach_avr3}, /* XXX -> m103 */
|
||||
{"atmega103", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb320", AVR_ISA_M103, bfd_mach_avr3},
|
||||
--- gas/doc/c-avr.texi.old 2007-10-04 20:54:00.531750000 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-10-04 20:54:55.406750000 -0600
|
||||
@@ -41,7 +41,7 @@ Instruction set avr2 (default) is for th
|
||||
attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
|
||||
at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
|
||||
attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
|
||||
-attiny45, attiny85).
|
||||
+attiny45, attiny85, attiny43u).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
|
||||
24
binutils-debian/patches-2.18/50-2-binutils-2.18-attiny48.patch
Executable file
24
binutils-debian/patches-2.18/50-2-binutils-2.18-attiny48.patch
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/doc/c-avr.texi.old 2007-10-05 13:09:07.663000000 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-10-05 13:09:36.350500000 -0600
|
||||
@@ -41,7 +41,7 @@ Instruction set avr2 (default) is for th
|
||||
attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
|
||||
at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
|
||||
attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
|
||||
-attiny45, attiny85, attiny43u).
|
||||
+attiny45, attiny85, attiny43u, attiny48).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
|
||||
--- gas/config/tc-avr.c.old 2007-10-05 13:12:31.959875000 -0600
|
||||
+++ gas/config/tc-avr.c 2007-10-05 13:13:11.506750000 -0600
|
||||
@@ -99,6 +99,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
{"atmega603", AVR_ISA_M603, bfd_mach_avr3}, /* XXX -> m103 */
|
||||
{"atmega103", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb320", AVR_ISA_M103, bfd_mach_avr3},
|
||||
27
binutils-debian/patches-2.18/50-3-binutils-2.18-at90pwm2b3b.patch
Executable file
27
binutils-debian/patches-2.18/50-3-binutils-2.18-at90pwm2b3b.patch
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-10-09 09:04:20.265625000 -0600
|
||||
+++ gas/config/tc-avr.c 2007-10-09 09:05:46.312500000 -0600
|
||||
@@ -115,7 +115,9 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
--- gas/doc/c-avr.texi.old 2007-10-09 09:09:03.468750000 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-10-09 09:09:27.859375000 -0600
|
||||
@@ -49,7 +49,8 @@ at76c711).
|
||||
|
||||
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).
|
||||
+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,
|
||||
65
binutils-debian/patches-2.18/50-4-binutils-2.18-remove-devices.patch
Executable file
65
binutils-debian/patches-2.18/50-4-binutils-2.18-remove-devices.patch
Executable file
|
|
@ -0,0 +1,65 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-10-18 15:59:10.764125000 -0600
|
||||
+++ gas/config/tc-avr.c 2007-10-19 13:25:41.451886700 -0600
|
||||
@@ -68,7 +68,6 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"avr5", AVR_ISA_ALL, bfd_mach_avr5},
|
||||
{"avr6", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
|
||||
- {"attiny10", AVR_ISA_TINY1, bfd_mach_avr1}, /* XXX -> tn11 */
|
||||
{"attiny11", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"attiny12", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"attiny15", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
@@ -99,15 +98,12 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"attiny85", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny43u", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny48", 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},
|
||||
{"atmega48", 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},
|
||||
{"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
|
||||
@@ -332,8 +328,8 @@ md_show_usage (FILE *stream)
|
||||
" [avr-name] can be:\n"
|
||||
" avr1 - AT90S1200, ATtiny1x, ATtiny28\n"
|
||||
" avr2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22\n"
|
||||
- " avr3 - ATmega103, ATmega603\n"
|
||||
- " avr4 - ATmega83, ATmega85\n"
|
||||
+ " avr3 - ATmega103\n"
|
||||
+ " avr4 - ATmega8, ATmega88\n"
|
||||
" avr5 - ATmega161, ATmega163, ATmega32, AT94K\n"
|
||||
" or immediate microcontroller name.\n"));
|
||||
fprintf (stream,
|
||||
--- gas/doc/c-avr.texi.old 2007-10-18 16:04:29.936000000 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-10-18 16:05:48.748500000 -0600
|
||||
@@ -33,7 +33,7 @@
|
||||
Specify ATMEL AVR instruction set or MCU type.
|
||||
|
||||
Instruction set avr1 is for the minimal AVR core, not supported by the C
|
||||
-compiler, only for assembler programs (MCU types: at90s1200, attiny10,
|
||||
+compiler, only for assembler programs (MCU types: at90s1200,
|
||||
attiny11, attiny12, attiny15, attiny28).
|
||||
|
||||
Instruction set avr2 (default) is for the classic AVR core with up to
|
||||
@@ -44,11 +44,11 @@ attiny261, attiny461, attiny861, attiny2
|
||||
attiny45, attiny85, attiny43u, attiny48).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
-memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
|
||||
+memory space (MCU types: atmega103, at43usb320, at43usb355,
|
||||
at76c711).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
-memory space (MCU types: atmega48, atmega8, atmega83, atmega85, atmega88,
|
||||
+memory space (MCU types: atmega48, atmega8, atmega88,
|
||||
atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b,
|
||||
at90pwm3, at90pwm3b).
|
||||
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
Index: gas/config/tc-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/config/tc-avr.c,v
|
||||
retrieving revision 1.44
|
||||
diff -u -r1.44 tc-avr.c
|
||||
--- gas/config/tc-avr.c 31 Oct 2007 18:11:28 -0000 1.44
|
||||
+++ gas/config/tc-avr.c 1 Nov 2007 07:24:12 -0000
|
||||
@@ -103,8 +103,10 @@
|
||||
{"at43usb355", AVR_ISA_M603, bfd_mach_avr3},
|
||||
{"at76c711", AVR_ISA_M603, bfd_mach_avr3},
|
||||
{"atmega48", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
+ {"atmega48p", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
{"atmega8", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"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},
|
||||
@@ -121,6 +123,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,6 +131,7 @@
|
||||
{"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},
|
||||
--- gas/doc/c-avr.texi.old 2007-11-02 10:30:57.213499800 -0600
|
||||
+++ gas/doc/c-avr.texi 2007-11-02 10:34:24.557249800 -0600
|
||||
@@ -44,24 +44,23 @@ attiny261, attiny461, attiny861, attiny2
|
||||
attiny45, attiny85, attiny43u, attiny48).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
-memory space (MCU types: atmega103, at43usb320, at43usb355,
|
||||
-at76c711).
|
||||
+memory space (MCU types: atmega103, at43usb320, at43usb355, at76c711).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
-memory space (MCU types: atmega48, atmega8, atmega88,
|
||||
+memory space (MCU types: atmega48, atmega48p atmega8, 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, at90pwm216, at90pwm316,
|
||||
-at90usb82, at90usb162, at90usb646,
|
||||
-at90usb647, at90usb1286, at90usb1287, at94k).
|
||||
+atmega164p, atmega165, atmega165p, atmega168, atmega168p, atmega169,
|
||||
+atmega169p, atmega32, atmega323, atmega324p, atmega325, atmega325p,
|
||||
+atmega328p, atmega329, atmega329p, atmega3250, atmega3250p, atmega3290,
|
||||
+atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
+atmega128, atmega1280, atmega1281, atmega645, atmega649, atmega6450,
|
||||
+atmega6490, atmega16hva, at90can32, at90can64, at90can128, at90pwm216,
|
||||
+at90pwm316, at90usb82, at90usb162, at90usb646, at90usb647, at90usb1286,
|
||||
+at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
24
binutils-debian/patches-2.18/50-6-binutils-2.18-attiny88.patch
Executable file
24
binutils-debian/patches-2.18/50-6-binutils-2.18-attiny88.patch
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-11-07 00:00:58.640625000 -0700
|
||||
+++ gas/config/tc-avr.c 2007-11-07 00:01:48.500000000 -0700
|
||||
@@ -100,6 +100,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
{"atmega103", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb320", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb355", AVR_ISA_M603, bfd_mach_avr3},
|
||||
--- gas/doc/c-avr.texi.old 2007-11-07 00:01:14.781250000 -0700
|
||||
+++ gas/doc/c-avr.texi 2007-11-07 00:02:18.812500000 -0700
|
||||
@@ -41,7 +41,7 @@ Instruction set avr2 (default) is for th
|
||||
attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
|
||||
at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
|
||||
attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
|
||||
-attiny45, attiny85, attiny43u, attiny48).
|
||||
+attiny45, attiny85, attiny43u, attiny48, attiny88).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, at43usb320, at43usb355, at76c711).
|
||||
30
binutils-debian/patches-2.18/50-7-binutils-2.18-atmega1284p.patch
Executable file
30
binutils-debian/patches-2.18/50-7-binutils-2.18-atmega1284p.patch
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2007-11-12 21:10:06.653875000 -0700
|
||||
+++ gas/config/tc-avr.c 2007-11-12 21:26:42.778875000 -0700
|
||||
@@ -147,6 +147,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
--- gas/doc/c-avr.texi.old 2007-11-12 21:10:37.138250000 -0700
|
||||
+++ gas/doc/c-avr.texi 2007-11-12 21:28:45.013250000 -0700
|
||||
@@ -57,10 +57,10 @@ atmega164p, atmega165, atmega165p, atmeg
|
||||
atmega169p, atmega32, atmega323, atmega324p, atmega325, atmega325p,
|
||||
atmega328p, atmega329, atmega329p, atmega3250, atmega3250p, atmega3290,
|
||||
atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
-atmega128, atmega1280, atmega1281, atmega645, atmega649, atmega6450,
|
||||
-atmega6490, atmega16hva, at90can32, at90can64, at90can128, at90pwm216,
|
||||
-at90pwm316, at90usb82, at90usb162, at90usb646, at90usb647, at90usb1286,
|
||||
-at90usb1287, at94k).
|
||||
+atmega128, atmega1280, atmega1281, atmega1284p, atmega645, atmega649,
|
||||
+atmega6450, atmega6490, atmega16hva, at90can32, at90can64, at90can128,
|
||||
+at90pwm216, at90pwm316, at90usb82, at90usb162, at90usb646, at90usb647,
|
||||
+at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
83
binutils-debian/patches-2.18/50-9-binutils-2.18-avr35.patch
Executable file
83
binutils-debian/patches-2.18/50-9-binutils-2.18-avr35.patch
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
Index: gas/config/tc-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/config/tc-avr.c,v
|
||||
retrieving revision 1.48
|
||||
diff -u -p -r1.48 tc-avr.c
|
||||
--- gas/config/tc-avr.c 16 Nov 2007 17:39:22 -0000 1.48
|
||||
+++ gas/config/tc-avr.c 3 Jan 2008 20:56:39 -0000
|
||||
@@ -63,7 +63,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{
|
||||
{"avr1", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"avr2", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
- {"avr3", AVR_ISA_M103, bfd_mach_avr3},
|
||||
+ {"avr3", AVR_ISA_AVR3, bfd_mach_avr3},
|
||||
{"avr4", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"avr5", AVR_ISA_ALL, bfd_mach_avr5},
|
||||
{"avr6", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
@@ -103,6 +103,8 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
@@ -159,8 +161,6 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
- {"at90usb82", AVR_ISA_M323, bfd_mach_avr5},
|
||||
- {"at90usb162", 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},
|
||||
Index: gas/doc/c-avr.texi
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/doc/c-avr.texi,v
|
||||
retrieving revision 1.12
|
||||
diff -u -p -r1.12 c-avr.texi
|
||||
--- gas/doc/c-avr.texi 16 Nov 2007 17:39:22 -0000 1.12
|
||||
+++ gas/doc/c-avr.texi 3 Jan 2008 20:56:39 -0000
|
||||
@@ -44,7 +44,8 @@ attiny261, attiny461, attiny861, attiny2
|
||||
attiny45, attiny85, attiny43u, attiny48, attiny88).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
-memory space (MCU types: atmega103, at43usb320, at43usb355, at76c711).
|
||||
+memory space (MCU types: atmega103, at43usb320, at43usb355, at76c711,
|
||||
+at90usb82, at90usb162).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
|
||||
@@ -59,8 +60,8 @@ atmega328p, atmega329, atmega329p, atmeg
|
||||
atmega3290p, atmega32hvb, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
atmega128, atmega1280, atmega1281, atmega1284p, atmega645, atmega649,
|
||||
atmega6450, atmega6490, atmega16hva, at90can32, at90can64, at90can128,
|
||||
-at90pwm216, at90pwm316, at90usb82, at90usb162, at90usb646, at90usb647,
|
||||
-at90usb1286, at90usb1287, at94k).
|
||||
+at90pwm216, at90pwm316, at90usb646, at90usb647, at90usb1286, at90usb1287,
|
||||
+at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
Index: include/opcode/avr.h
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/include/opcode/avr.h,v
|
||||
retrieving revision 1.9
|
||||
diff -u -p -r1.9 avr.h
|
||||
--- include/opcode/avr.h 7 Apr 2006 15:18:08 -0000 1.9
|
||||
+++ include/opcode/avr.h 3 Jan 2008 20:56:40 -0000
|
||||
@@ -40,6 +40,10 @@
|
||||
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_AVR3 (AVR_ISA_M603 | AVR_ISA_MOVW | \
|
||||
+ AVR_ISA_LPMX | AVR_ISA_SPM | AVR_ISA_ELPM)
|
||||
#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)
|
||||
24
binutils-debian/patches-2.18/51-binutils-2.18-at86rf401.patch
Executable file
24
binutils-debian/patches-2.18/51-binutils-2.18-at86rf401.patch
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- include/opcode/avr.h.old 2008-01-14 21:50:24.960032000 -0700
|
||||
+++ include/opcode/avr.h 2008-01-14 21:51:16.435550300 -0700
|
||||
@@ -34,6 +34,7 @@
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
+#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX)
|
||||
#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
|
||||
AVR_ISA_SPM | AVR_ISA_BRK)
|
||||
#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
|
||||
--- gas/config/tc-avr.c.old 2008-01-14 21:46:45.595033500 -0700
|
||||
+++ gas/config/tc-avr.c 2008-01-14 21:51:38.911750800 -0700
|
||||
@@ -84,7 +84,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90s8515", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
{"at90s8535", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
{"at90c8534", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
- {"at86rf401", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
+ {"at86rf401", AVR_ISA_RF401, bfd_mach_avr2},
|
||||
{"attiny13", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny2313", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny261", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
555
binutils-debian/patches-2.18/52-binutils-2.18-xmega.patch
Executable file
555
binutils-debian/patches-2.18/52-binutils-2.18-xmega.patch
Executable file
|
|
@ -0,0 +1,555 @@
|
|||
Not committed
|
||||
--------------------------------------------------------------------------------
|
||||
--- opcodes/avr-dis.c.orig 2007-08-06 13:58:38.000000000 -0600
|
||||
+++ opcodes/avr-dis.c 2008-04-09 16:37:17.233737600 -0600
|
||||
@@ -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,
|
||||
- char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
+ char *opcode_str, char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
{
|
||||
int ok = 1;
|
||||
*sym = 0;
|
||||
@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned
|
||||
|
||||
case 'z':
|
||||
*buf++ = 'Z';
|
||||
- if (insn & 0x1)
|
||||
- *buf++ = '+';
|
||||
+
|
||||
+ /* Check for post-increment. */
|
||||
+ char *s;
|
||||
+ for (s = opcode_str; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ {
|
||||
+ *buf++ = '+';
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
*buf = '\0';
|
||||
if (AVR_UNDEF_P (insn))
|
||||
sprintf (comment, _("undefined"));
|
||||
@@ -226,6 +236,10 @@ avr_operand (unsigned int insn, unsigned
|
||||
sprintf (comment, "%d", x);
|
||||
}
|
||||
break;
|
||||
+
|
||||
+ case 'E':
|
||||
+ sprintf (buf, "%d", (insn >> 4) & 15);
|
||||
+ break;
|
||||
|
||||
case '?':
|
||||
*buf = '\0';
|
||||
@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
|
||||
|
||||
if (opcode->name)
|
||||
{
|
||||
- char *op = opcode->constraints;
|
||||
+ char *constraints = opcode->constraints;
|
||||
+ char *opcode_str = opcode->opcode;
|
||||
|
||||
insn2 = 0;
|
||||
ok = 1;
|
||||
@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
|
||||
cmd_len = 4;
|
||||
}
|
||||
|
||||
- if (*op && *op != '?')
|
||||
+ if (*constraints && *constraints != '?')
|
||||
{
|
||||
- int regs = REGISTER_P (*op);
|
||||
+ int regs = REGISTER_P (*constraints);
|
||||
|
||||
- ok = avr_operand (insn, insn2, addr, *op, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
+ ok = avr_operand (insn, insn2, addr, *constraints, opcode_str, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
|
||||
- if (ok && *(++op) == ',')
|
||||
- ok = avr_operand (insn, insn2, addr, *(++op), op2,
|
||||
+ if (ok && *(++constraints) == ',')
|
||||
+ ok = avr_operand (insn, insn2, addr, *(++constraints), opcode_str, op2,
|
||||
*comment1 ? comment2 : comment1, regs, &sym_op2, &sym_addr2);
|
||||
}
|
||||
}
|
||||
--- gas/config/tc-avr.c.orig 2008-04-09 14:03:00.411627300 -0600
|
||||
+++ gas/config/tc-avr.c 2008-04-09 16:35:42.382096600 -0600
|
||||
@@ -27,20 +27,21 @@
|
||||
|
||||
struct avr_opcodes_s
|
||||
{
|
||||
- char * name;
|
||||
- char * constraints;
|
||||
- int insn_size; /* In words. */
|
||||
- int isa;
|
||||
+ char *name;
|
||||
+ char *constraints;
|
||||
+ char *opcode;
|
||||
+ int insn_size; /* In words. */
|
||||
+ int isa;
|
||||
unsigned int bin_opcode;
|
||||
};
|
||||
|
||||
#define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
|
||||
-{#NAME, CONSTR, SIZE, ISA, BIN},
|
||||
+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
|
||||
|
||||
struct avr_opcodes_s avr_opcodes[] =
|
||||
{
|
||||
#include "opcode/avr.h"
|
||||
- {NULL, NULL, 0, 0, 0}
|
||||
+ {NULL, NULL, NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
const char comment_chars[] = ";";
|
||||
@@ -64,9 +65,19 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"avr1", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"avr2", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"avr3", AVR_ISA_AVR3, bfd_mach_avr3},
|
||||
+ {"avr31", AVR_ISA_M103, bfd_mach_avr3},
|
||||
+ {"avr35", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
{"avr4", AVR_ISA_M8, bfd_mach_avr4},
|
||||
- {"avr5", AVR_ISA_ALL, bfd_mach_avr5},
|
||||
+ {"avr5", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"avr51", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"avr6", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
+ {"avrxmega1", AVR_ISA_XMEGA, bfd_mach_avrxmega1},
|
||||
+ {"avrxmega2", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
|
||||
+ {"avrxmega3", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
|
||||
+ {"avrxmega4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
|
||||
+ {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
|
||||
{"attiny11", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"attiny12", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
@@ -169,8 +180,10 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90usb1286",AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"at90usb1287",AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"at94k", AVR_ISA_94K, bfd_mach_avr5},
|
||||
- {"atmega2560", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
- {"atmega2561", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
+ {"atmega2560", AVR_ISA_M256, bfd_mach_avr6},
|
||||
+ {"atmega2561", AVR_ISA_M256, bfd_mach_avr6},
|
||||
+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
|
||||
+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
@@ -804,7 +817,12 @@ avr_operand (struct avr_opcodes_s *opcod
|
||||
if (*str == '+')
|
||||
{
|
||||
++str;
|
||||
- op_mask |= 1;
|
||||
+ char *s;
|
||||
+ for (s = opcode->opcode; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ op_mask |= (1 << (15 - (s - opcode->opcode)));
|
||||
+ }
|
||||
}
|
||||
|
||||
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
|
||||
@@ -921,6 +939,16 @@ avr_operand (struct avr_opcodes_s *opcod
|
||||
}
|
||||
break;
|
||||
|
||||
+ case 'E':
|
||||
+ {
|
||||
+ unsigned int x;
|
||||
+
|
||||
+ x = avr_get_constant (str, 15);
|
||||
+ str = input_line_pointer;
|
||||
+ op_mask |= (x << 4);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case '?':
|
||||
break;
|
||||
|
||||
--- include/opcode/avr.h.orig 2008-04-09 14:03:00.411627300 -0600
|
||||
+++ include/opcode/avr.h 2008-04-09 16:34:28.329060900 -0600
|
||||
@@ -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) */
|
||||
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
|
||||
+#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
|
||||
+#define AVR_ISA_DES 0x4000 /* device has DES */
|
||||
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK)
|
||||
@@ -53,6 +55,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_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
|
||||
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
|
||||
|
||||
#define AVR_ISA_ALL 0xFFFF
|
||||
|
||||
@@ -98,6 +102,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)
|
||||
+ E - immediate value from 0 to 15, shifted left by 4 (des)
|
||||
? - use this opcode entry if no parameters, else use next opcode entry
|
||||
|
||||
Order is important - some binary opcodes have more than one name,
|
||||
@@ -158,7 +163,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)
|
||||
-AVR_INSN (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
|
||||
|
||||
AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
|
||||
AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
|
||||
@@ -272,3 +278,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)
|
||||
+
|
||||
Index: bfd/archures.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/bfd/archures.c,v
|
||||
retrieving revision 1.130
|
||||
diff -a -u -p -r1.130 archures.c
|
||||
--- bfd/archures.c 4 Feb 2008 19:15:50 -0000 1.130
|
||||
+++ bfd/archures.c 14 Feb 2008 18:01:43 -0000
|
||||
@@ -352,6 +352,13 @@ DESCRIPTION
|
||||
.#define bfd_mach_avr4 4
|
||||
.#define bfd_mach_avr5 5
|
||||
.#define bfd_mach_avr6 6
|
||||
+.#define bfd_mach_avrxmega1 101
|
||||
+.#define bfd_mach_avrxmega2 102
|
||||
+.#define bfd_mach_avrxmega3 103
|
||||
+.#define bfd_mach_avrxmega4 104
|
||||
+.#define bfd_mach_avrxmega5 105
|
||||
+.#define bfd_mach_avrxmega6 106
|
||||
+.#define bfd_mach_avrxmega7 107
|
||||
. bfd_arch_bfin, {* ADI Blackfin *}
|
||||
.#define bfd_mach_bfin 1
|
||||
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
|
||||
Index: bfd/cpu-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/bfd/cpu-avr.c,v
|
||||
retrieving revision 1.12
|
||||
diff -a -u -p -r1.12 cpu-avr.c
|
||||
--- bfd/cpu-avr.c 3 Jul 2007 14:26:40 -0000 1.12
|
||||
+++ bfd/cpu-avr.c 14 Feb 2008 18:01:43 -0000
|
||||
@@ -86,7 +86,29 @@ static const bfd_arch_info_type arch_inf
|
||||
N (22, bfd_mach_avr5, "avr:5", FALSE, & arch_info_struct[5]),
|
||||
|
||||
/* ATmega256x. */
|
||||
- N (22, bfd_mach_avr6, "avr:6", FALSE, NULL)
|
||||
+ N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[6]),
|
||||
+
|
||||
+ /* Xmega 1 */
|
||||
+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[7]),
|
||||
+
|
||||
+ /* Xmega 2 */
|
||||
+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[8]),
|
||||
+
|
||||
+ /* Xmega 3 */
|
||||
+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[9]),
|
||||
+
|
||||
+ /* Xmega 4 */
|
||||
+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[10]),
|
||||
+
|
||||
+ /* Xmega 5 */
|
||||
+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[11]),
|
||||
+
|
||||
+ /* Xmega 6 */
|
||||
+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[12]),
|
||||
+
|
||||
+ /* Xmega 7 */
|
||||
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
|
||||
+
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_avr_arch =
|
||||
Index: include/elf/avr.h
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/include/elf/avr.h,v
|
||||
retrieving revision 1.8
|
||||
diff -a -u -p -r1.8 avr.h
|
||||
--- include/elf/avr.h 24 May 2006 07:36:11 -0000 1.8
|
||||
+++ include/elf/avr.h 14 Feb 2008 18:01:44 -0000
|
||||
@@ -35,7 +35,14 @@
|
||||
#define E_AVR_MACH_AVR3 3
|
||||
#define E_AVR_MACH_AVR4 4
|
||||
#define E_AVR_MACH_AVR5 5
|
||||
-#define E_AVR_MACH_AVR6 6
|
||||
+#define E_AVR_MACH_AVR6 6
|
||||
+#define E_AVR_MACH_XMEGA1 101
|
||||
+#define E_AVR_MACH_XMEGA2 102
|
||||
+#define E_AVR_MACH_XMEGA3 103
|
||||
+#define E_AVR_MACH_XMEGA4 104
|
||||
+#define E_AVR_MACH_XMEGA5 105
|
||||
+#define E_AVR_MACH_XMEGA6 106
|
||||
+#define E_AVR_MACH_XMEGA7 107
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_avr_reloc_type)
|
||||
Index: ld/Makefile.am
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/Makefile.am,v
|
||||
retrieving revision 1.244
|
||||
diff -a -u -p -r1.244 Makefile.am
|
||||
--- ld/Makefile.am 24 Oct 2007 04:56:47 -0000 1.244
|
||||
+++ ld/Makefile.am 14 Feb 2008 18:01:45 -0000
|
||||
@@ -138,6 +138,13 @@ ALL_EMULATIONS = \
|
||||
eavr4.o \
|
||||
eavr5.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 \
|
||||
@@ -622,6 +629,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)"
|
||||
Index: ld/Makefile.in
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/Makefile.in,v
|
||||
retrieving revision 1.262
|
||||
diff -a -u -p -r1.262 Makefile.in
|
||||
--- ld/Makefile.in 24 Oct 2007 04:56:47 -0000 1.262
|
||||
+++ ld/Makefile.in 14 Feb 2008 18:01:45 -0000
|
||||
@@ -385,6 +385,13 @@ ALL_EMULATIONS = \
|
||||
eavr4.o \
|
||||
eavr5.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 \
|
||||
@@ -1448,6 +1455,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)"
|
||||
Index: ld/configure.tgt
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/configure.tgt,v
|
||||
retrieving revision 1.217
|
||||
diff -a -u -p -r1.217 configure.tgt
|
||||
--- ld/configure.tgt 1 Feb 2008 17:58:48 -0000 1.217
|
||||
+++ ld/configure.tgt 14 Feb 2008 18:01:45 -0000
|
||||
@@ -107,7 +107,7 @@ xscale-*-coff) targ_emul=armcoff ;;
|
||||
xscale-*-elf) targ_emul=armelf
|
||||
;;
|
||||
avr-*-*) targ_emul=avr2
|
||||
- targ_extra_emuls="avr1 avr3 avr4 avr5 avr6"
|
||||
+ targ_extra_emuls="avr1 avr3 avr4 avr5 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
|
||||
;;
|
||||
bfin-*-elf) targ_emul=elf32bfin;
|
||||
targ_extra_emuls="elf32bfinfd"
|
||||
Index: ld/emultempl/avrelf.em
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/emultempl/avrelf.em,v
|
||||
retrieving revision 1.5
|
||||
diff -a -u -p -r1.5 avrelf.em
|
||||
--- ld/emultempl/avrelf.em 17 Aug 2007 13:50:48 -0000 1.5
|
||||
+++ ld/emultempl/avrelf.em 14 Feb 2008 18:01:45 -0000
|
||||
@@ -71,8 +71,15 @@ avr_elf_${EMULATION_NAME}_before_allocat
|
||||
|
||||
gld${EMULATION_NAME}_before_allocation ();
|
||||
|
||||
- /* We only need stubs for the avr6 family. */
|
||||
- if (strcmp ("${EMULATION_NAME}","avr6"))
|
||||
+ /* We only need stubs for the avr6 and avrxmega* family. */
|
||||
+ if (strcmp ("${EMULATION_NAME}","avr6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega1")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega2")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega3")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega4")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega5")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega7") )
|
||||
avr_no_stubs = TRUE;
|
||||
|
||||
avr_elf_set_global_bfd_parameters ();
|
||||
--- /dev/null 2008-02-14 11:03:14.488602600 -0700
|
||||
+++ ld/emulparams/avrxmega1.sh 2008-02-14 09:08:29.531250000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:101
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:18.394502600 -0700
|
||||
+++ ld/emulparams/avrxmega2.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:102
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:22.050425000 -0700
|
||||
+++ ld/emulparams/avrxmega3.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:103
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:25.784465400 -0700
|
||||
+++ ld/emulparams/avrxmega4.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:104
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:25.784465400 -0700
|
||||
+++ ld/emulparams/avrxmega5.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:105
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:25.784465400 -0700
|
||||
+++ ld/emulparams/avrxmega6.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:106
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2008-02-14 11:03:25.784465400 -0700
|
||||
+++ ld/emulparams/avrxmega7.sh 2008-02-14 09:08:29.546875000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:107
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
26
binutils-debian/patches-2.18/53-binutils-2.18-atmega32m1.patch
Executable file
26
binutils-debian/patches-2.18/53-binutils-2.18-atmega32m1.patch
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2008-03-02 12:38:55.671875000 -0700
|
||||
+++ gas/config/tc-avr.c 2008-03-02 12:44:35.562500000 -0700
|
||||
@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"atmega32m1", 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.old 2008-03-02 12:38:55.359375000 -0700
|
||||
+++ gas/doc/c-avr.texi 2008-03-02 12:45:04.546875000 -0700
|
||||
@@ -60,8 +60,8 @@ atmega328p, atmega329, atmega329p, atmeg
|
||||
atmega3290p, atmega32hvb, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
atmega128, atmega1280, atmega1281, atmega1284p, atmega645, atmega649,
|
||||
atmega6450, atmega6490, atmega16hva, at90can32, at90can64, at90can128,
|
||||
-at90pwm216, at90pwm316, at90usb646, at90usb647, at90usb1286, at90usb1287,
|
||||
-at94k).
|
||||
+at90pwm216, at90pwm316, atmega32m1, at90usb646, at90usb647, at90usb1286,
|
||||
+at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
26
binutils-debian/patches-2.18/54-binutils-2.18-atmega32c1.patch
Executable file
26
binutils-debian/patches-2.18/54-binutils-2.18-atmega32c1.patch
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2008-03-02 12:56:28.484375000 -0700
|
||||
+++ gas/config/tc-avr.c 2008-03-11 11:42:21.656250000 -0600
|
||||
@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"atmega32c1", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega32m1", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb646", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb647", AVR_ISA_M323, bfd_mach_avr5},
|
||||
--- gas/doc/c-avr.texi.old 2008-03-02 12:56:28.390625000 -0700
|
||||
+++ gas/doc/c-avr.texi 2008-03-11 11:43:41.468750000 -0600
|
||||
@@ -60,8 +60,8 @@ atmega328p, atmega329, atmega329p, atmeg
|
||||
atmega3290p, atmega32hvb, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
atmega128, atmega1280, atmega1281, atmega1284p, atmega645, atmega649,
|
||||
atmega6450, atmega6490, atmega16hva, at90can32, at90can64, at90can128,
|
||||
-at90pwm216, at90pwm316, atmega32m1, at90usb646, at90usb647, at90usb1286,
|
||||
-at90usb1287, at94k).
|
||||
+at90pwm216, at90pwm316, atmega32c1, atmega32m1, at90usb646, at90usb647,
|
||||
+at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
26
binutils-debian/patches-2.18/55-binutils-2.18-atmega32u4.patch
Executable file
26
binutils-debian/patches-2.18/55-binutils-2.18-atmega32u4.patch
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- gas/config/tc-avr.c.old 2008-03-16 12:57:20.846157400 -0600
|
||||
+++ gas/config/tc-avr.c 2008-03-22 07:46:46.581060000 -0600
|
||||
@@ -174,6 +174,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega32c1", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega32m1", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"atmega32u4", 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.old 2008-03-16 12:57:20.799240400 -0600
|
||||
+++ gas/doc/c-avr.texi 2008-03-22 07:47:42.435982500 -0600
|
||||
@@ -60,8 +60,8 @@ atmega328p, atmega329, atmega329p, atmeg
|
||||
atmega3290p, atmega32hvb, atmega406, atmega64, atmega640, atmega644, atmega644p,
|
||||
atmega128, atmega1280, atmega1281, atmega1284p, atmega645, atmega649,
|
||||
atmega6450, atmega6490, atmega16hva, at90can32, at90can64, at90can128,
|
||||
-at90pwm216, at90pwm316, atmega32c1, atmega32m1, at90usb646, at90usb647,
|
||||
-at90usb1286, at90usb1287, at94k).
|
||||
+at90pwm216, at90pwm316, atmega32c1, atmega32m1, atmega32u4, at90usb646,
|
||||
+at90usb647, at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
memory space (MCU types: atmega2560, atmega2561).
|
||||
34
binutils-debian/patches-2.18/56-binutils-2.18-attiny167.patch
Executable file
34
binutils-debian/patches-2.18/56-binutils-2.18-attiny167.patch
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
Committed
|
||||
Binutils 2.19
|
||||
--------------------------------------------------------------------------------
|
||||
--- include/opcode/avr.h.old 2008-03-25 12:12:41.884348400 -0600
|
||||
+++ include/opcode/avr.h 2008-03-25 12:16:48.575795000 -0600
|
||||
@@ -41,6 +41,7 @@
|
||||
#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX)
|
||||
#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
|
||||
AVR_ISA_SPM | AVR_ISA_BRK)
|
||||
+#define AVR_ISA_TINY3 (AVR_ISA_TINY2 | AVR_ISA_MEGA)
|
||||
#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
|
||||
AVR_ISA_LPMX | AVR_ISA_SPM)
|
||||
#define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA)
|
||||
--- gas/config/tc-avr.c.old 2008-03-25 12:12:41.884348400 -0600
|
||||
+++ gas/config/tc-avr.c 2008-03-25 12:17:31.683886600 -0600
|
||||
@@ -116,6 +116,7 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"at76c711", AVR_ISA_M603, bfd_mach_avr3},
|
||||
{"at90usb82", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
{"at90usb162", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
+ {"attiny167", AVR_ISA_TINY3, bfd_mach_avr3},
|
||||
{"atmega48", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
{"atmega48p", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
{"atmega8", AVR_ISA_M8, bfd_mach_avr4},
|
||||
--- gas/doc/c-avr.texi.old 2008-03-25 12:12:41.853088000 -0600
|
||||
+++ gas/doc/c-avr.texi 2008-03-25 12:17:45.297790800 -0600
|
||||
@@ -45,7 +45,7 @@ attiny45, attiny85, attiny43u, attiny48,
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, at43usb320, at43usb355, at76c711,
|
||||
-at90usb82, at90usb162).
|
||||
+at90usb82, at90usb162, attiny167).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
memory space (MCU types: atmega48, atmega48p atmega8, atmega88, atmega88p,
|
||||
67
binutils-debian/patches-2.18/60-binutils-2.18-bug-2626.patch
Executable file
67
binutils-debian/patches-2.18/60-binutils-2.18-bug-2626.patch
Executable file
|
|
@ -0,0 +1,67 @@
|
|||
Committed, Bug fixed
|
||||
Binutils 2.19
|
||||
|
||||
This patch must come after 51-binutils-2.18-at86rf401.patch, which has
|
||||
already been committed to binutils CVS.
|
||||
--------------------------------------------------------------------------------
|
||||
===================================================================
|
||||
RCS file: /cvs/include/opcode/avr.h,v
|
||||
retrieving revision 1.11
|
||||
retrieving revision 1.12
|
||||
diff -u -r1.11 -r1.12
|
||||
--- include/opcode/avr.h 2008/01/23 17:36:23 1.11
|
||||
+++ include/opcode/avr.h 2008/02/14 13:04:29 1.12
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Opcode table for the Atmel AVR micro controllers.
|
||||
|
||||
- Copyright 2000, 2001, 2004, 2006 Free Software Foundation, Inc.
|
||||
+ Copyright 2000, 2001, 2004, 2006, 2008 Free Software Foundation, Inc.
|
||||
Contributed by Denis Chertykov <denisc@overta.ru>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -34,6 +34,8 @@
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
+/* For the attiny26 which is missing LPM Rd,Z+. */
|
||||
+#define AVR_ISA_2xxe (AVR_ISA_2xxx | AVR_ISA_LPMX)
|
||||
#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX)
|
||||
#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
|
||||
AVR_ISA_SPM | AVR_ISA_BRK)
|
||||
===================================================================
|
||||
RCS file: /cvs/gas/config/tc-avr.c,v
|
||||
retrieving revision 1.50
|
||||
retrieving revision 1.51
|
||||
diff -u -r1.50 -r1.51
|
||||
--- gas/config/tc-avr.c 2008/01/23 17:36:23 1.50
|
||||
+++ gas/config/tc-avr.c 2008/02/14 13:04:29 1.51
|
||||
@@ -1,6 +1,6 @@
|
||||
/* tc-avr.c -- Assembler code for the ATMEL AVR
|
||||
|
||||
- Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
|
||||
+ Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Denis Chertykov <denisc@overta.ru>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
{"at90s2333", AVR_ISA_2xxx, bfd_mach_avr2}, /* XXX -> 4433 */
|
||||
{"at90s2343", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
{"attiny22", AVR_ISA_2xxx, bfd_mach_avr2}, /* XXX -> 2343 */
|
||||
- {"attiny26", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
+ {"attiny26", AVR_ISA_2xxe, bfd_mach_avr2},
|
||||
{"at90s4433", AVR_ISA_2xxx, bfd_mach_avr2},
|
||||
{"at90s4414", AVR_ISA_2xxx, bfd_mach_avr2}, /* XXX -> 8515 */
|
||||
{"at90s4434", AVR_ISA_2xxx, bfd_mach_avr2}, /* XXX -> 8535 */
|
||||
@@ -765,6 +765,12 @@
|
||||
++str;
|
||||
op_mask |= 1;
|
||||
}
|
||||
+
|
||||
+ /* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
|
||||
+ if (!avr_opt.all_opcodes
|
||||
+ && (op_mask & 0x0001)
|
||||
+ && !(avr_mcu->isa & AVR_ISA_MOVW))
|
||||
+ as_bad (_("postincrement not supported"));
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
24
binutils-debian/patches-2.18/70-binutils-2.18-bug-6016.patch
Normal file
24
binutils-debian/patches-2.18/70-binutils-2.18-bug-6016.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
Index: bfd/elf32-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/bfd/elf32-avr.c,v
|
||||
retrieving revision 1.34
|
||||
diff -c -3 -p -r1.34 elf32-avr.c
|
||||
*** bfd/elf32-avr.c 12 Mar 2008 08:36:58 -0000 1.34
|
||||
--- bfd/elf32-avr.c 30 May 2008 15:36:27 -0000
|
||||
*************** elf32_avr_relax_section (bfd *abfd,
|
||||
*** 2034,2040 ****
|
||||
/* Check for local symbols. */
|
||||
isym = (Elf_Internal_Sym *) symtab_hdr->contents;
|
||||
isymend = isym + symtab_hdr->sh_info;
|
||||
! for (; isym < isymend; isym++)
|
||||
{
|
||||
if (isym->st_value == section_offset_of_ret_insn
|
||||
&& isym->st_shndx == sec_shndx)
|
||||
--- 2034,2040 ----
|
||||
/* Check for local symbols. */
|
||||
isym = (Elf_Internal_Sym *) symtab_hdr->contents;
|
||||
isymend = isym + symtab_hdr->sh_info;
|
||||
! for (; isym != NULL && isym < isymend; isym++)
|
||||
{
|
||||
if (isym->st_value == section_offset_of_ret_insn
|
||||
&& isym->st_shndx == sec_shndx)
|
||||
513
binutils-debian/patches-2.20/30-binutils-2.20-avr-size.patch
Normal file
513
binutils-debian/patches-2.20/30-binutils-2.20-avr-size.patch
Normal file
|
|
@ -0,0 +1,513 @@
|
|||
AVR specific only
|
||||
===========================================================
|
||||
--- binutils/size.c 2007-08-06 13:56:14.000000000 -0600
|
||||
+++ binutils/size.c 2007-09-13 09:13:10.281250000 -0600
|
||||
@@ -36,10 +36,31 @@
|
||||
#include "getopt.h"
|
||||
#include "bucomm.h"
|
||||
|
||||
-#ifndef BSD_DEFAULT
|
||||
-#define BSD_DEFAULT 1
|
||||
+typedef enum
|
||||
+{
|
||||
+ format_sysv = 0,
|
||||
+ format_bsd = 1,
|
||||
+ format_avr = 2,
|
||||
+} format_type_t;
|
||||
+
|
||||
+
|
||||
+/* Set the default format. */
|
||||
+#define FORMAT_DEFAULT_SYSV 0
|
||||
+#define FORMAT_DEFAULT_BSD 1
|
||||
+#define FORMAT_DEFAULT_AVR 0
|
||||
+
|
||||
+#if FORMAT_DEFAULT_SYSV
|
||||
+ #define FORMAT_DEFAULT format_sysv
|
||||
+ #define FORMAT_NAME "sysv"
|
||||
+#elif FORMAT_DEFAULT_BSD
|
||||
+ #define FORMAT_DEFAULT format_bsd
|
||||
+ #define FORMAT_NAME "berkeley"
|
||||
+#elif FORMAT_DEFAULT_AVR
|
||||
+ #define FORMAT_DEFAULT format_avr
|
||||
+ #define FORMAT_NAME "avr"
|
||||
#endif
|
||||
|
||||
+
|
||||
/* Program options. */
|
||||
|
||||
static enum
|
||||
@@ -48,9 +69,8 @@ static enum
|
||||
}
|
||||
radix = decimal;
|
||||
|
||||
-/* 0 means use AT&T-style output. */
|
||||
-static int berkeley_format = BSD_DEFAULT;
|
||||
|
||||
+format_type_t format = FORMAT_DEFAULT;
|
||||
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;
|
||||
/* Program exit status. */
|
||||
static int return_code = 0;
|
||||
|
||||
+
|
||||
+/* AVR Size specific stuff */
|
||||
+
|
||||
+#define AVR64 64UL
|
||||
+#define AVR128 128UL
|
||||
+#define AVR256 256UL
|
||||
+#define AVR512 512UL
|
||||
+#define AVR1K 1024UL
|
||||
+#define AVR2K 2048UL
|
||||
+#define AVR4K 4096UL
|
||||
+#define AVR8K 8192UL
|
||||
+#define AVR16K 16384UL
|
||||
+#define AVR20K 20480UL
|
||||
+#define AVR24K 24576UL
|
||||
+#define AVR32K 32768UL
|
||||
+#define AVR36K 36864UL
|
||||
+#define AVR40K 40960UL
|
||||
+#define AVR64K 65536UL
|
||||
+#define AVR68K 69632UL
|
||||
+#define AVR128K 131072UL
|
||||
+#define AVR136K 139264UL
|
||||
+#define AVR200K 204800UL
|
||||
+#define AVR256K 262144UL
|
||||
+#define AVR264K 270336UL
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ char *name;
|
||||
+ long flash;
|
||||
+ long ram;
|
||||
+ long eeprom;
|
||||
+} avr_device_t;
|
||||
+
|
||||
+avr_device_t avr[] =
|
||||
+{
|
||||
+ {"atxmega256a3", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
|
||||
+ {"atxmega256d3", AVR264K, AVR16K, AVR4K},
|
||||
+
|
||||
+ {"atmega2560", AVR256K, AVR8K, AVR4K},
|
||||
+ {"atmega2561", AVR256K, AVR8K, AVR4K},
|
||||
+
|
||||
+ {"atxmega192a3", AVR200K, AVR16K, AVR2K},
|
||||
+ {"atxmega192d3", AVR200K, AVR16K, AVR2K},
|
||||
+
|
||||
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
|
||||
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
|
||||
+
|
||||
+ {"at43usb320", AVR128K, 608UL, 0UL},
|
||||
+ {"at90can128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"at90usb1286", AVR128K, AVR8K, AVR4K},
|
||||
+ {"at90usb1287", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega128", AVR128K, AVR4K, AVR4K},
|
||||
+ {"atmega1280", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1281", AVR128K, AVR8K, AVR4K},
|
||||
+ {"atmega1284p", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega128rfa1", AVR128K, AVR16K, AVR4K},
|
||||
+ {"atmega103", AVR128K, 4000UL, AVR4K},
|
||||
+
|
||||
+ {"atxmega64a1", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64a3", AVR68K, AVR4K, AVR2K},
|
||||
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"at90can64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90scr100", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
|
||||
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega640", AVR64K, AVR8K, AVR4K},
|
||||
+ {"atmega644", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega644pa", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega645p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6450p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega649p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490a", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega6490p", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64c1", AVR64K, AVR4K, AVR2K},
|
||||
+ {"atmega64hve", AVR64K, AVR4K, AVR1K},
|
||||
+ {"atmega64m1", AVR64K, AVR4K, AVR2K},
|
||||
+
|
||||
+ {"atmega406", AVR40K, AVR2K, AVR512},
|
||||
+
|
||||
+ {"atxmega32a4", AVR36K, AVR4K, AVR1K},
|
||||
+ {"atxmega32d4", AVR36K, AVR4K, AVR1K},
|
||||
+
|
||||
+ {"at90can32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"at94k", AVR32K, AVR4K, 0UL},
|
||||
+ {"atmega32", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega323", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324a", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega324pa", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega328", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega329pa", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
|
||||
+ {"atmega32u2", AVR32K, AVR1K, AVR1K},
|
||||
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
|
||||
+ {"atmega32u6", AVR32K, 2560UL, AVR1K},
|
||||
+
|
||||
+ {"at43usb355", AVR24K, 1120UL, 0UL},
|
||||
+
|
||||
+ {"atxmega16a4", AVR20K, AVR2K, AVR1K},
|
||||
+ {"atxmega16d4", AVR20K, AVR2K, AVR1K},
|
||||
+
|
||||
+ {"at76c711", AVR16K, AVR2K, 0UL},
|
||||
+ {"at90pwm216", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90pwm316", AVR16K, AVR1K, AVR512},
|
||||
+ {"at90usb162", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega161", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega162", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega163", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega164p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega165p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega168p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169a", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169p", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega169pa", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16hva", AVR16K, 768UL, AVR256},
|
||||
+ {"atmega16hva2", AVR16K, AVR1K, AVR256},
|
||||
+ {"atmega16hvb", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16m1", AVR16K, AVR1K, AVR512},
|
||||
+ {"atmega16u2", AVR16K, AVR512, AVR512},
|
||||
+ {"atmega16u4", AVR16K, 1280UL, AVR512},
|
||||
+ {"attiny167", AVR16K, AVR512, AVR512},
|
||||
+
|
||||
+ {"at90c8534", AVR8K, 352UL, AVR512},
|
||||
+ {"at90pwm1", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm2b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm3b", AVR8K, AVR512, AVR512},
|
||||
+ {"at90pwm81", AVR8K, AVR256, AVR512},
|
||||
+ {"at90s8515", AVR8K, AVR512, AVR512},
|
||||
+ {"at90s8535", AVR8K, AVR512, AVR512},
|
||||
+ {"at90usb82", AVR8K, AVR512, AVR512},
|
||||
+ {"ata6289", AVR8K, AVR512, 320UL},
|
||||
+ {"atmega8", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8515", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega8535", AVR8K, AVR512, AVR512},
|
||||
+ {"atmega88", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88a", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88p", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega88pa", AVR8K, AVR1K, AVR512},
|
||||
+ {"atmega8hva", AVR8K, 768UL, AVR256},
|
||||
+ {"atmega8u2", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny84", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny85", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny861", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny861a", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny87", AVR8K, AVR512, AVR512},
|
||||
+ {"attiny88", AVR8K, AVR512, AVR64},
|
||||
+
|
||||
+ {"at90s4414", AVR4K, 352UL, AVR256},
|
||||
+ {"at90s4433", AVR4K, AVR128, AVR256},
|
||||
+ {"at90s4434", AVR4K, 352UL, AVR256},
|
||||
+ {"atmega48", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48a", AVR4K, AVR512, AVR256},
|
||||
+ {"atmega48p", AVR4K, AVR512, AVR256},
|
||||
+ {"attiny4313", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny43u", AVR4K, AVR256, AVR64},
|
||||
+ {"attiny44", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny44a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny45", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny461a", AVR4K, AVR256, AVR256},
|
||||
+ {"attiny48", AVR4K, AVR256, AVR64},
|
||||
+
|
||||
+ {"at86rf401", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2313", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2323", AVR2K, AVR128, AVR128},
|
||||
+ {"at90s2333", AVR2K, 224UL, AVR128},
|
||||
+ {"at90s2343", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny20", AVR2K, AVR128, 0UL},
|
||||
+ {"attiny22", AVR2K, 224UL, AVR128},
|
||||
+ {"attiny2313", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny2313a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny24a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny25", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny26", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny261a", AVR2K, AVR128, AVR128},
|
||||
+ {"attiny28", AVR2K, 0UL, 0UL},
|
||||
+ {"attiny40", AVR2K, AVR256, 0UL},
|
||||
+
|
||||
+ {"at90s1200", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny9", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny10", AVR1K, 32UL, 0UL},
|
||||
+ {"attiny11", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny12", AVR1K, 0UL, AVR64},
|
||||
+ {"attiny13", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny13a", AVR1K, AVR64, AVR64},
|
||||
+ {"attiny15", AVR1K, 0UL, AVR64},
|
||||
+
|
||||
+ {"attiny4", AVR512, 32UL, 0UL},
|
||||
+ {"attiny5", AVR512, 32UL, 0UL},
|
||||
+};
|
||||
+
|
||||
+static char *avrmcu = NULL;
|
||||
+
|
||||
+
|
||||
static char *target = NULL;
|
||||
|
||||
/* Forward declarations. */
|
||||
@@ -79,7 +329,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\
|
||||
- -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\
|
||||
+ -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\
|
||||
+ --mcu=<avrmcu> MCU name for AVR format only\n\
|
||||
-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)
|
||||
-h --help Display this information\n\
|
||||
-v --version Display the program's version\n\
|
||||
\n"),
|
||||
-#if BSD_DEFAULT
|
||||
- "berkeley"
|
||||
-#else
|
||||
- "sysv"
|
||||
-#endif
|
||||
+FORMAT_NAME
|
||||
);
|
||||
list_supported_targets (program_name, stream);
|
||||
if (REPORT_BUGS_TO[0] && status == 0)
|
||||
@@ -103,6 +351,7 @@ usage (FILE *stream, int status)
|
||||
#define OPTION_FORMAT (200)
|
||||
#define OPTION_RADIX (OPTION_FORMAT + 1)
|
||||
#define OPTION_TARGET (OPTION_RADIX + 1)
|
||||
+#define OPTION_MCU (OPTION_TARGET + 1)
|
||||
|
||||
static struct option long_options[] =
|
||||
{
|
||||
@@ -110,6 +360,7 @@ static struct option long_options[] =
|
||||
{"format", required_argument, 0, OPTION_FORMAT},
|
||||
{"radix", required_argument, 0, OPTION_RADIX},
|
||||
{"target", required_argument, 0, OPTION_TARGET},
|
||||
+ {"mcu", required_argument, 0, 203},
|
||||
{"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)
|
||||
bfd_init ();
|
||||
set_default_bfd_target ();
|
||||
|
||||
- while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options,
|
||||
+ while ((c = getopt_long (argc, argv, "ABCHhVvdfotx", long_options,
|
||||
(int *) 0)) != EOF)
|
||||
switch (c)
|
||||
{
|
||||
@@ -150,11 +401,15 @@ main (int argc, char **argv)
|
||||
{
|
||||
case 'B':
|
||||
case 'b':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
+ break;
|
||||
+ case 'A':
|
||||
+ case 'a':
|
||||
+ format = format_avr;
|
||||
break;
|
||||
default:
|
||||
non_fatal (_("invalid argument to --format: %s"), optarg);
|
||||
@@ -162,6 +416,10 @@ main (int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
|
||||
+ case OPTION_MCU:
|
||||
+ avrmcu = optarg;
|
||||
+ break;
|
||||
+
|
||||
case OPTION_TARGET:
|
||||
target = optarg;
|
||||
break;
|
||||
@@ -190,11 +449,14 @@ main (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
- berkeley_format = 0;
|
||||
+ format = format_sysv;
|
||||
break;
|
||||
case 'B':
|
||||
- berkeley_format = 1;
|
||||
+ format = format_bsd;
|
||||
break;
|
||||
+ case 'C':
|
||||
+ format = format_avr;
|
||||
+ break;
|
||||
case 'v':
|
||||
case 'V':
|
||||
show_version = 1;
|
||||
@@ -240,7 +501,7 @@ main (int argc, char **argv)
|
||||
for (; optind < argc;)
|
||||
display_file (argv[optind++]);
|
||||
|
||||
- if (show_totals && berkeley_format)
|
||||
+ if (show_totals && format == format_bsd)
|
||||
{
|
||||
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
|
||||
|
||||
@@ -599,13 +861,117 @@ print_sysv_format (bfd *file)
|
||||
printf ("\n\n");
|
||||
}
|
||||
|
||||
+
|
||||
+static avr_device_t *
|
||||
+avr_find_device (void)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ if (avrmcu != NULL)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++)
|
||||
+ {
|
||||
+ if (strcmp(avr[i].name, avrmcu) == 0)
|
||||
+ {
|
||||
+ /* Match found */
|
||||
+ return (&avr[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+print_avr_format (bfd *file)
|
||||
+{
|
||||
+ char *avr_name = "Unknown";
|
||||
+ int flashmax = 0;
|
||||
+ int rammax = 0;
|
||||
+ int eeprommax = 0;
|
||||
+ asection *section;
|
||||
+ bfd_size_type datasize = 0;
|
||||
+ bfd_size_type textsize = 0;
|
||||
+ bfd_size_type bsssize = 0;
|
||||
+ bfd_size_type bootloadersize = 0;
|
||||
+ bfd_size_type noinitsize = 0;
|
||||
+ bfd_size_type eepromsize = 0;
|
||||
+
|
||||
+ avr_device_t *avrdevice = avr_find_device();
|
||||
+ if (avrdevice != NULL)
|
||||
+ {
|
||||
+ avr_name = avrdevice->name;
|
||||
+ flashmax = avrdevice->flash;
|
||||
+ rammax = avrdevice->ram;
|
||||
+ eeprommax = avrdevice->eeprom;
|
||||
+ }
|
||||
+
|
||||
+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL)
|
||||
+ datasize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL)
|
||||
+ textsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL)
|
||||
+ bsssize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL)
|
||||
+ bootloadersize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL)
|
||||
+ noinitsize = bfd_section_size (file, section);
|
||||
+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL)
|
||||
+ eepromsize = bfd_section_size (file, section);
|
||||
+
|
||||
+ bfd_size_type text = textsize + datasize + bootloadersize;
|
||||
+ bfd_size_type data = datasize + bsssize + noinitsize;
|
||||
+ bfd_size_type eeprom = eepromsize;
|
||||
+
|
||||
+ printf ("AVR Memory Usage\n"
|
||||
+ "----------------\n"
|
||||
+ "Device: %s\n\n", avr_name);
|
||||
+
|
||||
+ /* Text size */
|
||||
+ printf ("Program:%8ld bytes", text);
|
||||
+ if (flashmax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.text + .data + .bootloader)\n\n");
|
||||
+
|
||||
+ /* Data size */
|
||||
+ printf ("Data: %8ld bytes", data);
|
||||
+ if (rammax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)data / rammax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.data + .bss + .noinit)\n\n");
|
||||
+
|
||||
+ /* EEPROM size */
|
||||
+ if (eeprom > 0)
|
||||
+ {
|
||||
+ printf ("EEPROM: %8ld bytes", eeprom);
|
||||
+ if (eeprommax > 0)
|
||||
+ {
|
||||
+ printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100);
|
||||
+ }
|
||||
+ printf ("\n(.eeprom)\n\n");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void
|
||||
print_sizes (bfd *file)
|
||||
{
|
||||
if (show_common)
|
||||
calculate_common_size (file);
|
||||
- if (berkeley_format)
|
||||
- print_berkeley_format (file);
|
||||
- else
|
||||
- print_sysv_format (file);
|
||||
+ switch (format)
|
||||
+ {
|
||||
+ case format_sysv:
|
||||
+ print_sysv_format (file);
|
||||
+ break;
|
||||
+ case format_bsd:
|
||||
+ print_berkeley_format (file);
|
||||
+ break;
|
||||
+ case format_avr:
|
||||
+ default:
|
||||
+ print_avr_format (file);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
5505
binutils-debian/patches-2.20/31-binutils-2.20-avr-coff.patch
Normal file
5505
binutils-debian/patches-2.20/31-binutils-2.20-avr-coff.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,38 @@
|
|||
diff -ruw 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
|
||||
@@ -7,6 +7,9 @@
|
||||
text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
|
||||
data (rw!x) : ORIGIN = $DATA_ORIGIN, 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 @@
|
||||
${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) }
|
||||
31
binutils-debian/patches-2.20/34-binutils-2.20-as-dwarf.patch
Normal file
31
binutils-debian/patches-2.20/34-binutils-2.20-as-dwarf.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
diff -ru binutils-2.19.1.orig/gas/config/tc-avr.c binutils-2.19.1/gas/config/tc-avr.c
|
||||
--- gas/config/tc-avr.c Fri Aug 29 19:58:02 2008
|
||||
+++ gas/config/tc-avr.c Thu Apr 16 20:44:54 2009
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "as.h"
|
||||
#include "safe-ctype.h"
|
||||
#include "subsegs.h"
|
||||
+#include "dwarf2dbg.h"
|
||||
|
||||
struct avr_opcodes_s
|
||||
{
|
||||
@@ -1336,6 +1337,7 @@
|
||||
if (!avr_opt.all_opcodes && (opcode->isa & avr_mcu->isa) != opcode->isa)
|
||||
as_bad (_("illegal opcode %s for mcu %s"), opcode->name, avr_mcu->name);
|
||||
|
||||
+ 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 -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
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
diff -ru binutils-2.19.1.orig/gas/dwarf2dbg.c binutils-2.19.1/gas/dwarf2dbg.c
|
||||
--- gas/dwarf2dbg.c Tue Aug 5 11:13:48 2008
|
||||
+++ gas/dwarf2dbg.c Thu Apr 16 20:43:27 2009
|
||||
@@ -99,8 +99,11 @@
|
||||
Note: If you want to change this, you'll have to update the
|
||||
"standard_opcode_lengths" table that is emitted below in
|
||||
out_debug_line(). */
|
||||
+#ifndef TC_AVR
|
||||
#define DWARF2_LINE_OPCODE_BASE 13
|
||||
-
|
||||
+#else
|
||||
+#define DWARF2_LINE_OPCODE_BASE 10
|
||||
+#endif
|
||||
#ifndef DWARF2_LINE_BASE
|
||||
/* Minimum line offset in a special line info. opcode. This value
|
||||
was chosen to give a reasonable range of values. */
|
||||
@@ -1384,9 +1387,11 @@
|
||||
out_byte (0); /* DW_LNS_set_basic_block */
|
||||
out_byte (0); /* DW_LNS_const_add_pc */
|
||||
out_byte (1); /* DW_LNS_fixed_advance_pc */
|
||||
+#ifndef TC_AVR
|
||||
out_byte (0); /* DW_LNS_set_prologue_end */
|
||||
out_byte (0); /* DW_LNS_set_epilogue_begin */
|
||||
out_byte (1); /* DW_LNS_set_isa */
|
||||
+#endif
|
||||
|
||||
out_file_list ();
|
||||
|
||||
666
binutils-debian/patches-2.20/50-binutils-2.20-xmega.patch
Normal file
666
binutils-debian/patches-2.20/50-binutils-2.20-xmega.patch
Normal file
|
|
@ -0,0 +1,666 @@
|
|||
avrxmega1
|
||||
avrxmega2
|
||||
avrxmega3
|
||||
avrxmega4
|
||||
avrxmega5
|
||||
avrxmega6
|
||||
avrxmega7
|
||||
atxmega16a4
|
||||
atxmega16d4
|
||||
atxmega32d4
|
||||
atxmega32a4
|
||||
atxmega64a3
|
||||
atxmega64d3
|
||||
atxmega64a1
|
||||
atxmega128a3
|
||||
atxmega128d3
|
||||
atxmega192a3
|
||||
atxmega192d3
|
||||
atxmega256a3
|
||||
atxmega256a3b
|
||||
atxmega256d3
|
||||
atxmega128a1
|
||||
===========================================================
|
||||
--- bfd/archures.c.old 2009-11-30 15:18:16.328125000 -0700
|
||||
+++ bfd/archures.c 2009-11-30 15:23:13.062500000 -0700
|
||||
@@ -357,6 +357,13 @@ DESCRIPTION
|
||||
.#define bfd_mach_avr5 5
|
||||
.#define bfd_mach_avr51 51
|
||||
.#define bfd_mach_avr6 6
|
||||
+.#define bfd_mach_avrxmega1 101
|
||||
+.#define bfd_mach_avrxmega2 102
|
||||
+.#define bfd_mach_avrxmega3 103
|
||||
+.#define bfd_mach_avrxmega4 104
|
||||
+.#define bfd_mach_avrxmega5 105
|
||||
+.#define bfd_mach_avrxmega6 106
|
||||
+.#define bfd_mach_avrxmega7 107
|
||||
. bfd_arch_bfin, {* ADI Blackfin *}
|
||||
.#define bfd_mach_bfin 1
|
||||
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
|
||||
--- bfd/bfd-in2.h.old 2009-11-30 15:18:23.968750000 -0700
|
||||
+++ bfd/bfd-in2.h 2009-11-30 15:23:34.406250000 -0700
|
||||
@@ -1979,6 +1979,13 @@ enum bfd_architecture
|
||||
#define bfd_mach_avr5 5
|
||||
#define bfd_mach_avr51 51
|
||||
#define bfd_mach_avr6 6
|
||||
+#define bfd_mach_avrxmega1 101
|
||||
+#define bfd_mach_avrxmega2 102
|
||||
+#define bfd_mach_avrxmega3 103
|
||||
+#define bfd_mach_avrxmega4 104
|
||||
+#define bfd_mach_avrxmega5 105
|
||||
+#define bfd_mach_avrxmega6 106
|
||||
+#define bfd_mach_avrxmega7 107
|
||||
bfd_arch_bfin, /* ADI Blackfin */
|
||||
#define bfd_mach_bfin 1
|
||||
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
|
||||
--- bfd/cpu-avr.c.old 2009-11-30 15:18:34.531250000 -0700
|
||||
+++ bfd/cpu-avr.c 2009-11-30 15:23:13.062500000 -0700
|
||||
@@ -126,7 +126,29 @@ static const bfd_arch_info_type arch_inf
|
||||
N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
|
||||
|
||||
/* 3-Byte PC. */
|
||||
- N (22, bfd_mach_avr6, "avr:6", FALSE, NULL)
|
||||
+ N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
|
||||
+
|
||||
+ /* Xmega 1 */
|
||||
+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
|
||||
+
|
||||
+ /* Xmega 2 */
|
||||
+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
|
||||
+
|
||||
+ /* Xmega 3 */
|
||||
+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
|
||||
+
|
||||
+ /* Xmega 4 */
|
||||
+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
|
||||
+
|
||||
+ /* Xmega 5 */
|
||||
+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
|
||||
+
|
||||
+ /* Xmega 6 */
|
||||
+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
|
||||
+
|
||||
+ /* Xmega 7 */
|
||||
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
|
||||
+
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_avr_arch =
|
||||
--- bfd/elf32-avr.c.old 2009-11-30 15:18:55.906250000 -0700
|
||||
+++ bfd/elf32-avr.c 2009-11-30 15:23:13.109375000 -0700
|
||||
@@ -1328,6 +1328,34 @@ bfd_elf_avr_final_write_processing (bfd
|
||||
case bfd_mach_avr6:
|
||||
val = E_AVR_MACH_AVR6;
|
||||
break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega1:
|
||||
+ val = E_AVR_MACH_XMEGA1;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega2:
|
||||
+ val = E_AVR_MACH_XMEGA2;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega3:
|
||||
+ val = E_AVR_MACH_XMEGA3;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega4:
|
||||
+ val = E_AVR_MACH_XMEGA4;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega5:
|
||||
+ val = E_AVR_MACH_XMEGA5;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega6:
|
||||
+ val = E_AVR_MACH_XMEGA6;
|
||||
+ break;
|
||||
+
|
||||
+ case bfd_mach_avrxmega7:
|
||||
+ val = E_AVR_MACH_XMEGA7;
|
||||
+ break;
|
||||
}
|
||||
|
||||
elf_elfheader (abfd)->e_machine = EM_AVR;
|
||||
@@ -1390,6 +1418,34 @@ elf32_avr_object_p (bfd *abfd)
|
||||
case E_AVR_MACH_AVR6:
|
||||
e_set = bfd_mach_avr6;
|
||||
break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA1:
|
||||
+ e_set = bfd_mach_avrxmega1;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA2:
|
||||
+ e_set = bfd_mach_avrxmega2;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA3:
|
||||
+ e_set = bfd_mach_avrxmega3;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA4:
|
||||
+ e_set = bfd_mach_avrxmega4;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA5:
|
||||
+ e_set = bfd_mach_avrxmega5;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA6:
|
||||
+ e_set = bfd_mach_avrxmega6;
|
||||
+ break;
|
||||
+
|
||||
+ case E_AVR_MACH_XMEGA7:
|
||||
+ e_set = bfd_mach_avrxmega7;
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
|
||||
--- gas/config/tc-avr.c.old 2009-11-30 15:19:11.593750000 -0700
|
||||
+++ gas/config/tc-avr.c 2009-11-30 15:24:14.812500000 -0700
|
||||
@@ -28,20 +28,21 @@
|
||||
|
||||
struct avr_opcodes_s
|
||||
{
|
||||
- char * name;
|
||||
- char * constraints;
|
||||
- int insn_size; /* In words. */
|
||||
- int isa;
|
||||
+ char *name;
|
||||
+ char *constraints;
|
||||
+ char *opcode;
|
||||
+ int insn_size; /* In words. */
|
||||
+ int isa;
|
||||
unsigned int bin_opcode;
|
||||
};
|
||||
|
||||
#define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
|
||||
-{#NAME, CONSTR, SIZE, ISA, BIN},
|
||||
+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
|
||||
|
||||
struct avr_opcodes_s avr_opcodes[] =
|
||||
{
|
||||
#include "opcode/avr.h"
|
||||
- {NULL, NULL, 0, 0, 0}
|
||||
+ {NULL, NULL, NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
const char comment_chars[] = ";";
|
||||
@@ -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},
|
||||
+ {"avrxmega1", AVR_ISA_XMEGA, bfd_mach_avrxmega1},
|
||||
+ {"avrxmega2", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
|
||||
+ {"avrxmega3", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
|
||||
+ {"avrxmega4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
|
||||
+ {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
|
||||
+ {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
|
||||
{"attiny11", AVR_ISA_AVR1, bfd_mach_avr1},
|
||||
{"attiny12", AVR_ISA_AVR1, bfd_mach_avr1},
|
||||
@@ -186,6 +194,21 @@ static struct mcu_type_s mcu_types[] =
|
||||
{"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},
|
||||
+ {"atxmega16d4", 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},
|
||||
+ {"atxmega128a3", 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},
|
||||
+ {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
|
||||
+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
@@ -363,6 +386,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"
|
||||
+ " avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
|
||||
+ " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
|
||||
+ " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
|
||||
" or immediate microcontroller name.\n"));
|
||||
fprintf (stream,
|
||||
_(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
|
||||
@@ -790,7 +818,12 @@ avr_operand (struct avr_opcodes_s *opcod
|
||||
if (*str == '+')
|
||||
{
|
||||
++str;
|
||||
- op_mask |= 1;
|
||||
+ char *s;
|
||||
+ for (s = opcode->opcode; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ op_mask |= (1 << (15 - (s - opcode->opcode)));
|
||||
+ }
|
||||
}
|
||||
|
||||
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
|
||||
@@ -907,6 +940,16 @@ avr_operand (struct avr_opcodes_s *opcod
|
||||
}
|
||||
break;
|
||||
|
||||
+ case 'E':
|
||||
+ {
|
||||
+ unsigned int x;
|
||||
+
|
||||
+ x = avr_get_constant (str, 15);
|
||||
+ str = input_line_pointer;
|
||||
+ op_mask |= (x << 4);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case '?':
|
||||
break;
|
||||
|
||||
--- gas/doc/c-avr.texi.old 2009-11-30 15:19:31.656250000 -0700
|
||||
+++ gas/doc/c-avr.texi 2009-11-30 15:24:14.812500000 -0700
|
||||
@@ -76,6 +76,27 @@ at90can128, at90usb1286, at90usb1287).
|
||||
Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
|
||||
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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
+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).
|
||||
+
|
||||
@cindex @code{-mall-opcodes} command line option, AVR
|
||||
@item -mall-opcodes
|
||||
Accept all AVR opcodes, even if not supported by @code{-mmcu}.
|
||||
--- include/elf/avr.h.old 2009-11-30 15:19:50.421875000 -0700
|
||||
+++ include/elf/avr.h 2009-11-30 15:23:13.062500000 -0700
|
||||
@@ -40,6 +40,13 @@
|
||||
#define E_AVR_MACH_AVR5 5
|
||||
#define E_AVR_MACH_AVR51 51
|
||||
#define E_AVR_MACH_AVR6 6
|
||||
+#define E_AVR_MACH_XMEGA1 101
|
||||
+#define E_AVR_MACH_XMEGA2 102
|
||||
+#define E_AVR_MACH_XMEGA3 103
|
||||
+#define E_AVR_MACH_XMEGA4 104
|
||||
+#define E_AVR_MACH_XMEGA5 105
|
||||
+#define E_AVR_MACH_XMEGA6 106
|
||||
+#define E_AVR_MACH_XMEGA7 107
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_avr_reloc_type)
|
||||
--- include/opcode/avr.h.old 2009-11-30 15:20:00.968750000 -0700
|
||||
+++ include/opcode/avr.h 2009-11-30 15:23:13.046875000 -0700
|
||||
@@ -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) */
|
||||
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
|
||||
+#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
|
||||
+#define AVR_ISA_DES 0x4000 /* device has DES */
|
||||
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
@@ -48,6 +50,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_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
|
||||
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
|
||||
|
||||
#define AVR_ISA_AVR1 AVR_ISA_TINY1
|
||||
#define AVR_ISA_AVR2 AVR_ISA_2xxx
|
||||
@@ -108,6 +112,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)
|
||||
+ E - immediate value from 0 to 15, shifted left by 4 (des)
|
||||
? - 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 @@ 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)
|
||||
-AVR_INSN (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
+AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
|
||||
|
||||
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 @@ 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)
|
||||
+
|
||||
--- ld/Makefile.am.old 2009-11-30 15:20:22.359375000 -0700
|
||||
+++ ld/Makefile.am 2009-11-30 15:23:13.062500000 -0700
|
||||
@@ -142,6 +142,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 \
|
||||
@@ -646,6 +653,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)"
|
||||
--- ld/Makefile.in.old 2009-11-30 15:20:37.187500000 -0700
|
||||
+++ ld/Makefile.in 2009-11-30 15:23:13.078125000 -0700
|
||||
@@ -393,6 +393,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 \
|
||||
@@ -1476,6 +1483,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)"
|
||||
--- ld/configure.tgt.old 2009-11-30 15:20:51.609375000 -0700
|
||||
+++ ld/configure.tgt 2009-11-30 15:23:13.078125000 -0700
|
||||
@@ -107,7 +107,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"
|
||||
+ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
|
||||
;;
|
||||
bfin-*-elf) targ_emul=elf32bfin;
|
||||
targ_extra_emuls="elf32bfinfd"
|
||||
--- ld/emultempl/avrelf.em.old 2009-11-30 15:21:18.406250000 -0700
|
||||
+++ ld/emultempl/avrelf.em 2009-11-30 15:23:13.078125000 -0700
|
||||
@@ -71,8 +71,10 @@ avr_elf_${EMULATION_NAME}_before_allocat
|
||||
|
||||
gld${EMULATION_NAME}_before_allocation ();
|
||||
|
||||
- /* We only need stubs for the avr6 family. */
|
||||
- if (strcmp ("${EMULATION_NAME}","avr6"))
|
||||
+ /* We only need stubs for avr6, avrxmega6, and avrxmega7. */
|
||||
+ if (strcmp ("${EMULATION_NAME}","avr6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega6")
|
||||
+ && strcmp ("${EMULATION_NAME}","avrxmega7") )
|
||||
avr_no_stubs = TRUE;
|
||||
|
||||
avr_elf_set_global_bfd_parameters ();
|
||||
--- opcodes/avr-dis.c.old 2009-11-30 15:21:35.187500000 -0700
|
||||
+++ opcodes/avr-dis.c 2009-11-30 15:23:13.046875000 -0700
|
||||
@@ -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,
|
||||
- char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
+ char *opcode_str, char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
{
|
||||
int ok = 1;
|
||||
*sym = 0;
|
||||
@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned
|
||||
|
||||
case 'z':
|
||||
*buf++ = 'Z';
|
||||
- if (insn & 0x1)
|
||||
- *buf++ = '+';
|
||||
+
|
||||
+ /* Check for post-increment. */
|
||||
+ char *s;
|
||||
+ for (s = opcode_str; *s; ++s)
|
||||
+ {
|
||||
+ if (*s == '+')
|
||||
+ {
|
||||
+ *buf++ = '+';
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
*buf = '\0';
|
||||
if (AVR_UNDEF_P (insn))
|
||||
sprintf (comment, _("undefined"));
|
||||
@@ -226,6 +236,10 @@ avr_operand (unsigned int insn, unsigned
|
||||
sprintf (comment, "%d", x);
|
||||
}
|
||||
break;
|
||||
+
|
||||
+ case 'E':
|
||||
+ sprintf (buf, "%d", (insn >> 4) & 15);
|
||||
+ break;
|
||||
|
||||
case '?':
|
||||
*buf = '\0';
|
||||
@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
|
||||
|
||||
if (opcode->name)
|
||||
{
|
||||
- char *op = opcode->constraints;
|
||||
+ char *constraints = opcode->constraints;
|
||||
+ char *opcode_str = opcode->opcode;
|
||||
|
||||
insn2 = 0;
|
||||
ok = 1;
|
||||
@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
|
||||
cmd_len = 4;
|
||||
}
|
||||
|
||||
- if (*op && *op != '?')
|
||||
+ if (*constraints && *constraints != '?')
|
||||
{
|
||||
- int regs = REGISTER_P (*op);
|
||||
+ int regs = REGISTER_P (*constraints);
|
||||
|
||||
- ok = avr_operand (insn, insn2, addr, *op, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
+ ok = avr_operand (insn, insn2, addr, *constraints, opcode_str, op1, comment1, 0, &sym_op1, &sym_addr1);
|
||||
|
||||
- if (ok && *(++op) == ',')
|
||||
- ok = avr_operand (insn, insn2, addr, *(++op), op2,
|
||||
+ if (ok && *(++constraints) == ',')
|
||||
+ ok = avr_operand (insn, insn2, addr, *(++constraints), opcode_str, op2,
|
||||
*comment1 ? comment2 : comment1, regs, &sym_op2, &sym_addr2);
|
||||
}
|
||||
}
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega1.sh 2009-11-30 15:23:13.093750000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:101
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega2.sh 2009-11-30 15:23:13.093750000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:102
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega3.sh 2009-11-30 15:23:13.093750000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:103
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega4.sh 2009-11-30 15:23:13.093750000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:104
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega5.sh 2009-11-30 15:23:13.093750000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:105
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega6.sh 2009-11-30 15:23:13.109375000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:106
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
--- /dev/null 2006-11-30 17:00:00.000000000 -0700
|
||||
+++ ld/emulparams/avrxmega7.sh 2009-11-30 15:23:13.109375000 -0700
|
||||
@@ -0,0 +1,12 @@
|
||||
+ARCH=avr:107
|
||||
+MACHINE=
|
||||
+SCRIPT_NAME=avr
|
||||
+OUTPUT_FORMAT="elf32-avr"
|
||||
+MAXPAGESIZE=1
|
||||
+EMBEDDED=yes
|
||||
+TEMPLATE_NAME=elf32
|
||||
+
|
||||
+TEXT_LENGTH=1024K
|
||||
+DATA_ORIGIN=0x802000
|
||||
+DATA_LENGTH=0xffa0
|
||||
+EXTRA_EM_FILE=avrelf
|
||||
136
binutils-debian/patches-2.20/51-binutils-2.20-new-devices.patch
Normal file
136
binutils-debian/patches-2.20/51-binutils-2.20-new-devices.patch
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
Only in binutils-2.20.patch51: binutils-2.20
|
||||
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 @@
|
||||
{"atmega32u2", 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},
|
||||
{"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
+ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
+ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"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 @@
|
||||
{"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
|
||||
{"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega161", AVR_ISA_M161, bfd_mach_avr5},
|
||||
{"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega163", AVR_ISA_M161, bfd_mach_avr5},
|
||||
+ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega165", 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},
|
||||
{"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega169", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega169p", 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},
|
||||
{"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega3250", 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},
|
||||
{"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega3290", 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},
|
||||
{"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
{"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
|
||||
+ {"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},
|
||||
{"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 @@
|
||||
|
||||
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,
|
||||
-attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
|
||||
-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).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: at43usb355, at76c711).
|
||||
@@ -58,20 +59,25 @@
|
||||
atmega16u2, atmega32u2).
|
||||
|
||||
Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
-memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
|
||||
-atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
|
||||
-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).
|
||||
|
||||
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, 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).
|
||||
+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).
|
||||
|
||||
Instruction set avr51 is for the enhanced AVR core with exactly 128K program
|
||||
memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
|
||||
91
binutils-debian/patches.old/dollars.patch
Normal file
91
binutils-debian/patches.old/dollars.patch
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
diff -rc binutils-2.17.orig/gas/as.c binutils-2.17/gas/as.c
|
||||
*** binutils-2.17.orig/gas/as.c 2006-02-09 01:07:41.000000000 +0100
|
||||
--- binutils-2.17/gas/as.c 2007-04-22 10:48:17.000000000 +0200
|
||||
***************
|
||||
*** 347,352 ****
|
||||
--- 347,355 ----
|
||||
--listing-cont-lines set the maximum number of continuation lines used\n\
|
||||
for the output data column of the listing\n"));
|
||||
fprintf (stream, _("\
|
||||
+ --allow-dollars always allow dollars in function names\n"));
|
||||
+
|
||||
+ fprintf (stream, _("\
|
||||
@FILE read options from FILE\n"));
|
||||
|
||||
md_show_usage (stream);
|
||||
***************
|
||||
*** 428,434 ****
|
||||
OPTION_AL,
|
||||
OPTION_HASH_TABLE_SIZE,
|
||||
OPTION_REDUCE_MEMORY_OVERHEADS,
|
||||
! OPTION_WARN_FATAL
|
||||
/* When you add options here, check that they do
|
||||
not collide with OPTION_MD_BASE. See as.h. */
|
||||
};
|
||||
--- 431,438 ----
|
||||
OPTION_AL,
|
||||
OPTION_HASH_TABLE_SIZE,
|
||||
OPTION_REDUCE_MEMORY_OVERHEADS,
|
||||
! OPTION_WARN_FATAL,
|
||||
! OPTION_ALLOW_DOLLARS
|
||||
/* When you add options here, check that they do
|
||||
not collide with OPTION_MD_BASE. See as.h. */
|
||||
};
|
||||
***************
|
||||
*** 454,459 ****
|
||||
--- 458,464 ----
|
||||
,{"noexecstack", no_argument, NULL, OPTION_NOEXECSTACK}
|
||||
#endif
|
||||
,{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
|
||||
+ ,{"allow-dollars", no_argument, NULL, OPTION_ALLOW_DOLLARS}
|
||||
,{"gdwarf-2", no_argument, NULL, OPTION_GDWARF2}
|
||||
/* GCC uses --gdwarf-2 but GAS uses to use --gdwarf2,
|
||||
so we keep it here for backwards compatibility. */
|
||||
***************
|
||||
*** 763,768 ****
|
||||
--- 768,777 ----
|
||||
flag_execstack = 1;
|
||||
flag_noexecstack = 0;
|
||||
break;
|
||||
+
|
||||
+ case OPTION_ALLOW_DOLLARS:
|
||||
+ flag_allow_dollars = 1;
|
||||
+ break;
|
||||
|
||||
case OPTION_NOEXECSTACK:
|
||||
flag_noexecstack = 1;
|
||||
Only in binutils-2.17/gas: as.c~
|
||||
Only in binutils-2.17/gas: as.c.rej
|
||||
diff -rc binutils-2.17.orig/gas/as.h binutils-2.17/gas/as.h
|
||||
*** binutils-2.17.orig/gas/as.h 2006-02-09 12:54:15.000000000 +0100
|
||||
--- binutils-2.17/gas/as.h 2007-04-22 10:41:00.000000000 +0200
|
||||
***************
|
||||
*** 392,397 ****
|
||||
--- 392,400 ----
|
||||
/* True if we are assembling in MRI mode. */
|
||||
COMMON int flag_mri;
|
||||
|
||||
+ /* True if dollars should always be allowed in function names */
|
||||
+ COMMON int flag_allow_dollars;
|
||||
+
|
||||
/* Should the data section be made read-only and appended to the text
|
||||
section? */
|
||||
COMMON unsigned char flag_readonly_data_in_text; /* -R */
|
||||
diff -rc binutils-2.17.orig/gas/read.c binutils-2.17/gas/read.c
|
||||
*** binutils-2.17.orig/gas/read.c 2005-11-17 08:29:28.000000000 +0100
|
||||
--- binutils-2.17/gas/read.c 2007-04-22 10:41:00.000000000 +0200
|
||||
***************
|
||||
*** 241,246 ****
|
||||
--- 241,252 ----
|
||||
|
||||
if (flag_mri)
|
||||
lex_type['?'] = 3;
|
||||
+
|
||||
+ if (flag_allow_dollars) /* always allow dollars */
|
||||
+ {
|
||||
+ lex_type['$'] = 3;
|
||||
+ is_end_of_line['$'] = 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
#ifndef TC_ADDRESS_BYTES
|
||||
138
binutils-debian/patches.old/newdevices.patch
Normal file
138
binutils-debian/patches.old/newdevices.patch
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
--- binutils/gas/config/tc-avr.c.orig Mon Aug 6 21:59:55 2007
|
||||
+++ binutils/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},
|
||||
--- binutils/gas/doc/c-avr.texi.orig Mon Aug 6 22:00:08 2007
|
||||
+++ binutils/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
|
||||
--- binutils/include/opcode/avr.h.orig Fri Apr 7 17:18:08 2006
|
||||
+++ binutils/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)
|
||||
43
binutils-debian/patches.old/patch-newsections
Normal file
43
binutils-debian/patches.old/patch-newsections
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
--- binutils/ld/scripttempl/avr.sc.old 2007-09-14 06:32:02.437500000 -0600
|
||||
+++ binutils/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) }
|
||||
19
binutils-debian/patchlist
Normal file
19
binutils-debian/patchlist
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
atmel_patches/30-binutils-2.20.1-avr-size.patch
|
||||
atmel_patches/31-binutils-2.20.1-avr-coff.patch
|
||||
atmel_patches/32-binutils-2.20.1-new-sections.patch
|
||||
atmel_patches/34-binutils-2.20.1-as-dwarf.patch
|
||||
atmel_patches/35-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch
|
||||
atmel_patches/36-binutils-2.20.1-assembler-options.patch
|
||||
atmel_patches/50-binutils-2.20.1-xmega.patch
|
||||
atmel_patches/51-binutils-2.20.1-new-devices.patch
|
||||
atmel_patches/52-binutils-2.20.1-avrtiny10.patch
|
||||
atmel_patches/53-binutils-2.20.1-xmega128a1u-64a1u.patch
|
||||
atmel_patches/54-binutils-2.20.1-atxmega16x1-32x1.patch
|
||||
atmel_patches/55-binutils-2.20.1-atxmega128b1.patch
|
||||
atmel_patches/56-binutils-2.20.1-atxmega256a3bu.patch
|
||||
atmel_patches/57-binutils-2.20.1-at90pwm161.patch
|
||||
atmel_patches/58-binutils-2.20.1-atmega16hvb-32hvb.patch
|
||||
atmel_patches/59-binutils-2.20.1-atmega32_5_50_90_pa.patch
|
||||
atmel_patches/60-binutils-2.20.1-bug13789.patch
|
||||
atmel_patches/62-binutils-2.20.1-attiny1634.patch
|
||||
atmel_patches/64-binutils-2.20.1-atmega48pa.patch
|
||||
144
binutils-debian/rules
Executable file
144
binutils-debian/rules
Executable file
|
|
@ -0,0 +1,144 @@
|
|||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# GNU copyright 1997 to 1999 by Joey Hess.
|
||||
|
||||
PACKAGE=binutils-avr
|
||||
TARGET=avr
|
||||
|
||||
#ifeq (,$(DEB_BUILD_GNU_TYPE))
|
||||
# include /usr/share/dbs/dpkg-arch.mk
|
||||
#endif
|
||||
|
||||
CONFARGS = --prefix=/usr \
|
||||
--build=$(DEB_BUILD_GNU_TYPE) \
|
||||
--host=$(DEB_HOST_GNU_TYPE) \
|
||||
--target=$(TARGET)\
|
||||
--disable-static\
|
||||
--with-gnu-ld\
|
||||
--with-gnu-as\
|
||||
--enable-install-libbfd\
|
||||
--with-dwarf2
|
||||
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
#TAR_DIR=binutils-*
|
||||
#TAR_DIR=TAR_DIR=binutils-*
|
||||
#include /usr/share/dbs/dbs-build.mk
|
||||
#include debian/dbs-build.mk
|
||||
|
||||
BUILD_TREE=src
|
||||
|
||||
# the dbs rules
|
||||
#include /usr/src/toolchain/patches/binutils/dbs-build.mk
|
||||
#
|
||||
unpack: unpack-stamp
|
||||
unpack-stamp:
|
||||
tar xjf binutils-*.tar.bz2
|
||||
#tar xjf binutils-2.18.tar.bz2
|
||||
mv `ls -d binutils* | grep -v tar` src
|
||||
#mkdir build
|
||||
touch unpack-stamp
|
||||
|
||||
patch-stamp:
|
||||
cd $(BUILD_TREE) && for p in `cat ../debian/patchlist`; do echo; echo Applying $$p ...; patch -p0 < ../debian/$$p; done
|
||||
touch patch-stamp
|
||||
|
||||
configure: configure-stamp
|
||||
configure-stamp: unpack-stamp patch-stamp
|
||||
dh_testdir
|
||||
|
||||
# Add here commands to configure the package.
|
||||
cd $(BUILD_TREE) && env CC="gcc" CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=unused-but-set-parameter" ./configure $(CONFARGS)
|
||||
make -C src maybe-configure-bfd
|
||||
make -C src/bfd/ headers
|
||||
touch configure-stamp
|
||||
|
||||
build: configure-stamp build-stamp
|
||||
build-stamp:
|
||||
dh_testdir
|
||||
|
||||
# Add here commands to compile the package.
|
||||
cd $(BUILD_TREE) && $(MAKE)
|
||||
#/usr/bin/docbook-to-man debian/$(PACKAGE).sgml > $(PACKAGE).1
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp configure-stamp a.out unpack-stamp patch-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
#-$(MAKE) clean
|
||||
rm -rf $(BUILD_TREE)
|
||||
#rm binutils-2.18.tar.bz2
|
||||
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/$(PACKAGE).
|
||||
cd $(BUILD_TREE) && $(MAKE) install prefix=$(CURDIR)/debian/$(PACKAGE)/usr
|
||||
cp debian/gasp.1 debian/$(PACKAGE)/usr/share/man/man1/avr-gasp.1
|
||||
|
||||
# Non standard avr dir to keep FHS happy
|
||||
mv debian/binutils-avr/usr/avr debian/binutils-avr/usr/lib/
|
||||
|
||||
# Files also in main binutils pkg
|
||||
cd debian/$(PACKAGE)/usr && \
|
||||
rm -rf lib/libiberty.* lib/libbfd.* lib/libopcodes* \
|
||||
include/bfd.h include/ansidecl.h include/bfdlink.h \
|
||||
share/locale include/symcat.h include/dis-asm.h \
|
||||
info share/info
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
# dh_installdebconf
|
||||
dh_installdocs -n
|
||||
# dh_installexamples
|
||||
# dh_installmenu
|
||||
# dh_installlogrotate
|
||||
# dh_installemacsen
|
||||
# dh_installpam
|
||||
# dh_installmime
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
dh_installman
|
||||
# dh_installinfo
|
||||
dh_undocumented
|
||||
dh_installchangelogs
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# dh_makeshlibs
|
||||
dh_installdeb
|
||||
# dh_perl
|
||||
dh_shlibdeps
|
||||
|
||||
# Update toolchain-source version reference (won't work as it's a source dependency)
|
||||
#touch debian/substvars
|
||||
#-grep -v '^toolchain-source-version=' debian/substvars > debian/substvars.tmp
|
||||
#mv debian/substvars.tmp debian/substvars
|
||||
#echo >> debian/substvars
|
||||
#echo -n 'toolchain-source-version=' >> debian/substvars
|
||||
#dpkg -s toolchain-source | grep Version: | sed -e 's/Version: //' >> debian/substvars
|
||||
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install configure
|
||||
22
binutils-debian/semantic.cache
Normal file
22
binutils-debian/semantic.cache
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
;; Object debian/
|
||||
;; SEMANTICDB Tags save file
|
||||
(semanticdb-project-database-file "debian/"
|
||||
:tables (list
|
||||
(semanticdb-table "rules"
|
||||
:major-mode 'makefile-mode
|
||||
:tags '(("PACKAGE" variable (:default-value ("binutils-avr")) nil [107 128]) ("TARGET" variable (:default-value ("avr")) nil [128 139]) ("/usr/share/dbs/dpkg-arch.mk" include nil nil [172 208]) ("CONFARGS" variable (:default-value ("--prefix=/usr" "--build=$(DEB_BUILD_GNU_TYPE)" "--host=$(DEB_HOST_GNU_TYPE)" "--target=$(TARGET)" "--disable-static" "--with-gnu-ld" "--with-gnu-as" "--enable-install-libbfd" "--with-dwarf2")) nil [215 499]) ("DH_COMPAT" variable (:default-value ("5")) nil [626 638]) ("TAR_DIR" variable (:default-value ("binutils-*")) nil [639 658]) ("debian/dbs-build.mk" include nil nil [695 723]) ("binutils-2.18.tar.bz2" function nil nil [941 1032]) ("configure" function (:arguments ("configure-stamp")) nil [1032 1074]) ("configure-stamp" function (:arguments ("binutils-2.18.tar.bz2" "$(patched)")) nil [1059 1122]) ("build" function (:arguments ("configure-stamp" "build-stamp")) nil [1251 1297]) ("build-stamp" function (:arguments ("binutils-2.18.tar.bz2" "$(patched)")) nil [1286 1345]) ("clean" function nil nil [1504 1578]) ("install" function (:arguments ("build")) nil [1723 1793]) ("binary-indep" function (:arguments ("build" "install")) nil [2346 2410]) ("binary-arch" function (:arguments ("build" "install")) nil [2454 2527]) ("binary" function (:arguments ("binary-indep" "binary-arch")) nil [3315 3354]))
|
||||
:file "rules"
|
||||
:pointmax 3418
|
||||
:unmatched-syntax 'nil
|
||||
)
|
||||
(semanticdb-table "dbs-build.mk"
|
||||
:major-mode 'makefile-mode
|
||||
:tags '(("SOURCE_DIR" variable (:default-value ("build-tree")) nil [216 240]) ("STAMP_DIR" variable (:default-value ("stampdir")) nil [240 261]) ("debian/vars" include nil nil [453 473]) ("debian_vars" variable (:default-value ("debian/vars")) nil [475 501]) ("debian_vars" variable nil nil [510 524]) ("SHELL" variable (:default-value ("/bin/bash" "-e")) nil [533 555]) ("DBS_SCRIPT_DIR" variable (:default-value ("/usr/share/dbs")) nil [555 587]) ("DBS_SPLIT" variable (:default-value ("$(DBS_SCRIPT_DIR)/dbs_split")) nil [587 627]) ("DBS_FILE2CAT" variable (:default-value ("$(DBS_SCRIPT_DIR)/internal/file2cat")) nil [627 678]) ("DBS_LIB" variable (:default-value ("$(DBS_SCRIPT_DIR)/internal/lib")) nil [678 720]) ("DBS_VARSBUILD" variable (:default-value ("$(DBS_SCRIPT_DIR)/internal/vars.build")) nil [720 774]) ("patched" variable (:default-value ("$(STAMP_DIR)/patchapply")) nil [796 831]) ("unpacked" variable (:default-value ("$(STAMP_DIR)/source.unpack")) nil [831 869]) ("created" variable (:default-value ("$(STAMP_DIR)/source.created")) nil [869 908]) ("sh_vars" variable (:default-value ("$(STAMP_DIR)/vars.sh")) nil [908 940]) ("DBS_LIB" variable (:default-value ("\"SOURCE_DIR=\\\"$(SOURCE_DIR)\\\"\"")) nil [940 983]) ("DBS_LIB" variable (:default-value ("\"STAMP_DIR=\\\"$(STAMP_DIR)\\\"\"")) nil [983 1024]) ("DBS_LIB" variable (:default-value ("\"VARS_FILE=\\\"$(sh_vars)\\\"\"")) nil [1024 1063]) ("DBS_LIB" variable (:default-value ("\"STRIP_LEVEL=1\"")) nil [1063 1091]) ("BUILD_TREE" variable (:default-value ("$(SOURCE_DIR)/$(TAR_DIR)")) nil [1108 1146]) ("DBS_LIB" variable (:default-value ("\"TAR_DIR=\\\"$(TAR_DIR)\\\"\"")) nil [1148 1184]) ("BUILD_TREE" variable (:default-value ("$(SOURCE_DIR)")) nil [1191 1218]) ("SCRIPT_DIR" variable (:default-value ("$(DBS_SCRIPT_DIR)/internal/")) nil [1295 1336]) ("$(STAMP_DIR)" function (:arguments ("$(created)")) nil [1336 1386]) ("dh_mak_deps" variable (:default-value ("$(shell DH_COMPAT=$(DH_COMPAT) perl $(DBS_SPLIT) makedeps)")) nil [1389 1462]) ("dh_gen_deps" variable (:default-value ("$(shell DH_COMPAT=$(DH_COMPAT) perl $(DBS_SPLIT) gendeps)")) nil [1462 1534]) ("$(dh_mak_deps)" function (:arguments ("$(dh_gen_deps)")) nil [1535 1586]) ("setup" function (:arguments ("$(dh_mak_deps)")) nil [1587 1684]) ("$(patched)" function (:arguments ("$(created)" "$(sh_vars)" "$(unpacked)")) nil [1684 1777]) ("unpacked" function (:arguments ("$(unpacked)")) nil [1777 1800]) ("$(unpacked)" function (:arguments ("$(created)" "$(sh_vars)")) nil [1799 1882]) ("make_patch" function nil nil [1882 2217]) ("$(created)" function nil nil [2217 2287]) ("$(sh_vars)" function (:arguments ("$(debian_vars)" "$(created)")) nil [2287 2330]))
|
||||
:file "dbs-build.mk"
|
||||
:pointmax 2425
|
||||
)
|
||||
)
|
||||
:file "semantic.cache"
|
||||
:semantic-tag-version "2.0pre3"
|
||||
:semanticdb-version "2.0pre3"
|
||||
)
|
||||
34
binutils.build.bash
Executable file
34
binutils.build.bash
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
if [[ ! -f binutils-2.20.1a.tar.bz2 ]] ;
|
||||
then
|
||||
wget ftp://gcc.gnu.org/pub/binutils/releases/binutils-2.20.1a.tar.bz2
|
||||
fi
|
||||
|
||||
tar xfjv binutils-2.20.1a.tar.bz2
|
||||
|
||||
cd binutils-2.20.1
|
||||
for p in `cat ../binutils-debian/patchlist`; do echo; echo Applying $p ...; patch -p0 < ../binutils-debian/$p; done
|
||||
cd -
|
||||
|
||||
mkdir -p objdir
|
||||
cd objdir
|
||||
PREFIX=`pwd`
|
||||
cd -
|
||||
|
||||
mkdir -p binutils-build
|
||||
cd binutils-build
|
||||
|
||||
CONFARGS=" \
|
||||
--enable-languages=c,c++ \
|
||||
--prefix=$PREFIX \
|
||||
--disable-nls \
|
||||
--with-dwarf2 \
|
||||
--target=avr"
|
||||
|
||||
CFLAGS=-w CXXFLAGS=-w ../binutils-2.20.1/configure $CONFARGS
|
||||
|
||||
nice -n 10 make -j 5
|
||||
|
||||
make install
|
||||
|
||||
10
build.all.bash
Executable file
10
build.all.bash
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
rm -rf objdir
|
||||
|
||||
./clean.bash
|
||||
./binutils.build.bash
|
||||
./gcc.build.bash
|
||||
./avr-libc.build.bash
|
||||
|
||||
rm -rf objdir/{info,man,share}
|
||||
4
clean.bash
Executable file
4
clean.bash
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf gcc-4.3.2 binutils-2.20.1 avr-libc-1.6.4 *-build
|
||||
|
||||
9
gcc-debian/README.debian
Normal file
9
gcc-debian/README.debian
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
To make it possible to have different versions of gcc packages
|
||||
installed for diffrent targets the locale and most common documentation have
|
||||
been removed from the cross packages. If you want these files aswell you'll
|
||||
have to install the same version of the native package as of this package.
|
||||
|
||||
For nesC/TinyOS users, the addition of "OPTFLAGS:= -Wa,--allow-dollars"
|
||||
to their makefiles will allow the use of dollars in function names (with
|
||||
nesC >=1.1.3). Note, this will require binutils-avr >= 2.15-2.
|
||||
|
||||
178
gcc-debian/avr-gccbug.1
Normal file
178
gcc-debian/avr-gccbug.1
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.if n .na
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "GCCBUG 1"
|
||||
.TH GCCBUG 1 "2003-06-03" "gcc-3.4" "GNU"
|
||||
.SH "NAME"
|
||||
gccbug \- Reporting GCC Bugs
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
gccbug
|
||||
[ \fB\-\-cc\fR \fImail-address\fR ]
|
||||
[ \fB\-\-version\fR ] | [ \fB\-\-help\fR ]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBgccbug\fR is a version of \s-1GNU\s0 \s-1GNATS\s0 send-pr configured for \s-1GCC\s0 bug
|
||||
reporting.
|
||||
.PP
|
||||
Invoking \fBgccbug\fR calls the editor named in your environment
|
||||
variable \fB\s-1VISUAL\s0\fR or \fB\s-1EDITOR\s0\fR on a problem report template.
|
||||
.PP
|
||||
Your bug reports play an essential role in making \s-1GCC\s0 reliable. However
|
||||
since the maintainers are very overloaded, please first make sure that:
|
||||
.IP "\(bu" 4
|
||||
The problem is not already known. See
|
||||
<\fBhttp://gcc.gnu.org/bugs.html#known\fR> for a list of known bugs.
|
||||
If it isn't known, then you should report the problem.
|
||||
.Sp
|
||||
You can browse the bug database for bugs reported at
|
||||
<\fBhttp://gcc.gnu.org/cgi\-bin/gnatsweb.pl\fR>.
|
||||
.IP "\(bu" 4
|
||||
You include the information that makes for fixing the bug. See
|
||||
<\fBhttp://gcc.gnu.org/bugs.html#report\fR> for bug reporting instructions.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fB\-\-cc\fR \fImail-address\fR" 4
|
||||
.IX Item "--cc mail-address"
|
||||
Specifies the mail-address to which the \s-1PR\s0 should be carbon\-copied.
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
Displays the \fBgccbug\fR version number and a usage summary. No mail
|
||||
is sent.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Displays a usage summary for \fBgccbug\fR. No mail is sent.
|
||||
.PP
|
||||
\&\fBgccbug\fR has more (undocumented) options, which may be
|
||||
unsupported by a future \s-1GCC\s0 bug tracking system.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIgcc\fR\|(1), \fIsend\-pr\fR\|(1), \fIsend\-pr\fR\|(8), the info entries for \fIgcc\fR (node Bugs),
|
||||
and the online pages at <\fBhttp://gcc.gnu.org/bugs.html\fR>.
|
||||
326
gcc-debian/changelog
Normal file
326
gcc-debian/changelog
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
gcc-avr (1:4.3.2-1) unstable; urgency=low
|
||||
|
||||
* Removed patches 40-1-gcc-4.3.0-bug-30243, 41-0-gcc-4.3.0-bug-34932
|
||||
and 40-9-gcc-4.3.0-bug-35542 as they has been incoporated
|
||||
upstream in the code provided by gcc-4.3-source 4.3.2-1 (closes:
|
||||
#501424).
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 11 Oct 2008 09:07:49 +0200
|
||||
|
||||
gcc-avr (1:4.3.0-4) unstable; urgency=low
|
||||
|
||||
* No longer applies 40-8-gcc-4.3.0-bug-35519 and
|
||||
41-1-gcc-4.3.0-bug-leaf as the src provided
|
||||
by gcc-4.3-source 4.3.1-6 already has this patch applied (closes:
|
||||
#490310)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 21 Jul 2008 18:22:33 +0200
|
||||
|
||||
gcc-avr (1:4.3.0-3) unstable; urgency=low
|
||||
|
||||
* Revered to an unpatched 4.3.0 release
|
||||
* Applied WinAVR-20080610 from patches/gcc/4.3.0/ in cvs server
|
||||
anonymous@winavr.cvs.sourceforge.net:/cvsroot/winavr with tag
|
||||
WinAVR-20080610:
|
||||
20-gcc-4.3.0-libiberty-Makefile.in.patch
|
||||
21-gcc-4.3.0-disable-libssp.patch
|
||||
40-0-gcc-4.3.0-bug-10768.patch
|
||||
40-1-gcc-4.3.0-bug-30243.patch
|
||||
40-2-gcc-4.3.0-bug-11259_v3.patch
|
||||
40-3-gcc-4.3.0-bug-spill3.patch
|
||||
40-4-gcc-4.3.0-bug-35013.patch
|
||||
40-6-gcc-4.3.0-libgcc16.patch
|
||||
40-7-gcc-4.3.0-bug-33009.patch
|
||||
40-8-gcc-4.3.0-bug-35519.patch
|
||||
40-9-gcc-4.3.0-bug-35542.patch
|
||||
41-0-gcc-4.3.0-bug-34932.patch
|
||||
41-1-gcc-4.3.0-bug-leaf.patch
|
||||
50-gcc-4.3.0-mega256.patch
|
||||
51-gcc-4.3.0-xmega-v9.patch
|
||||
52-gcc-4.3.0-atmega32m1.patch
|
||||
53-gcc-4.3.0-atmega32c1.patch
|
||||
54-gcc-4.3.0-atmega32u4.patch
|
||||
55-gcc-4.3.0-attiny167.patch
|
||||
56-gcc-4.3.0-remove-atmega32hvb.patch
|
||||
60-gcc-4.3.0-ada-xgnatugn.patch
|
||||
61-gcc-4.3.0-osmain.patch
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 02 Jul 2008 11:01:26 +0200
|
||||
|
||||
gcc-avr (1:4.3.0-2) unstable; urgency=low
|
||||
|
||||
* libiberty.a now removed for X86_64 arch aswell (closes: #474674)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 07 Apr 2008 16:36:22 +0200
|
||||
|
||||
gcc-avr (1:4.3.0-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 04 Apr 2008 11:37:41 +0200
|
||||
|
||||
gcc-avr (1:4.2.3-1) unstable; urgency=low
|
||||
|
||||
* Moved /usr/libexec/gcc/ to /usr/lib/gcc/ (closes: #457213)
|
||||
* Fixed 0b patch to handle dsfg free docs (closes: #464260)
|
||||
* New upstream release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 07 Feb 2008 15:00:49 +0100
|
||||
|
||||
gcc-avr (1:4.2.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 15 Dec 2007 16:39:42 +0100
|
||||
|
||||
gcc-avr (1:4.2.1-2) unstable; urgency=low
|
||||
|
||||
* Recompiled with new binutils
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 14 Aug 2007 18:12:04 +0200
|
||||
|
||||
gcc-avr (1:4.2.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (includes newdevices patch from freeBSD) (closes: #420061)
|
||||
* Now uses unpack rules from gcc-source package (closes: #421142)
|
||||
* Applied binary constants patch (closes: #426940)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 9 Aug 2007 09:04:11 +0200
|
||||
|
||||
gcc-avr (1:4.1.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 30 Apr 2007 10:46:13 +0200
|
||||
|
||||
gcc-avr (1:4.1.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #415917)
|
||||
* Now uses gcc-4.1-source (closes: #413214)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 22 Apr 2007 17:17:59 +0200
|
||||
|
||||
gcc-avr (1:4.1.0.dfsg.1-1) unstable; urgency=low
|
||||
|
||||
[ Frank Küster ]
|
||||
* Add a makefile snippet to remove files from the tarballs that are
|
||||
under GFDL and contain invariant sections. Thanks to Matthias Klose
|
||||
for the list of files
|
||||
* Let the clean target depend on the repack-gfdl target, and do the
|
||||
cleaning (closes: #413216)
|
||||
|
||||
[ Hakan Ardo ]
|
||||
* Applied patch from Frank above
|
||||
* Removed info files now recreated as empty files to allow compilation
|
||||
as sugested by Matthias Klose
|
||||
* Removed clean's dependency on repack-gfdl
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 19 Mar 2007 18:48:37 +0100
|
||||
|
||||
gcc-avr (1:4.1.0-1) unstable; urgency=low
|
||||
|
||||
* Upstream release
|
||||
* Removed debian/rules.old
|
||||
* Now suggests gcc-4.1 instead (closes: #353267)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 1 May 2006 11:27:41 +0200
|
||||
|
||||
gcc-avr (1:4.0.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
* Added missing avr-gccbug man page (closes: #321221)
|
||||
* Removed duplicated Suggests fields from control
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 4 Feb 2006 17:39:37 +0100
|
||||
|
||||
gcc-avr (1:3.4.3-2) unstable; urgency=low
|
||||
|
||||
* Rebuilt with new binutils adding support for atmega48, atmega88,
|
||||
atmega168, attiny13, attiny2313 and at90can128.
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 27 Feb 2005 18:26:55 +0100
|
||||
|
||||
gcc-avr (1:3.4.3-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
* Applied patch from Theodore A. Roth enabling new avr devices,
|
||||
including at90can128
|
||||
* No longer released as native package (closes: #270421)
|
||||
* Added info to README.debian on how to compile nesC/TinyOS
|
||||
* Removed --with-as=/usr/avr/bin/as from configure, which overrided -B
|
||||
(closes: #275995)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 26 Dec 2004 15:48:13 +0100
|
||||
|
||||
gcc-avr (1:3.4.1-1) unstable; urgency=low
|
||||
|
||||
* Upstream update
|
||||
* All cross libs now striped with avr-strip (closes: #264686)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 11 Aug 2004 20:33:26 +0200
|
||||
|
||||
gcc-avr (1:3.4.0-1) unstable; urgency=low
|
||||
|
||||
* Upstream release (closes: #241835)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 15 May 2004 17:19:35 +0200
|
||||
|
||||
gcc-avr (1:3.3.2-1) unstable; urgency=low
|
||||
|
||||
* Upstream update (closes: #160051)
|
||||
* Readded Build-Depends on toolchain-source (closes: #207189, #207493)
|
||||
* Updated copyright
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 29 Mar 2004 14:58:18 +0200
|
||||
|
||||
gcc-avr (1:3.2.90.20030512) unstable; urgency=low
|
||||
|
||||
* Updated to 030512 snapshot
|
||||
* Now contains src tar balls
|
||||
* Now uses packhed dbs
|
||||
* Updated build-depend on binutils-avr
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 25 Jun 2003 21:04:42 +0200
|
||||
|
||||
gcc-avr (1:3.2.3.cvs20030221-3) unstable; urgency=low
|
||||
|
||||
* Now builddepends on automake1.4 (closes: #184760)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 16 Mar 2003 11:51:41 +0100
|
||||
|
||||
gcc-avr (1:3.2.3.cvs20030221-2) unstable; urgency=low
|
||||
|
||||
* libgcc.a was messed up by dh_strip (closes: #183062)
|
||||
* Recompiled with toolchain-source 3.2-7
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 11 Mar 2003 16:07:30 +0100
|
||||
|
||||
gcc-avr (1:3.2.3.cvs20030221-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (3.2.3.cvs20030221)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 26 Feb 2003 12:24:51 +0100
|
||||
|
||||
gcc-avr (1:3.2-3) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.2-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 7 Nov 2002 22:53:11 +0100
|
||||
|
||||
gcc-avr (1:3.2-2) unstable; urgency=low
|
||||
|
||||
* Relaxed dependency on native pkg and added README.debian describing
|
||||
the case (closes: #161060)
|
||||
* Recompiled with toolchain-source 3.2-2
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 18 Oct 2002 09:41:32 +0200
|
||||
|
||||
gcc-avr (1:3.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (3.2)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 18 Aug 2002 16:38:47 +0200
|
||||
|
||||
gcc-avr (1:3.1.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (3.1.1)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 2 Aug 2002 16:15:39 +0200
|
||||
|
||||
gcc-avr (1:3.1-3) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.1-3 (closes: #142646)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 6 Jul 2002 17:13:27 +0200
|
||||
|
||||
gcc-avr (1:3.1-2) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.1-2 (closes: #148778)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 5 Jul 2002 09:51:20 +0200
|
||||
|
||||
gcc-avr (1:3.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (3.1)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Fri, 31 May 2002 13:57:13 +0200
|
||||
|
||||
gcc-avr (1:3.0.4-4) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-5 (closes: #143172)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 2 May 2002 15:48:16 +0200
|
||||
|
||||
gcc-avr (1:3.0.4-3) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-4
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 8 Apr 2002 11:57:54 +0200
|
||||
|
||||
gcc-avr (1:3.0.4-2) unstable; urgency=low
|
||||
|
||||
* Recompiled with toolchain-source 3.0.4-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 30 Mar 2002 12:42:19 +0100
|
||||
|
||||
gcc-avr (1:3.0.4-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (3.0.4)
|
||||
* Fixed man file removal (closes: #137586)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 11 Mar 2002 15:18:57 +0100
|
||||
|
||||
gcc-avr (1:3.0.3-3) unstable; urgency=low
|
||||
|
||||
* Removed som duplicated man pages
|
||||
* Renamed avr-linux to avr as we dont run linux on target
|
||||
* Recompiled with toolchain-source 3.0.3-3
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sat, 9 Feb 2002 15:50:16 +0100
|
||||
|
||||
gcc-avr (1:3.0.3-2) unstable; urgency=low
|
||||
|
||||
* Now uses tar tjf (Bug #128550)
|
||||
* Removed som unecessery build constraints
|
||||
* Recompiled with toolchain-source 3.0.3-2
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 10 Jan 2002 23:44:11 +0100
|
||||
|
||||
gcc-avr (1:3.0.3-1) unstable; urgency=low
|
||||
|
||||
* gcc version no longer hardcoded in rules
|
||||
* Upstream update to 3.0.3
|
||||
* Updated Build-Depends on binutils
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Tue, 8 Jan 2002 17:42:27 +0100
|
||||
|
||||
gcc-avr (3.0.ds9-7) unstable; urgency=low
|
||||
|
||||
* Removed dependency on graphviz and updated version number of
|
||||
toolchain-source (Bug #108902)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Sun, 19 Aug 2001 22:12:10 +0200
|
||||
|
||||
gcc-avr (3.0.ds9-6) unstable; urgency=low
|
||||
|
||||
* Dummy release to get pkg back in distribution (Bug #106872)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Wed, 8 Aug 2001 18:21:53 +0200
|
||||
|
||||
gcc-avr (3.0.ds9-5) unstable; urgency=low
|
||||
|
||||
* .deb file no longer in src pkg
|
||||
* Now build-depends on toolchain-source instaed of using apt-get
|
||||
(Bug #105847)
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Thu, 26 Jul 2001 13:09:26 +0200
|
||||
|
||||
gcc-avr (3.0.ds9-4) unstable; urgency=low
|
||||
|
||||
* Initial Release
|
||||
|
||||
-- Hakan Ardo <hakan@debian.org> Mon, 2 Jul 2001 22:45:33 +0200
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
||||
19
gcc-debian/control
Normal file
19
gcc-debian/control
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
Source: gcc-avr
|
||||
Section: devel
|
||||
Priority: extra
|
||||
Maintainer: Hakan Ardo <hakan@debian.org>
|
||||
Standards-Version: 3.5.3
|
||||
Build-Depends: m4, autoconf (>= 2.13), libtool, gawk, bzip2, binutils-avr (>= 2.18-4), bison, flex, gettext, texinfo, zlib1g-dev, debhelper (>= 4.2.10), tar (>= 1.13.18), automake1.9, dbs (>=0.43), gcc-4.3-source(>=4.3.2-1), libmpfr-dev
|
||||
Build-Conflicts: libgcc0, libgcc300
|
||||
|
||||
Package: gcc-avr
|
||||
Architecture: any
|
||||
Section: devel
|
||||
Priority: extra
|
||||
Conflicts: avr-libc(<=1:1.6.2-1)
|
||||
Depends: ${shlibs:Depends}, binutils-avr (>= 2.18-4)
|
||||
Provides: c-compiler-avr
|
||||
Suggests: task-c-devel, gcc-doc (>= 4:4.0.2-1), gcc-4.2, avr-libc(>=1:1.6.2-2)
|
||||
Description: The GNU C compiler (cross compiler for avr)
|
||||
This is the GNU C compiler, a fairly portable optimizing compiler which
|
||||
supports multiple languages. This package includes support for C.
|
||||
9
gcc-debian/copyright
Normal file
9
gcc-debian/copyright
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
This is a debian pakcage of the GNU gcc compiler compiled as an avr
|
||||
crosscompiler. This package was downloaded from:
|
||||
|
||||
ftp://ftp.funet.fi/pub/gnu/prep/gcc/gcc-3.3.2/
|
||||
|
||||
Copyright: GNU General Public License
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
0
gcc-debian/dh_dummy
Executable file
0
gcc-debian/dh_dummy
Executable file
6
gcc-debian/dirs
Normal file
6
gcc-debian/dirs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
usr/bin
|
||||
usr/lib
|
||||
|
||||
|
||||
|
||||
|
||||
1
gcc-debian/dummy.texi
Normal file
1
gcc-debian/dummy.texi
Normal file
|
|
@ -0,0 +1 @@
|
|||
@c This file is empty because the original one has a non DFSG free license (GFDL)
|
||||
41
gcc-debian/gcc-dummy.texi
Normal file
41
gcc-debian/gcc-dummy.texi
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
|
||||
@settitle The GNU Compiler Collection (GCC)
|
||||
|
||||
@c Create a separate index for command line options.
|
||||
@defcodeindex op
|
||||
@c Merge the standard indexes into a single one.
|
||||
@syncodeindex fn cp
|
||||
@syncodeindex vr cp
|
||||
@syncodeindex ky cp
|
||||
@syncodeindex pg cp
|
||||
@syncodeindex tp cp
|
||||
|
||||
@paragraphindent 1
|
||||
|
||||
@c %**end of header
|
||||
|
||||
@copying
|
||||
The current documentation is licensed under the same terms as the Debian packaging.
|
||||
@end copying
|
||||
@ifnottex
|
||||
@dircategory Programming
|
||||
@direntry
|
||||
* @name@: (@name@). The GNU Compiler Collection (@name@).
|
||||
@end direntry
|
||||
@sp 1
|
||||
@end ifnottex
|
||||
|
||||
@summarycontents
|
||||
@contents
|
||||
@page
|
||||
|
||||
@node Top
|
||||
@top Introduction
|
||||
@cindex introduction
|
||||
The official GNU compilers' documentation is released under the terms
|
||||
of the GNU Free Documentation License with cover texts. This has been
|
||||
considered non free by the Debian Project. Thus you will find it in the
|
||||
non-free section of the Debian archive.
|
||||
@bye
|
||||
14
gcc-debian/oldpatches/40-1-gcc-4.3.0-bug-30243.patch
Executable file
14
gcc-debian/oldpatches/40-1-gcc-4.3.0-bug-30243.patch
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
Fix for GCC bug #30243.
|
||||
Index: gcc/builtins.c
|
||||
===================================================================
|
||||
--- gcc/builtins.c (revision 126457)
|
||||
+++ gcc/builtins.c (working copy)
|
||||
@@ -5664,7 +5664,7 @@
|
||||
lo = 0;
|
||||
}
|
||||
|
||||
- if (imode != rmode)
|
||||
+ if (GET_MODE_SIZE (imode) > GET_MODE_SIZE (rmode))
|
||||
temp = gen_lowpart (rmode, temp);
|
||||
temp = expand_binop (rmode, and_optab, temp,
|
||||
immed_double_const (lo, hi, rmode),
|
||||
36
gcc-debian/oldpatches/40-8-gcc-4.3.0-bug-35519.patch
Executable file
36
gcc-debian/oldpatches/40-8-gcc-4.3.0-bug-35519.patch
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
Committed on HEAD (4.4.)
|
||||
Backported for 4.3.0.
|
||||
Fixes bug 35519.
|
||||
Testing if fixed bug 35872.
|
||||
--------------------------------------------------------------------------------
|
||||
--- gcc/combine.c 2008/04/04 23:36:19 133919
|
||||
+++ gcc/combine.c 2008/04/04 23:45:46 133920
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Optimize by combining instructions for GNU compiler.
|
||||
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
@@ -976,8 +976,18 @@
|
||||
assignments later. */
|
||||
if (regno >= FIRST_PSEUDO_REGISTER
|
||||
|| asm_noperands (PATTERN (use_insn)) < 0)
|
||||
- LOG_LINKS (use_insn) =
|
||||
- alloc_INSN_LIST (insn, LOG_LINKS (use_insn));
|
||||
+ {
|
||||
+ /* Don't add duplicate links between instructions. */
|
||||
+ rtx links;
|
||||
+ for (links = LOG_LINKS (use_insn); links;
|
||||
+ links = XEXP (links, 1))
|
||||
+ if (insn == XEXP (links, 0))
|
||||
+ break;
|
||||
+
|
||||
+ if (!links)
|
||||
+ LOG_LINKS (use_insn) =
|
||||
+ alloc_INSN_LIST (insn, LOG_LINKS (use_insn));
|
||||
+ }
|
||||
}
|
||||
next_use[regno] = NULL_RTX;
|
||||
}
|
||||
26
gcc-debian/oldpatches/40-9-gcc-4.3.0-bug-35542.patch
Executable file
26
gcc-debian/oldpatches/40-9-gcc-4.3.0-bug-35542.patch
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
Committed on HEAD/4.4
|
||||
--------------------------------------------------------------------------------
|
||||
Index: fwprop.c
|
||||
===================================================================
|
||||
--- gcc/fwprop.c (revision 131704)
|
||||
+++ gcc/fwprop.c (working copy)
|
||||
@@ -882,7 +882,6 @@
|
||||
return try_fwprop_subst (use, loc, new, def_insn, set_reg_equal);
|
||||
}
|
||||
|
||||
-
|
||||
/* Given a use USE of an insn, if it has a single reaching
|
||||
definition, try to forward propagate it into that insn. */
|
||||
|
||||
@@ -921,9 +920,10 @@
|
||||
else
|
||||
parent = PATTERN (use_insn);
|
||||
|
||||
- if (!loc_mentioned_in_p (DF_REF_LOC (use), parent))
|
||||
+ if (!reg_mentioned_p (DF_REF_REG (use), parent))
|
||||
return;
|
||||
|
||||
+
|
||||
def_insn = DF_REF_INSN (def);
|
||||
if (multiple_sets (def_insn))
|
||||
return;
|
||||
20
gcc-debian/oldpatches/41-0-gcc-4.3.0-bug-34932.patch
Executable file
20
gcc-debian/oldpatches/41-0-gcc-4.3.0-bug-34932.patch
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
Index: avr.md
|
||||
===================================================================
|
||||
--- gcc/config/avr/avr.md (revision 132947)
|
||||
+++ gcc/config/avr/avr.md (working copy)
|
||||
@@ -585,13 +585,13 @@
|
||||
adc %B0,__zero_reg__"
|
||||
[(set_attr "length" "2")
|
||||
(set_attr "cc" "set_n")])
|
||||
-
|
||||
+;disable this as reload has problems with it.
|
||||
(define_insn "*addhi3_zero_extend2"
|
||||
[(set (match_operand:HI 0 "register_operand" "=r")
|
||||
(plus:HI
|
||||
(zero_extend:HI (match_operand:QI 1 "register_operand" "%0"))
|
||||
(zero_extend:HI (match_operand:QI 2 "register_operand" "r"))))]
|
||||
- ""
|
||||
+ "0"
|
||||
"add %0,%2
|
||||
mov %B0,__zero_reg__
|
||||
adc %B0,__zero_reg__"
|
||||
39
gcc-debian/oldpatches/41-1-gcc-4.3.0-bug-leaf.patch
Executable file
39
gcc-debian/oldpatches/41-1-gcc-4.3.0-bug-leaf.patch
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
Index: gcc/config/avr/avr.c
|
||||
===================================================================
|
||||
--- gcc/config/avr/avr.c (revision 134897)
|
||||
+++ gcc/config/avr/avr.c (working copy)
|
||||
@@ -471,8 +471,10 @@
|
||||
int reg, count;
|
||||
int int_or_sig_p = (interrupt_function_p (current_function_decl)
|
||||
|| signal_function_p (current_function_decl));
|
||||
- int leaf_func_p = leaf_function_p ();
|
||||
|
||||
+ if (!reload_completed)
|
||||
+ cfun->machine->is_leaf = leaf_function_p ();
|
||||
+
|
||||
if (set)
|
||||
CLEAR_HARD_REG_SET (*set);
|
||||
count = 0;
|
||||
@@ -490,7 +492,7 @@
|
||||
if (fixed_regs[reg])
|
||||
continue;
|
||||
|
||||
- if ((int_or_sig_p && !leaf_func_p && call_used_regs[reg])
|
||||
+ if ((int_or_sig_p && !cfun->machine->is_leaf && call_used_regs[reg])
|
||||
|| (df_regs_ever_live_p (reg)
|
||||
&& (int_or_sig_p || !call_used_regs[reg])
|
||||
&& !(frame_pointer_needed
|
||||
Index: gcc/config/avr/avr.h
|
||||
===================================================================
|
||||
--- gcc/config/avr/avr.h (revision 134897)
|
||||
+++ gcc/config/avr/avr.h (working copy)
|
||||
@@ -1026,6 +1026,9 @@
|
||||
This is added to the cfun structure. */
|
||||
struct machine_function GTY(())
|
||||
{
|
||||
+ /* TRUE if the current function is a leaf function. */
|
||||
+ int is_leaf;
|
||||
+
|
||||
/* 'true' - if current function is a naked function. */
|
||||
int is_naked;
|
||||
|
||||
97
gcc-debian/patch_fixed_reg
Normal file
97
gcc-debian/patch_fixed_reg
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
--- gcc/config/avr/avr.c.orig Sat May 12 15:32:41 2001
|
||||
+++ gcc/config/avr/avr.c Sat Oct 6 01:04:15 2001
|
||||
@@ -562,7 +562,7 @@
|
||||
fprintf (file,"\tsei\n");
|
||||
++prologue_size;
|
||||
}
|
||||
- if (interrupt_func_p | signal_func_p)
|
||||
+ if (interrupt_func_p || signal_func_p)
|
||||
{
|
||||
fprintf (file, "\t"
|
||||
AS1 (push,__zero_reg__) CR_TAB
|
||||
@@ -574,14 +574,23 @@
|
||||
}
|
||||
if (main_p)
|
||||
{
|
||||
- fprintf (file, ("\t"
|
||||
- AS2 (ldi,r28,lo8(%s - %d)) CR_TAB
|
||||
- AS2 (ldi,r29,hi8(%s - %d)) CR_TAB
|
||||
- AS2 (out,__SP_H__,r29) CR_TAB
|
||||
- AS2 (out,__SP_L__,r28) "\n"),
|
||||
- avr_init_stack, size, avr_init_stack, size);
|
||||
+ if (!TARGET_TINY_STACK) {
|
||||
+ fprintf (file, ("\t"
|
||||
+ AS2 (ldi,r28,lo8(%s - %d)) CR_TAB
|
||||
+ AS2 (ldi,r29,hi8(%s - %d)) CR_TAB
|
||||
+ AS2 (out,__SP_H__,r29) CR_TAB
|
||||
+ AS2 (out,__SP_L__,r28) "\n"),
|
||||
+ avr_init_stack, size, avr_init_stack, size);
|
||||
|
||||
- prologue_size += 4;
|
||||
+ prologue_size += 4;
|
||||
+ } else {
|
||||
+ fprintf (file, ("\t"
|
||||
+ AS2 (ldi,r28,lo8(%s - %d)) CR_TAB
|
||||
+ AS2 (out,__SP_L__,r28) "\n"),
|
||||
+ avr_init_stack, size);
|
||||
+
|
||||
+ prologue_size += 2;
|
||||
+ }
|
||||
}
|
||||
else if (minimize && (frame_pointer_needed || live_seq > 6))
|
||||
{
|
||||
@@ -613,7 +622,8 @@
|
||||
{
|
||||
for (reg = 0; reg < 32; ++reg)
|
||||
{
|
||||
- if ((!leaf_func_p
|
||||
+ if (!fixed_regs[reg] &&
|
||||
+ ((!leaf_func_p
|
||||
&& (call_used_regs[reg]
|
||||
&& (interrupt_func_p || signal_func_p)
|
||||
&& !(reg == TMP_REGNO || reg == ZERO_REGNO)))
|
||||
@@ -621,7 +631,7 @@
|
||||
&& (!call_used_regs[reg]
|
||||
|| interrupt_func_p || signal_func_p)
|
||||
&& ! (frame_pointer_needed
|
||||
- && (reg == REG_Y || reg == (REG_Y+1)))))
|
||||
+ && (reg == REG_Y || reg == (REG_Y+1))))))
|
||||
{
|
||||
fprintf (file, "\t" AS1 (push,%s) "\n", avr_regnames[reg]);
|
||||
++prologue_size;
|
||||
@@ -737,7 +747,7 @@
|
||||
fputs ("\t", file);
|
||||
epilogue_size += out_adj_frame_ptr (file, -size);
|
||||
|
||||
- if (interrupt_func_p | signal_func_p)
|
||||
+ if (interrupt_func_p || signal_func_p)
|
||||
{
|
||||
epilogue_size += out_set_stack_ptr (file, -1, 0);
|
||||
}
|
||||
@@ -754,7 +764,8 @@
|
||||
|
||||
for (reg = 31; reg >= 0; --reg)
|
||||
{
|
||||
- if ((!leaf_func_p
|
||||
+ if (!fixed_regs[reg] &&
|
||||
+ ((!leaf_func_p
|
||||
&& (call_used_regs[reg]
|
||||
&& (interrupt_func_p || signal_func_p)
|
||||
&& !(reg == TMP_REGNO || reg == ZERO_REGNO)))
|
||||
@@ -762,14 +773,14 @@
|
||||
&& (!call_used_regs[reg]
|
||||
|| interrupt_func_p || signal_func_p)
|
||||
&& ! (frame_pointer_needed
|
||||
- && (reg == REG_Y || reg == (REG_Y+1)))))
|
||||
+ && (reg == REG_Y || reg == (REG_Y+1))))))
|
||||
{
|
||||
fprintf (file, "\t" AS1 (pop,%s) "\n", avr_regnames[reg]);
|
||||
++epilogue_size;
|
||||
}
|
||||
}
|
||||
|
||||
- if (interrupt_func_p | signal_func_p)
|
||||
+ if (interrupt_func_p || signal_func_p)
|
||||
{
|
||||
fprintf (file, "\t"
|
||||
AS1 (pop,__tmp_reg__) CR_TAB
|
||||
12
gcc-debian/patches/20-gcc-4.3.0-libiberty-Makefile.in.patch
Executable file
12
gcc-debian/patches/20-gcc-4.3.0-libiberty-Makefile.in.patch
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
--- libiberty/Makefile.in.orig Mon Sep 26 22:55:10 2005
|
||||
+++ libiberty/Makefile.in Wed Mar 22 22:13:44 2006
|
||||
@@ -275,7 +275,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:
|
||||
|
||||
install_to_libdir: all
|
||||
${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR)
|
||||
22
gcc-debian/patches/21-gcc-4.3.0-disable-libssp.patch
Executable file
22
gcc-debian/patches/21-gcc-4.3.0-disable-libssp.patch
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
--- configure.ac 2007-05-30 07:48:07.000000000 -0600
|
||||
+++ configure.ac 2007-07-29 08:33:39.642875000 -0600
|
||||
@@ -504,7 +504,7 @@ case "${target}" in
|
||||
noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
|
||||
;;
|
||||
avr-*-*)
|
||||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||||
+ noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
|
||||
;;
|
||||
bfin-*-*)
|
||||
noconfigdirs="$noconfigdirs gdb"
|
||||
--- configure 2007-06-20 17:07:21.000000000 -0600
|
||||
+++ configure 2007-07-29 08:32:35.080375000 -0600
|
||||
@@ -1344,7 +1344,7 @@ case "${target}" in
|
||||
noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
|
||||
;;
|
||||
avr-*-*)
|
||||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||||
+ noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
|
||||
;;
|
||||
bfin-*-*)
|
||||
noconfigdirs="$noconfigdirs gdb"
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue