2014-05-18 16 views
5

當編譯一個ChibiOS-RT的項目,我會在鏈接時出現以下錯誤(與臂無 - EABI - 海合會4.8):臂無 - EABI-GCC 4.8分段錯誤(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 

這不會發生與arm-none-eabi-gcc 4.7。

這是操作系統構建文件之一,所以我不想惹它 - 我從來沒有見過gcc本身在構建時遇到分段錯誤。此外,它在構建任何項目時都會發生,甚至在根目錄的ChibiOS存儲庫中完全不變。

有關診斷此問題的任何建議?

+1

首先,會出現這種情況*你這個編譯鏈接這個特別的事情,每一次?如果沒有,你有什麼是壞RAM。其次,嘗試擦除並重新安裝arm-none-eabi-gcc-4.8 *和* binutils的任何版本。如果這兩個都不能解決問題,那麼您在編譯器和/或鏈接器中發現了一個誠實的Ghod錯誤,您應該諮詢「gcc-help @ gcc.gnu.org」以獲取有關如何報告它的建議。 – zwol

+0

ICE是一個錯誤;海灣合作委員會本身認識到有什麼不對。如果它在4.7中運行良好,則返回4.7,並使用它來構建4.8或4.9。 「這很奇怪;通常情況下,海灣合作委員會得到一個很好的鍛鍊本身和它的支持庫。 –

回答

4

GCC 4.8不支持LTOggdb一起使用。只需禁用一個或另一個。

嘗試配置你的Makefile:

USE_LTO = no 

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

沒有-ggdb標誌