Search code examples
linuxglibc

Why glibc binary is called libc.so.6 not a libc.so.1 or libc.so.4?


The modern glibc binary is called libc.so.6 in Linux. Why is "6" used here? The libc.so.1 or libc.so.8 can be good names too IMHO.

Wikipedia gives some history at http://en.wikipedia.org/wiki/GNU_C_Library but doesn't explain fully

In the early 1990s, the developers of the Linux kernel forked glibc. Their fork, called "Linux libc", was maintained separately for years and released versions 2 through 5.

When FSF released glibc 2.0 in January 1997, .... At this point, the Linux kernel developers discontinued their fork and returned to using FSF's glibc.[6]

The last used version of Linux libc used the internal name (soname) libc.so.5. Following on from this, glibc 2.x on Linux uses the soname libc.so.6


Solution

  • Those SONAMEs have already been used. Since the new version of the library presents a break in the interface, a new major SONAME number must be used for it.