为什么GNU binutils和GDB合并为一个软件包? [英] Why were GNU binutils and GDB merged as one package?

查看:136
本文介绍了为什么GNU binutils和GDB合并为一个软件包?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尤其参见标签部分.

此决定的依据是什么?合并是否会影响建议的构建最新的binutils和GDB的方式? (实际上,当我签出binutils-2_25_1并运行make all && make install时,我也得到了gdb.)

What was the rationale behind this decision? Does the merge affect the suggested way to build latest binutils and GDB? (In fact when I checked out binutils-2_25_1 and ran make all && make install, I got gdb as well.)

推荐答案

我进行了转换.我之所以将它们建立为联合存储库,部分原因是历史原因,部分是实际原因.

I did the conversion. The reason I made them a joined repository was partly historical and partly practical.

从历史上看,gdb和binutils几乎一直在一起.当它们保存在天鹅座内部时,它们位于单个源树中(称为"devo").然后,稍后在设置sourceware.org时,他们共享一个存储库(称为"src").您可能没有注意到这一点,因为存储库使用CVS模块让开发人员仅检出树的一部分.

Historically gdb and binutils have pretty much always been together. They were in a single source tree (called "devo") when they were maintained inside Cygnus. Then, later, when sourceware.org was set up, they shared a repository (called "src"). You may not have noticed this because the repository used CVS modules to let developers check out just a part of the tree.

实际上,gdb和binutils共享许多代码.他们共享自己的构建基础结构(configure等);它们共享支持库(libibertyinclude)目录;他们共享BFD库;他们共享操作码库.对我来说,将它们放在一起是更有意义的,既可以避免不断地来回合并(对于某些使用GCC的组件已经做到了,这确实很痛苦),并且还可以尽量减少对一个项目进行负面更改的问题影响对方.例如,至少从理论上讲,在BFD上进行常规开发的人们应该同时构建gdb binutils.

Practically, gdb and binutils share a lot of code. They share their build infrastructure (configure and the like); they share support libraries (the libiberty and include) directories; they share the BFD library; and they share the opcodes library. To me it made more sense to keep them together, both to avoid constant merging back and forth (this is already done for some components with GCC, and it's a real pain), and also to try to minimize problems where changes to one project negatively affect the other. For example, at least in theory people doing regular development on BFD should build both gdb and binutils.

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

The top-level configure script used by the shared repository lets the developer disable any particular directory using --disable-DIR. For example, if you don't want to build gdb, pass --disable-gdb.

这篇关于为什么GNU binutils和GDB合并为一个软件包?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