2014-05-18 23 views
5

Przy sporządzaniu projektu ChibiOS-RT, pojawia się następujący błąd w czasie łącza (z arm-none-EABI-gcc 4.8):arm-none-EABI-gcc 4.8 winy segmentacji (ChibiOS-RT)

../../../../test/rt/test.c: In function 'TestThread': 
../../../../test/rt/test.c:314:7: internal compiler error: Segmentation fault: 11 
msg_t TestThread(void *p) { 
^
libbacktrace could not find executable to open 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <http://gcc.gnu.org/bugs.html> for instructions. 
lto-wrapper: arm-none-eabi-gcc returned 1 exit status 
/usr/gcc-arm-none-eabi-4_8-2013q4/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld: lto-wrapper failed 
collect2: error: ld returned 1 exit status 
make: *** [build/ch.elf] Error 1 

To nie występuje z uzbrojeniem-brak-eabi-gcc 4.7.

Jest to jeden z plików kompilacji systemu operacyjnego, więc nie chcę go zepsuć - i nigdy nie widziałem, aby gcc napotkał błąd segmentacji podczas budowania. Dodatkowo występuje podczas budowania dowolnego projektu, nawet całkowicie niezmienionego z głównego repozytorium ChibiOS.

Wszelkie porady dotyczące diagnozowania tego problemu?

+1

Po pierwsze, to się dzieje za każdym razem * * połączyć tę szczególną rzeczą z tego kompilatora ? Jeśli nie, to masz złą pamięć RAM. Po drugie, spróbuj wymazać i ponownie zainstalować arm-none-eabi-gcc-4.8 * i * niezależnie od wersji binutils. Jeśli żaden z nich nie rozwiązuje problemu, znalazłeś w kompilatorze i/lub linkerze błąd "uczciwy do Ghoda" i powinieneś skonsultować się z 'gcc-help @ gcc.gnu.org', aby uzyskać poradę, jak to zgłosić. – zwol

+0

ICE to błąd; GCC sam uznał, że coś jest nie tak. Jeśli zadziałało poprawnie z 4.7, wróć do 4.7 i użyj go do budowy 4.8 lub 4.9. To dziwne; Zwykle GCC uzyskuje dobre budowanie treningu i jego biblioteki wsparcia. –

Odpowiedz

4

GCC 4.8 nie obsługuje łącznie LTO i ggdb. Po prostu wyłącz te lub inne.

Spróbuj skonfigurować Makefile:

USE_LTO = no 

lub

USE_OPT = -O2 -fomit-frame-pointer -falign-functions=16 

bez flagą -ggdb