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

时间:2014-11-20 07:15:09

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

我正在学习编译器,并希望将自己的更改改为GCC解析器和词法分析器。是否有任何测试工具或其他方式可供我更改gcc代码并相应地进行测试。

我尝试更改词法分析文件,但现在我卡住了,因为我不知道如何编译这些文件。我尝试使用其他GCC编译器进行编译但显示错误。我甚至尝试过 configure和make ,但是每次更改都不会这样做。

这些变化的目的只是学习,我必须考虑GCC,因为这是我的教师允许的唯一编译器。

2 个答案:

答案 0 :(得分:3)

  

我甚至尝试过配置和制作,但是做到这一点,每次改变都没有效率。

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

另一个可以帮助显着减少构建时间的选项是只启用您感兴趣的语言。由于您正在尝试,如果您创建适用于C的内容,您可能会非常高兴或者对于C ++,即使出于某种模糊的原因,Java恰好打破了。当您为更大的受众群体提供更改时,测试其他语言会变得相关,但目前还不是这样。涵盖此内容的配置选项为--enable-languages=c,c++

大多数配置选项都记录在Installing GCC: Configuration页面上。在Contributing to GCC页面上记录了对您的更改的严格测试,但这可能适用于以后:您应该知道如何通过简单地尝试使用新功能的代码来使更简单的测试通过。

答案 1 :(得分:1)

您进行更改(通过保存您修改的文件进行更改"永久性"),编译代码并运行测试套件。

您通常会编写其他测试或删除那些因您的更改而无效的测试。

如果您的更改没有做出任何贡献,那么#34;肯定"到上游的编译器可能永远不会接受它们,并且唯一的"永久性"你可以得到你当地副本的修改。