Libiberty Explained

GNU libiberty is a software library with a collection of subroutines used by various GNU programs.[1] The library is now a decommissioned GNU package.[2]

It was originally intended to be a sort of standard cross-platform library, thus enabling it to be linked (using the usual Unix library form) 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.[3]

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 (cc, gcc, etc.), 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.

See also

External links

Notes and References

  1. Web site: Using (GNU libiberty) . . gcc.gnu.org . September 3, 2022.
  2. Web site: Decommissioned GNU packages . . gcc.gnu.org . September 3, 2022.
  3. Web site: GNU libiberty: Functions . gcc.gnu.org . . September 3, 2022.