> So if I upgrade glibc, the kernel won't work?
OK, I'm not really that much of an expert and I've learnt many things
the hard way. So let me tell you some things from experience!
Anybody who know better please do correct me.
I started out with a Redhat 7 system, so it has a 2.2 kernel and glibc
2.1. Since then I've been doing most of my upgrades by compiling
sources (its a lot more work and lot messier, but you get to learn a
lot more then by just installing RPMs!)
Once I got the drivers and other kernel configuration paramaters
right, I had no trouble at all. glibc worked just fine with the new
kernel. My guess is that glibc talks to the kernel through
traps/interrupts so unless there's a drastic change in the interface
glibc wouldn't mind... and the kernel developers won't break binary
compatibility unless there's an overwhelmingly strong reason to do so.
My conclusion, kernels can be upgraded pretty painlessly.
Glibc was another matter. I installed glibc 2.2.3 with the prefix
/usr/local (the default) and everything seemed fine. But when I later
upgraded to 2.2.5 things went nuts. I don't know what I did, but
somehow the linker (ld-linux) couldn't find glibc 2.2.3 so everything
I'd compiled on my system failed. When I copied ld-2.2.3.so to /lib
hoping it would be found there, all of redhat's stuff (cp, ls etc!!!)
stopped working. I had to boot from the rescue CD to fix that.
Ultimately I ended up compiling both the glibc 2.2.3 and 2.2.5 and
installing them both with /usr prefix, and everything's been working
fine ever since.
My conclusion, upgrading glibc can break your system totally if you
don't know that you're doing!
However there's one thing you should know... the kernel doesn't need
to find glibc while its being compiled... its the other way around.
Glibc is a C-callable interface to ther kernel services.
If you also want to upgrade GCC you might want to do it before
glibc... the quality of code produced by the compiler won't depend
much on the version of libc used by the compiler, but compiling glibc
with the latest gcc might help take advantages of the latest features
and optimizations.
However, use kgcc rather than gcc 3.x to compile the kernel. I
remember getting a horribly broken kernel when I compiled it with
3.0.1 (iirc)