gcc - 更改 GCC 代码。如何测试新增功能的添加情况?

标签 gcc compiler-construction gnu compiler-optimization gcc4.7

我正在学习编译器,并且想要对 GCC 解析器和词法分析器进行自己的更改。是否有任何测试工具或其他可用方法可以让我更改 gcc 代码并进行相应的测试。

我尝试更改词法分析文件,但现在我陷入困境,因为我不知道如何编译这些文件。我尝试使用其他 GCC 编译器进行编译,但显示错误。我什至尝试配置并制作,但每次更改都这样做似乎效率不高。

这些更改的目的只是为了学习,我只能考虑 GCC,因为这是我的导师允许的唯一编译器。

最佳答案

I even tried configure and make but doing that wit every change is not at all efficient.

这正是你应该做的。 (好吧,你不需要在每次更改后重新配置,只需再次运行 make 即可。)但是,默认情况下 GCC 在引导模式下配置自身,这意味着你的主机编译器不仅会编译 GCC ,编译 GCC 然后再次编译 GCC(一次又一次)。对于您的目的而言,这太过分了,您可以通过在配置选项中添加 --disable-bootstrap 来防止这种情况发生。

另一个可以帮助显着减少构建时间的选项是仅启用您感兴趣的语言。由于您正在尝试,如果您创建适用于 C 或 C++ 的东西,您可能会非常高兴,即使由于一些不明原因,Java 碰巧崩溃了。当您将更改提供给更多受众时,测试其他语言就变得有意义,但目前情况并非如此。涵盖此内容的配置选项是 --enable-languages=c,c++

大多数配置选项都记录在 Installing GCC: Configuration 上页。 Contributing to GCC 中记录了彻底测试您的更改。页,但这可能是稍后的事情:您应该知道如何通过简单地尝试使用新功能的代码来使您自己的更简单的测试通过。

关于gcc - 更改 GCC 代码。如何测试新增功能的添加情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033840/

相关文章:

visual-studio - objdump ELF 和 Windows

c++ - 我的 Linux 开发项目的 Clang vs GCC

compiler-construction - Haskell 编译器如何处理 'where' 语句?

linux - 如何找到单词在字符串中的位置?

c++ - 标识符节点*未定义(链接器问题)

c++ - "No newline at end of file"编译器警告

debugging - 使用GDB调试GNU汇编程序时使宏扩展

macos - Apples GCC 在哪里/如何在可执行文件中存储 DWARF

c - long double(80 位)是使用 -funsafe-math-optimizations 的两倍快

c - va_alist(在 64 位机器上使用变量列表)