9

I recently installed a piece of software that my group needs for a research project starting next September. Turns out the software has a known crash bug when used with glibc 2.12.1. My boss asked if we can upgrade glibc on the server that's supposed to run it. Cue my skeptical silence....

At some point, I got it into my brain that messing with glibc was about as good an idea as messing with a hungry puma; however, I've been unable to determine the source of this belief. So, if I go ahead with this:

  1. Am I doing something flagrantly stupid (e.g. I won't fix my problem, I will brick my server, or I will initiate a zombie apocalypse)?
  2. What can go wrong?
  3. What is likely to go wrong?
  4. How do I avoid the answers to 2 and 3?
Sevenless
  • 193
  • 1
  • 5
  • 3
    First, check if your distro has glibc upgrades that fixes the bug. A particular glibc of a distro might contain many backports/bugfixes to its glibc compared to the official glibc, but the distro version is still the same. – nos Aug 28 '12 at 17:30
  • 1
    As long as you have some bootable removable medium (USB flash stick, CD, DVD) the machine isn't truly bricked. Rescue will be possible by reinstalling glibc from there. To avoid any danger, you could try compiling a new glibc as a non-root user with `--prefix=$HOME` then point your `LD_LIBRARY_PATH` at it and see if it works. As a non-root user you can't screw the whole system no matter how bad you mess up. If that does work, change it to `--prefix=/usr/local/bleeding-edge-glibc` and document `LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/lib` as a requirement for the research project – Alan Curry Aug 28 '12 at 20:45
  • 1
    Can't you upgrade the distribution? And you should tell use what is the `glibc` bug you are afraid of, and what kind of software are you using. You might patch your software (assuming you have its source code), or configure otherwise your system, to circumvent it. –  Aug 29 '12 at 06:03
  • Avoid using old server software for new projects whenever possible. – Michael Hampton Aug 29 '12 at 09:14

2 Answers2

5

It is often possible to compile up a fresher libc, and have one piece of software use a different library to everyone else.

The biggest painpoint between libc versions is thread local storage, IIRC. If you're passing this milestone, all bets are off.

Having said all that - I would strongly recommend that you simply upgrade the distro to something modern. Doing piecemeal upgrades is likely to lead to the sort of pain that has you chasing your tail for months.

Tom Newton
  • 4,021
  • 2
  • 23
  • 28
2

You can refer to the compatibility table to determine binary-compatible versions.

Usually it's not a problem to upgrade glibc to a newer version, but you should build it with the same configuration flags as used in your distribution (see spec file in the appropriate SRPM package).

enter image description here

linuxbuild
  • 181
  • 6