Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#33269 closed request (fixed)

Please add XMEGA support to the new avr-gcc 4.6.2

Reported by: michal.schulz@… Owned by: g5pw (Aljaž Srebrnič)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: xmega Cc: marc.sowen@…
Port: avr-gcc

Description

The newly upgraded avr-gcc compiler (4.6.2) does not support XMEGA devices, whereas binutils does:

$ avr-gcc --target-help The following options are target specific: [...] Known MCU names:

avr2 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515 at90c8534 at90s8535 avr25 ata6289 attiny13 attiny13a attiny2313 attiny2313a attiny24 attiny24a attiny4313 attiny44 attiny44a attiny84 attiny84a attiny25 attiny45 attiny85 attiny261 attiny261a attiny461 attiny461a attiny861 attiny861a attiny43u attiny87 attiny48 attiny88 at86rf401 avr3 at43usb355 at76c711 avr31 atmega103 at43usb320 avr35 at90usb82 at90usb162 atmega8u2 atmega16u2 atmega32u2 attiny167 avr4 atmega8 atmega48 atmega48a atmega48p atmega88 atmega88a atmega88p atmega88pa atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b at90pwm81 avr5 atmega16 atmega16a atmega161 atmega162 atmega163 atmega164a atmega164p atmega165 atmega165a atmega165p atmega168 atmega168a atmega168p atmega169 atmega169a 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 atmega16hva atmega16hva2 atmega16hvb atmega32hvb atmega64hve at90can32 at90can64 at90pwm216 at90pwm316 atmega32c1 atmega64c1 atmega16m1 atmega32m1 atmega64m1 atmega16u4 atmega32u4 atmega32u6 at90scr100 at90usb646 at90usb647 at94k m3000 avr51 atmega128 atmega1280 atmega1281 atmega1284p atmega128rfa1 at90can128 at90usb1286 at90usb1287 avr6 atmega2560 atmega2561 avr1 at90s1200 attiny11 attiny12 attiny15 attiny28

[...] AVR Assembler options: [...] Known MCU names:

avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 at90s1200 attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515 at90c8534 at90s8535 attiny13 attiny13a attiny2313 attiny2313a attiny24 attiny24a attiny4313 attiny44 attiny44a attiny84 attiny84a attiny25 attiny45 attiny85 attiny261 attiny261a attiny461 attiny461a attiny861 attiny861a attiny87 attiny43u attiny48 attiny88 at86rf401 ata6289 at43usb355 at76c711 atmega103 at43usb320 attiny167 at90usb82 at90usb162 atmega8u2 atmega16u2 atmega32u2 atmega8 atmega48 atmega48a atmega48p atmega88 atmega88a atmega88p atmega88pa atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b at90pwm81 atmega16 atmega16a atmega161 atmega162 atmega163 atmega164a atmega164p atmega165 atmega165a atmega165p atmega168 atmega168a atmega168p atmega169 atmega169a atmega169p atmega169pa atmega32 atmega323 atmega324a atmega324p atmega324pa atmega325 atmega325a atmega325p atmega325pa atmega3250 atmega3250a atmega3250p atmega3250pa atmega328 atmega328p atmega329 atmega329a atmega329p atmega329pa atmega3290 atmega3290a atmega3290p atmega3290pa atmega406 atmega64 atmega640 atmega644 atmega644a atmega644p atmega644pa atmega645 atmega645a atmega645p atmega649 atmega649a atmega649p atmega6450 atmega6450a atmega6450p atmega6490 atmega6490a atmega6490p atmega16hva atmega16hva2 atmega16hvb atmega16hvbrevb atmega32hvb atmega32hvbrevb atmega64hve at90can32 at90can64 at90pwm161 at90pwm216 at90pwm316 atmega32c1 atmega64c1 atmega16m1 atmega32m1 atmega64m1 atmega16u4 atmega32u4 atmega32u6 at90usb646 at90usb647 at90scr100 at94k m3000 atmega128 atmega1280 atmega1281 atmega1284p atmega128rfa1 at90can128 at90usb1286 at90usb1287 atmega2560 atmega2561 atxmega16a4 atxmega16d4 atxmega16x1 atxmega32a4 atxmega32d4 atxmega32x1 atxmega64a3 atxmega64d3 atxmega64a1 atxmega64a1u atxmega128a3 atxmega128b1 atxmega128d3 atxmega192a3 atxmega192d3 atxmega256a3 atxmega256a3b atxmega256a3bu atxmega256d3 atxmega128a1 atxmega128a1u

I guess an additional patch is needed to add xmega support to gcc...

Change History (12)

comment:2 Changed 12 years ago by marc.sowen@…

Cc: marc.sowen@… added

Cc Me!

comment:3 Changed 12 years ago by marc.sowen@…

The patch is included in gcc 4.7. The release candidate should be out this week, so maybe we wait for 4.7 final?

