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

编程入门 行业动态 更新时间:2024-10-11 03:23:18
本文介绍了为什么GNU binutils和GDB合并为一个软件包?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述
  • sourceware/git/gitweb.cgi? p = binutils-gdb.git

尤其参见标签部分.

此决定的依据是什么?合并是否会影响建议的构建最新的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时,他们共享一个存储库(称为"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 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等);它们共享支持库(libiberty和include)目录;他们共享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合并为一个软件包?

本文发布于:2023-06-11 18:53:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/641393.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:软件包   并为   GNU   binutils   GDB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!