GNU BFD is the GNU Binary File Descriptor library. Its primary purpose is to provide a unified interface to different binary file formats. Specifically, it allows a program to access a.out, COFF, and ELF binaries the same way.

GNU BFD is used by the binutils package, as well as the GNU linker ld.

The name BFD 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".