diff options
author | Joerg Wunsch <joerg@FreeBSD.org> | 2005-03-10 21:14:44 +0000 |
---|---|---|
committer | Joerg Wunsch <joerg@FreeBSD.org> | 2005-03-10 21:14:44 +0000 |
commit | 96fe03484f9c3b29efa8e57a279d96b9e4ba3d0e (patch) | |
tree | b3bf6deb247b3e7863951679ff978a90252afbec /devel/avr-gcc-3/files/patch-mega08-tinyx13-can128 | |
parent | Merge some patches that have meanwhile be integrated in binutil's CVS, (diff) |
Bring in some patches from the head of GCC's CVS back to the latest
released version, 3.4.3. This mainly adds support for new AVR devices
that appeared on the market recently, and fixes a bug related to the
order of assignments for volatile uint16_t * objects (in the
assumption they might point to IO space where the order of two 8-bit
operations can be important).
Notes
Notes:
svn path=/head/; revision=130833
Diffstat (limited to 'devel/avr-gcc-3/files/patch-mega08-tinyx13-can128')
-rw-r--r-- | devel/avr-gcc-3/files/patch-mega08-tinyx13-can128 | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/devel/avr-gcc-3/files/patch-mega08-tinyx13-can128 b/devel/avr-gcc-3/files/patch-mega08-tinyx13-can128 new file mode 100644 index 000000000000..9719ccb90695 --- /dev/null +++ b/devel/avr-gcc-3/files/patch-mega08-tinyx13-can128 @@ -0,0 +1,124 @@ +--- gcc/config/avr/avr.c.orig 2004-09-27 19:13:55.000000000 -0600 ++++ gcc/config/avr/avr.c 2005-02-01 14:58:40.465250000 -0700 +@@ -175,6 +175,9 @@ + { "at90c8534", 2, "__AVR_AT90C8534__" }, + { "at90s8535", 2, "__AVR_AT90S8535__" }, + { "at86rf401", 2, "__AVR_AT86RF401__" }, ++ /* Classic + MOVW, <= 8K. */ ++ { "attiny13", 2, "__AVR_ATtiny13__" }, ++ { "attiny2313", 2, "__AVR_ATtiny2313__" }, + /* Classic, > 8K. */ + { "avr3", 3, NULL }, + { "atmega103", 3, "__AVR_ATmega103__" }, +@@ -185,6 +188,8 @@ + /* Enhanced, <= 8K. */ + { "avr4", 4, NULL }, + { "atmega8", 4, "__AVR_ATmega8__" }, ++ { "atmega48", 4, "__AVR_ATmega48__" }, ++ { "atmega88", 4, "__AVR_ATmega88__" }, + { "atmega8515", 4, "__AVR_ATmega8515__" }, + { "atmega8535", 4, "__AVR_ATmega8535__" }, + /* Enhanced, > 8K. */ +@@ -193,11 +198,13 @@ + { "atmega161", 5, "__AVR_ATmega161__" }, + { "atmega162", 5, "__AVR_ATmega162__" }, + { "atmega163", 5, "__AVR_ATmega163__" }, ++ { "atmega168", 5, "__AVR_ATmega168__" }, + { "atmega169", 5, "__AVR_ATmega169__" }, + { "atmega32", 5, "__AVR_ATmega32__" }, + { "atmega323", 5, "__AVR_ATmega323__" }, + { "atmega64", 5, "__AVR_ATmega64__" }, + { "atmega128", 5, "__AVR_ATmega128__" }, ++ { "at90can128", 5, "__AVR_AT90CAN128__" }, + { "at94k", 5, "__AVR_AT94K__" }, + /* Assembler only. */ + { "avr1", 1, NULL }, + +--- gcc/config/avr/avr.h.orig 2004-03-08 19:59:55.000000000 -0700 ++++ gcc/config/avr/avr.h 2005-02-01 14:58:40.480875000 -0700 +@@ -2351,12 +2351,12 @@ + Do not define this macro if it does not need to do anything. */ + + #define LINK_SPEC " %{!mmcu*:-m avr2}\ +-%{mmcu=at90s1200|mmcu=attiny1*|mmcu=attiny28:-m avr1} \ +-%{mmcu=attiny22|mmcu=attiny26|mmcu=at90s2*|mmcu=at90s4*|mmcu=at90s8*|mmcu=at90c8*|mmcu=at86rf401:-m avr2}\ ++%{mmcu=at90s1200|mmcu=attiny11|mmcu=attiny12|mmcu=attiny15|mmcu=attiny28:-m avr1} \ ++%{mmcu=attiny22|mmcu=attiny26|mmcu=at90s2*|mmcu=at90s4*|mmcu=at90s8*|mmcu=at90c8*|mmcu=at86rf401|mmcu=attiny13|mmcu=attiny2313:-m avr2}\ + %{mmcu=atmega103|mmcu=atmega603|mmcu=at43*|mmcu=at76*:-m avr3}\ +-%{mmcu=atmega8*:-m avr4}\ +-%{mmcu=atmega16*|mmcu=atmega32*|mmcu=atmega64|mmcu=atmega128|mmcu=at94k:-m avr5}\ +-%{mmcu=atmega64|mmcu=atmega128|mmcu=atmega162|mmcu=atmega169: -Tdata 0x800100} " ++%{mmcu=atmega8*|mmcu=atmega48:-m avr4}\ ++%{mmcu=atmega16*|mmcu=atmega32*|mmcu=atmega64|mmcu=atmega128|mmcu=at90can128|mmcu=at94k:-m avr5}\ ++%{mmcu=atmega48|mmcu=atmega88|mmcu=atmega64|mmcu=atmega128|mmcu=at90can128|mmcu=at90can128|mmcu=atmega162|mmcu=atmega168|mmcu=atmega169: -Tdata 0x800100} " + + /* A C string constant that tells the GCC driver program options to + pass to the linker. It can also specify how to translate options +@@ -2365,7 +2365,7 @@ + Do not define this macro if it does not need to do anything. */ + + #define LIB_SPEC \ +- "%{!mmcu=at90s1*:%{!mmcu=attiny1*:%{!mmcu=attiny28: -lc }}}" ++ "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}" + /* Another C string constant used much like `LINK_SPEC'. The + difference between the two is that `LIB_SPEC' is used at the end + of the command given to the linker. +@@ -2377,7 +2377,7 @@ + /* No libstdc++ for now. Empty string doesn't work. */ + + #define LIBGCC_SPEC \ +- "%{!mmcu=at90s1*:%{!mmcu=attiny1*:%{!mmcu=attiny28: -lgcc }}}" ++ "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lgcc }}}}}" + /* Another C string constant that tells the GCC driver program how + and when to place a reference to `libgcc.a' into the linker + command line. This constant is placed both before and after the +@@ -2421,23 +2421,29 @@ + %{mmcu=at90c8534:crtc8534.o%s} \ + %{mmcu=at90s8535:crts8535.o%s} \ + %{mmcu=at86rf401:crt86401.o%s} \ ++%{mmcu=attiny13:crttn13.o%s} \ ++%{mmcu=attiny2313:crttn2313.o%s} \ + %{mmcu=atmega103|mmcu=avr3:crtm103.o%s} \ + %{mmcu=atmega603:crtm603.o%s} \ + %{mmcu=at43usb320:crt43320.o%s} \ + %{mmcu=at43usb355:crt43355.o%s} \ + %{mmcu=at76c711:crt76711.o%s} \ + %{mmcu=atmega8|mmcu=avr4:crtm8.o%s} \ ++%{mmcu=atmega48:crtm48.o%s} \ ++%{mmcu=atmega88:crtm88.o%s} \ + %{mmcu=atmega8515:crtm8515.o%s} \ + %{mmcu=atmega8535:crtm8535.o%s} \ + %{mmcu=atmega16:crtm16.o%s} \ + %{mmcu=atmega161|mmcu=avr5:crtm161.o%s} \ + %{mmcu=atmega162:crtm162.o%s} \ + %{mmcu=atmega163:crtm163.o%s} \ ++%{mmcu=atmega168:crtm168.o%s} \ + %{mmcu=atmega169:crtm169.o%s} \ + %{mmcu=atmega32:crtm32.o%s} \ + %{mmcu=atmega323:crtm323.o%s} \ + %{mmcu=atmega64:crtm64.o%s} \ + %{mmcu=atmega128:crtm128.o%s} \ ++%{mmcu=at90can128:crtcan128.o%s} \ + %{mmcu=at94k:crtat94k.o%s}" + + #define EXTRA_SPECS {"crt_binutils", CRT_BINUTILS_SPECS}, +--- gcc/config/avr/t-avr.orig 2003-02-27 14:45:33.000000000 -0700 ++++ gcc/config/avr/t-avr 2005-02-01 14:58:40.480875000 -0700 +@@ -50,13 +50,14 @@ + mmcu?avr3=mmcu?at43usb320 mmcu?avr3=mmcu?at43usb355 \ + mmcu?avr3=mmcu?at76c711 \ + mmcu?avr4=mmcu?atmega8515 mmcu?avr4=mmcu?atmega8535 \ +- mmcu?avr4=mmcu?atmega8 \ ++ mmcu?avr4=mmcu?atmega8 mmcu?avr4=mmcu?atmega48 \ ++ mmcu?avr4=mmcu?atmega88 \ + mmcu?avr5=mmcu?atmega161 mmcu?avr5=mmcu?atmega162 \ + mmcu?avr5=mmcu?atmega163 mmcu?avr5=mmcu?atmega169 \ +- mmcu?avr5=mmcu?atmega16 \ ++ mmcu?avr5=mmcu?atmega16 mmcu?avr5=mmcu?atmega168 \ + mmcu?avr5=mmcu?atmega323 mmcu?avr5=mmcu?atmega32 \ + mmcu?avr5=mmcu?atmega64 mmcu?avr5=mmcu?atmega128 \ +- mmcu?avr5=mmcu?at94k ++ mmcu?avr5=mmcu?at94k mmcu?avr5=mmcu?at90can128 + + MULTILIB_EXCEPTIONS = + |