我目前正在尝试为新架构编写GCC后端,但是当我尝试对其进行编译时,出现以下错误消息:
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
我将如何解决此错误,以便可以构建后端?
据我所知,我已经实现了要构建GCC所需的目标宏,函数和insn模式。
抱歉,这个问题有点含糊,我不确定我可以提供什么额外的信息。如果需要更多具体信息,请让我知道,我将编辑问题。
提前感谢。
我将如何解决此错误,以便可以构建后端?
调试cc1
。
xgcc
位于$builddir/gcc
中。因此运行$builddir/xgcc -B$builddir -v -save-temps <options-that-crash-cc1>
。
[xgcc -v ...
将打印它正在调用的子命令,记录它提供给崩溃的cc1
调用的选项。
针对该cc1
调用运行调试器,提供正确的选项,并在abort
处实际设置一个断点(将为fancy_abort
)。
无需优化即可构建编译器。为此,只需在make
中运行$builddir/gcc
。您可以根据需要提供其他选项,例如make -j4 cc1 CXXFLAGS='<flags-to-pass>'
。
[$builddir/gcc
提供.gdbinit
来扩展gdb
并附加钩子,以改善调试体验。