Why were GNU binutils and GDB merged as one packag

2019-06-18 23:33发布

问题:

  • https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git

See, especially, the tags section.

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.)

回答1:

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

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.

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.

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.