comment:4 Changed 12 years ago by g5pw (Aljaž Srebrnič)

Owner: changed from macports-tickets@… to g5pw@…

I'll take a look ;)

comment:5 Changed 12 years ago by g5pw (Aljaž Srebrnič)

Status: newassigned

Hello! I believe this is fixed in r90921 . Can you confirm?

comment:6 in reply to:  5 Changed 12 years ago by michal.schulz@…

Replying to g5pw@…:

Hello! I believe this is fixed in r90921 . Can you confirm?

Hello!

Not confirmed. gcc 4.6.3 seems to not support omega cpus:

$ avr-gcc --version
avr-gcc (GCC) 4.6.3

$ avr-gcc --target-help
The following options are target specific:
  -mcall-prologues            Use subroutines for function prologues and
                              epilogues
  -mint8                      Use an 8-bit 'int' type
  -mmcu=MCU                   Select the target MCU
  -mno-interrupts             Change the stack pointer without disabling
                              interrupts
  -mpmem-wrap-around          Make the linker relaxation machine assume that a
                              program counter wrap-around occurs.
  -mrelax                     Relax branches
  -mshort-calls               Use rjmp/rcall (limited range) on >8K devices
  -mtiny-stack                Change only the low 8 bits of the stack pointer

Known MCU names:
  avr2 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26 at90s4414 
  at90s4433 at90s4434 at90s8515 at90c8534 at90s8535 avr25 ata6289 attiny13 
  attiny13a attiny2313 attiny2313a attiny24 attiny24a attiny4313 attiny44 
  attiny44a attiny84 attiny84a attiny25 attiny45 attiny85 attiny261 
  attiny261a attiny461 attiny461a attiny861 attiny861a attiny43u attiny87 
  attiny48 attiny88 at86rf401 avr3 at43usb355 at76c711 avr31 atmega103 
  at43usb320 avr35 at90usb82 at90usb162 atmega8u2 atmega16u2 atmega32u2 
  attiny167 avr4 atmega8 atmega48 atmega48a atmega48p atmega88 atmega88a 
  atmega88p atmega88pa atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2 
  at90pwm2b at90pwm3 at90pwm3b at90pwm81 avr5 atmega16 atmega16a atmega161 
  atmega162 atmega163 atmega164a atmega164p atmega165 atmega165a atmega165p 
  atmega168 atmega168a atmega168p atmega169 atmega169a 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 atmega16hva 
  atmega16hva2 atmega16hvb atmega32hvb atmega64hve at90can32 at90can64 
  at90pwm216 at90pwm316 atmega32c1 atmega64c1 atmega16m1 atmega32m1 
  atmega64m1 atmega16u4 atmega32u4 atmega32u6 at90scr100 at90usb646 
  at90usb647 at94k m3000 avr51 atmega128 atmega1280 atmega1281 atmega1284p 
  atmega128rfa1 at90can128 at90usb1286 at90usb1287 avr6 atmega2560 
  atmega2561 avr1 at90s1200 attiny11 attiny12 attiny15 attiny28 

comment:7 Changed 12 years ago by g5pw (Aljaž Srebrnič)

Ah, I'm sorry, It looks like I was mistakengly looking at the assembler list. So it's just a matter of including the patch linked above then?

comment:8 in reply to:  7 ; Changed 12 years ago by marc.sowen@…

Replying to g5pw@…:

Ah, I'm sorry, It looks like I was mistakengly looking at the assembler list. So it's just a matter of including the patch linked above then?

Yes, but again I would wait for gcc 4.7.0 which already include all of these patches. It should be out by the end of next week:
http://gcc.gnu.org/ml/gcc/2012-03/msg00194.html
The patch mentioned above doesn't apply against 4.6 so it would need some work to make it run.

comment:9 in reply to:  8 Changed 12 years ago by g5pw (Aljaž Srebrnič)

Resolution: fixed
Status: assignedclosed

Replying to marc.sowen@…:

Replying to g5pw@…:

Ah, I'm sorry, It looks like I was mistakengly looking at the assembler list. So it's just a matter of including the patch linked above then?

Yes, but again I would wait for gcc 4.7.0 which already include all of these patches. It should be out by the end of next week:
http://gcc.gnu.org/ml/gcc/2012-03/msg00194.html
The patch mentioned above doesn't apply against 4.6 so it would need some work to make it run.

Fine! Let's wait for the 4.7 then. :)

comment:10 Changed 12 years ago by marc.sowen@…

Changeset #91227 works for me! Thanks a lot! I think we can close the ticket.

comment:11 Changed 12 years ago by g5pw (Aljaž Srebrnič)

GLad to hear that! Ticket is already closed ;)

comment:12 Changed 12 years ago by marc.sowen@…

Oops! Sorry, I missed that!

Note: See TracTickets for help on using tickets.