GNU Binutils


The GNU Binary Utilities, or binutils, are a set of programming tools for creating and managing binary programs, object files, libraries, profile data, and assembly source code.

Tools

They were originally written by programmers at Cygnus Solutions.
The GNU Binutils are typically used in conjunction with compilers such as the GNU Compiler Collection, build tools like make, and the GNU Debugger.
Through the use of the Binary File Descriptor library, most tools support the various object file formats supported by libbfd.
H.J. Lu maintains a version of binutils with features purely for Linux.

Commands

The binutils include the following commands:
asassembler popularly known as GAS
ldlinker
gprofprofiler
addr2lineconvert address to file and line
arcreate, modify, and extract from archives
c++filtdemangling filter for C++ symbols
dlltoolcreation of Windows dynamic-link libraries
goldalternative linker for ELF files
nlmconvobject file conversion to a NetWare Loadable Module
nmlist symbols in object files
objcopycopy object files, possibly making changes
objdumpdump information about object files
ranlibgenerate indices for archives
readelfdisplay content of ELF files
sizelist total and section sizes
stringslist printable strings
stripremove symbols from an object file
windmcgenerates Windows message resources
windrescompiler for Windows resource files

elfutils

Ulrich Drepper wrote elfutils, to partially replace GNU Binutils, purely for Linux and with support only for ELF and DWARF. It distributes three libraries with it for programmatic access.