madison

An Unpleasant Trip to the Linux Library

Evan Leibovitch | February 25, 1999 12:00 AM PST

Summary

There's a short-term compatibility problem between some versions of Linux and some of the binary software available for it.
Despite its increasing ease of use and installation, there's a short-term compatibility problem between some versions of Linux and some of thebinary software available for it. If you don't match up your Linux andyour software properly, you could be in for some headaches.

Here's why: A single special file on all Linux systems, almost as critical to normal operations as the kernel, called 'libc' (pronounced lib-SEE). Usually resting in the /lib directory, it's a shared library file containing basic functions that are used by most of Linux's binary programs. Libc is akin to a Windows DLL but even more important; without it most binary programs on a Linux system couldn't run.

Why is this file worth mentioning now? Because the Linux libc isundergoing a substantial upgrade, and the new version isn't compatiblewith the old one. Understanding what's happening is the first step toward not getting burned when you try to install that new word processor.

A Little History
While the open-source version of libc originated within the GNU project,the Linux version branched off and maintained its own development.Until somewhere around release 5.4.38 of Linux libc, most Linux systems used the same version of libc.

But a bit more than a year ago, the Linux libc developers decided tomerge their efforts back into the GNU efforts, so that release 6 of theLinux libc would synchronize with release 2 of GNU's libc, known in commonparlance as "glibc" (pronounced JEE-lib-SEE).

Glibc is a significant technological step forward; more compliance withtraditional Unix programming standards and better internationalization areamong its many benefits. But along with these advances have come somesignificant pains, one being that software written for libc won't run with glibc, and vice versa.

The GNU folk have never cared much about end-user issues such as backwardscompatibility; come to think of it, they've never cared much for end usersperiod. So programs that were compiled to run with glibc could not run ona system that only used the older Linux libc 5. As a result, Linuxpackagers, programmers, and end-users have been on a bit of a wild ridethat's far from over.

The most important thing to know now is which libc your own Linux uses.Versions based on glibc include Red Hat 5.0, SuSE 6.0, Debian 2.0, orany later releases of these three. The next edition of Caldera will have it too.

When obtaining binary versions of Linux applications, make sure that thelibrary it was developed for matches that of your Linux version. Mostprograms that use glibc say so explicitly.

The situation would be messy enough if that was all. But apparently somedevelopers jumped the gun developing with glibc. As a result, the growingpains haven't subsided for users of some big-name software. Moreon this next week.

Has the libc switchover affected you? Let us know in the ZDNet LinuxForum. Or write to Evan directly at evan@starnix.com.

Related Links:
GNU glibc homepage
Red Hat White Paper on glibc
The glibc2 HOWTO

Talkback - Tell Us What You Think

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity