(This page is under construction)
The GNU Binutils Wiki
Hello and welcome to the GNU Binutils wiki. The idea for this wiki is to provide a place where binutils users and developers can discuss the GNU Binutils project. The hope is that it will provide help for people wanting to port or use the binutils, as well as a place for people to contribute their own experiences with the binutils.
It will also be used to document the project's goals, code of conduct, and any other similar features.
Feel free to add more information about Binutils to these pages. To do so you can either ask on the binutils mailing list for someone to add the new text, or you can you can add it yourself. For the second method you first need to request a wiki account and then become part of the EditorGroup by requesting sponsorship from an existing member.
What is the project about ?
The GNU Binutils are part of a larger meta-project intended to provide users with all of the tools that they might need in order to create programs and applications of their own. This larger project includes tools like the GCC compiler, the GLIBC library and the GDB debugger. Whilst designed to work with these other tools, the binutils are also a fully featured project of their own, and can be used independently of the other GNU tools if so desired.
The sources for the GNU Binutils are distributed under the auspices of the GNU General Public License version 3. The source documentation is distributed under the GNU Free Documentation License version 1.3. It is important to note that files processed by the tools in the GNU Binutils do not have to have these licenses, nor do any files produced by the tools automatically inherit the requirements of the GPL or FDL.
The GNU Binutils project provides the following tools:
An assembler (gas)
Various binary inspection tools (addr2line, nm, objdump, readelf, size, strings)
- Various binary manipulation tools (elfedit, objcopy, strip)
- Various tools related to the Windows environment (dlltool, dllwrap, windres, windmc)
- A tool for demangling mangled names (cxxfilt)
Several libraries related to binary files (libbfd, libopcodes, libctf, libsframe)
The project also makes use of several libraries developed by other projects:
It also shares some top level files with the GNU GDB project.
How do I contribute to the binutils ?
If you want to contribute to the project there is detailed information on this page.
There is a pre-commit checking system for patches sent to the binutils mailing list. This can help detect problems before they are checked in.
There is also a post-commit building system that checks that the tools build on various different architectures. See the Buildbot page for more information about this system.
The GNU Binutils operates under a Code of Conduct that provides guidelines on how we would like people contributing to the project to behave. This is an evolving document and we are always looking for ways to improve it.
Where can I obtain a copy of the binutils ?
New versions of the binutils sources are released about twice a year. Copies of these sources can be obtained from the GNU software archive and the Sourceware archive.
The sources are also maintained in a git repository which can be cloned like this:
git clone https://sourceware.org/git/binutils-gdb.git
All Linux and BSD distributions also include pre-built versions of the binutils as part of their base system software.
Where can I find more information ?
The official documentation for the GNU Binutils can be found on Sourceware here and also the GNU servers here.
There is a binutils@sourceware.org mailing list where lots of questions are asked and lots of answers are obtained.
There is a Libera IRC chat channel available where you can also ask questions. There is also a tag on StackOverflow for binutils questions.
To Do
- Describe the GNU Binutils and the intentions of the project.
- Add a my-first-contribution page.
- Add links to the bio's for regular contributors.
- Add per-tool pages, describing each tool and including examples of their use.
- Add a page on how-to-port
- Add a page on frequently-asked-questions
- Add a page on binutils releases. [Where to get them, how they are made, when they were created, etc]
- Add a page on "Bite Sized Tasks" - simple things that newcomers might like to do, in order to help familiarize themselves with the binutils.
- Add a page on building the binutils.
- Add a page on testing the binutils.
- Add a page for user-experiences and contributor-experiences.
- Add a page on the history of the GNU Binutils project ?
- Add others pages...