Libiberty


GNU libiberty is a software library with a collection of subroutines used by various GNU programs.
It was originally intended to be a sort of standard cross-platform library, thus enabling it to be linked by just passing "-liberty" to the compiler. The contents consisted of a variety of useful functions. However, the development of standards for C and POSIX took away some of the impetus for this, and libiberty came to be used primarily as a support library for the GNU toolchain. It still contains a minimal set of functions that are either GNU extensions or occasionally unimplemented parts of the standard.
Copies of libiberty are distributed with gcc, gdb, and the binutils. libiberty is not otherwise versioned or released separately.
One important piece of libiberty functionality is a demangler for C++ and D, included so that it is available to both binutils and GDB.
The name is a pun or word play on the word "liberty". On Unix-like operating systems, library files are always named "lib" + "the name of the library." But when they are linked to with a C compiler command, the command line flag specifying the library is -l followed by the part of the library name after "lib". In libiberty's case it therefore becomes -liberty.