为什么GNU binutils和GDB合并为一个包?

时间:2015-12-02 07:38:38

标签: c++ linux gdb binutils gnu-toolchain

尤其请参阅标记部分。

这个决定背后的理由是什么?合并是否会影响构建最新binutils和GDB的建议方式? (事实上​​,当我查看make all && make install并运行gdb时,我也获得了SELECT CNTRL_4, COLUMN_ID, RTRIM(CAST (VALUE AS VARCHAR(10))) AS PARAM FROM MY_TABLE_NAME 。)

1 个答案:

答案 0 :(得分:13)

我做了转换。我将它们作为一个联合存储库的原因部分是历史的,部分是实用的。

历史上,gdb和binutils几乎总是在一起。当它们被保持在天鹅座内时,它们在一个单一的源树(称为“devo”)中。然后,稍后,当sourceware.org建立时,他们共享一个存储库(称为“src”)。您可能没有注意到这一点,因为存储库使用CVS模块让开发人员只检查树的一部分。

实际上,gdb和binutils共享大量代码。他们共享他们的构建基础架构(zoomedPoint等);他们共享支持库(configurelibiberty)目录;他们共享BFD库;他们共享操作码库。对我来说,将它们保持在一起更有意义,既避免了来回不断的合并(这已经针对GCC的一些组件已经完成,这真的很痛苦),并且还试图最大限度地减少一个项目的变化带来负面影响的问题影响对方。例如,至少在理论上,在BFD上进行常规开发的人应该构建gdb binutils。

共享存储库使用的顶级include脚本允许开发人员使用configure禁用任何特定目录。例如,如果您不想构建gdb,请传递--disable-DIR