problem with AVR cross compiler

Egbert Jan van den Bussche egbert@vandenbussche.nl
Fri Mar 7 08:12:00 GMT 2008


Hi Brian,

There seems to be a new 'class' AVR35, introduced in 4.2.3. Would it be 
possible to find out who was responsible for this change/patch? He could 
tell if a newer binutils was used for his testing.

Below are the diffs for avr.c, avr.h, and t-avr in the source tree 
/gcc-4.2.3/gcc/config/avr.

[egbert@server avr]$ diff avr.c 
/var/ftp/Linux/AVR-GCC/gcc-4.2.3/gcc/config/avr/avr.c
145a146
 >   { 0, 0, 1, 1, "__AVR_ARCH__=35"},
159a161
 >   ARCH_AVR35,
214a217,220
 >     /* Classic + MOVW + JMP/CALL.  */
 >   { "avr35",        ARCH_AVR35, NULL },
 >   { "at90usb82",    ARCH_AVR35, "__AVR_AT90USB82__" },
 >   { "at90usb162",   ARCH_AVR35, "__AVR_AT90USB162__" },
265,266d270
<   { "at90usb82",    ARCH_AVR5, "__AVR_AT90USB82__" },
<   { "at90usb162",   ARCH_AVR5, "__AVR_AT90USB162__" },

[egbert@server avr]$ diff avr.h 
/var/ftp/Linux/AVR-GCC/gcc-4.2.3/gcc/config/avr/avr.h
736c736
< #define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;\
---
 > #define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;mmcu=avr35:-mmcu=avr3;\
762c762,764
<   mmcu=at76*:-m avr3}\
---
 >   mmcu=at76*|\
 >   mmcu=at90usb82|\
 >   mmcu=at90usb162:-m avr3}\
772c774,775
<   mmcu=at90usb*|\
---
 >   mmcu=at90usb64*|\
 >   mmcu=at90usb128*|\
846a850,851
 > %{mmcu=at90usb162|mmcu=avr35:crtusb162.o%s} \
 > %{mmcu=at90usb82:crtusb82.o%s} \
893,894d897
< %{mmcu=at90usb82:crtusb82.o%s} \
< %{mmcu=at90usb162:crtusb162.o%s} \

[egbert@server avr]$ diff t-avr 
/var/ftp/Linux/AVR-GCC/gcc-4.2.3/gcc/config/avr/t-avr
40,41c40,41
< MULTILIB_OPTIONS = mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr4/mmcu=avr5
< MULTILIB_DIRNAMES = avr2 avr25 avr3 avr4 avr5
---
 > MULTILIB_OPTIONS = 
mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr35/mmcu=avr4/mmcu=avr5
 > MULTILIB_DIRNAMES = avr2 avr25 avr3 avr35 avr4 avr5
61a62,63
 >       mmcu?avr35=mmcu?at90usb82 \
 >       mmcu?avr35=mmcu?at90usb162 \
108,109d109
<       mmcu?avr5=mmcu?at90usb82 \
<       mmcu?avr5=mmcu?at90usb162 \
[egbert@server avr]$


Egbert Jan



Brian Dessent wrote:
> Egbert Jan van den Bussche wrote:
>
>   
>> Thanks Brian. I went back just one release (GCC 4.2.2) and building
>> AVR-GCC is OK again. I'll try to investigate  bit more. I did use the
>> 2.18 binutils which compiled just fine on the same machine. There was an
>>     
>
> Since binutils and gcc are not released in sync, you may require
> something newer than 2.18 (which was released 2007-08-28) to go with
> 4.2.3 (released 2008-02-01.)
>
>   
>> issue some time ago (in the 4.1.1 era) with libssp. Maybe I was bitten
>> by that. During Configure you must specify --disable-libssp. This comes
>> all from the avwiki (avrwiki.com) and I have no idea what libssp does.
>>     
>
> libssp is a library that's part of the stack-smashing protection system
> that's activated with -fstack-check.  It isn't available on all targets,
> and it's likely that AVR is one such target.  Ideally it should default
> to disabled for those targets that don't support it, but sometimes those
> details aren't looked after.  I don't think this is related.
>
> Brian
>   



More information about the Gcc-help mailing list