Binary File Descriptor Article Index for
Binary
Website Links For
Binary
 

Information About

Binary File Descriptor




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 GAS , GLD , minor tools collectively known as the " Binutils ", and the GNU Debugger . 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. 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 hard; David's response was "BFD" (big fucking deal). This became the library name, and "Binary File Descriptor" was invented later as the meaning of the letters.


EXTERNAL LINKS