The Full Wiki

More info on Binary File Descriptor library

Binary File Descriptor library: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Binary File Descriptor library
Original author(s) Cygnus Solutions
Written in C
Type Library
License GNU General Public License

The BFD, or Binary File Descriptor library, is the GNU Project's main mechanism for the portable manipulation of object files in a variety of formats. As of 2003, it supports approximately 50 file formats for some 25 processor architectures.

BFD works by presenting a common abstract view of object files. An object file has a "header" with descriptive info; a variable number of "sections" that each have a name, some attributes, and a block of data; a symbol table; relocation entries; and so forth.

Internally, BFD translates the data from the abstract view into the details of the bit/byte layout required by the target processor and file format. Its key services include handling byte order differences, such as between a little-endian host and big-endian target, correct conversion between 32-bit and 64-bit data, and details of address arithmetic specified by relocation entries.

Although BFD was originally designed to be a generic library usable by a wide variety of tools, its licensing under the GPL, and the frequent need to tinker with the API to accommodate new systems' capabilities has tended to limit its use; BFD's main clients are the GNU Assembler (GAS), GNU Linker (GLD), and other GNU Binary Utilities ("binutils") tools, and the GNU Debugger (GDB). As a result, BFD is not distributed separately, but is always included with releases of binutils and GDB. Nevertheless, BFD is a critical component in the use of GNU tools for embedded systems development.

The BFD lib can be used to read the structured data out of a Core Dump.


When David Henkel-Wallace of Cygnus Support proposed developing the library, as a way to open up new business opportunities for the company, Richard Stallman said (correctly) that it would be difficult; David's response was "BFD" (big fucking deal). This became the library name,[1] and "Binary File Descriptor" was invented later as the meaning of the letters.


  1. ^ "Binary File Descriptor Library manual — History". GNU Project. August 2007. Retrieved 2008-04-08. "The name came from a conversation David Wallace was having with Richard Stallman about the library: RMS said that it would be quite hard—David said "BFD". Stallman was right, but the name stuck."  

External links



Got something to say? Make a comment.
Your name
Your email address