Ошибка сегментации при попытке построить мой бэкэнд G CC - PullRequest
2 голосов
/ 03 марта 2020

В настоящее время я пытаюсь написать бэкэнд G CC для новой архитектуры, но когда я пытаюсь скомпилировать его, я получаю следующее сообщение об ошибке:

xgcc: internal compiler error: Segmentation fault signal terminated program cc1

Сборка настроена со следующим команда:

../gcc/configure --prefix=--prefix=$HOME/GCC-10.0.1 --disable-bootstrap --target=arch_name --enable-languages=c

Как мне go исправить эту ошибку, чтобы я мог построить свой бэкэнд?

Насколько я знаю, я реализовал целевой макрос, функции и шаблоны insn, необходимые для построения G CC.

Извините, что вопрос немного расплывчатый, я не уверен, какую дополнительную информацию я могу предоставить. Если вам нужна дополнительная информация c, пожалуйста, дайте мне знать, и я отредактирую вопрос.

Заранее спасибо.

1 Ответ

3 голосов
/ 04 марта 2020

Как мне go исправить эту ошибку, чтобы я мог построить свой бэкэнд?

Отладка cc1.

  1. xgcc находится в $builddir/gcc. Следовательно, запустите $builddir/xgcc -B$builddir -v -save-temps <options-that-crash-cc1>.

  2. xgcc -v ..., чтобы распечатать подкоманды, которые он вызывает, записать параметры, которые он предоставляет для вызывающего сбоя cc1 вызова.

  3. Запустите отладчик для этого вызова cc1, предоставьте правильные параметры и установите точку останова на abort (будет fancy_abort) на самом деле.

  4. Build компилятор без оптимизации. Для этого достаточно запустить make в $builddir/gcc. Вы можете предоставить дополнительную опцию, если хотите, например, make -j4 cc1 CXXFLAGS='<flags-to-pass>'.

  5. $builddir/gcc предоставляет .gdbinit для дополнения gdb дополнительными хуками для улучшения опыта отладки.

...