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?
4
  • 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, 2012 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, 2012 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.
    – Basile Starynkevitch
    Aug 29, 2012 at 6:03
  • Avoid using old server software for new projects whenever possible. Aug 29, 2012 at 9:14

2 Answers 2

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.

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .