[Gllug] Re: [GLUG] Upgrading glibc
Nix
nix at esperi.demon.co.uk
Sat Jan 18 12:28:45 UTC 2003
On Mon, 13 Jan 2003, Paul Nasrat spake:
> On Mon, Jan 13, 2003 at 02:46:07PM +0200, Gareth Gregor wrote:
>> > I have a old RH 6.2 box, and I need to upgrade glibc to version 2.2.x,
>> > what's the easiest and safest way to do this. And this has to be done
>> > remotely?
>>
>> There is allways rpm's, but, I personally would never do it that way, i
>
> The below is just guess work, based on how I would do it:
>
> Umm I'd recommend actually trying to build all the packages on a local
> machine.
`All the packages'? But he only refers to upgrading glibc!
> 1) libelf
No need to rebuild this.
> 2) gcc/egcs
You'll need to rebuild this; if you've got GCC<2.95.4, you'll need to go
to 2.95.4pre from CVS, which has patches to libio/libstdc++ necessary
for glibc-2.2.x. (GCC 3.x has these patches in the tree, of course.)
If you have GCC-3.2, you might as well rebuild gcc with the flags
--enable-threads --with-system-zlib --enable-__cxa_atexit, which gives
you a guaranteed-stable C++ ABI. (--enable-__cxa_atexit only works on
glibc-2.2.5 and above.)
Don't ever install either glibc or GCC without doing a make check (make
-k check for GCC); there'll be a few XFAILS for GCC, but the point is to
check that *most* of the tests pass. For glibc, there had better be no
failures at all.
> 3) make
> 4) binutils
No need to rebuild either of these.
> 1) libelf
> 2) make
> 3) binutils
> 4) gcc (probably want to build
> 6) libc (and probably kernel-headers to build against)
Um, no. Assuming this is a near-from-scratch bootstrap, the order should
be make, binutils, gcc (perhaps with inhibit_libc defined if you have no
libc headers yet), libc, gcc (without inhibit_libc defined).
Assuming it's just a glibc upgrade, you just need to rebuild glibc ---
you might also need to rebuild statically linked binaries and restart
all apps that use NSS, as there is no guarantee of compatibility for
these.
(For glibc-2.3.x, you also need to --- at least ---
- upgrade to a very recent binutils
- upgrade to GCC-3.2.x
- build test and install glibc
- restart programs that use NSS
- rebuild *all* statically linked binaries
- fix all binaries that use `extern int errno;' instead of
#including <errno.h> to do the latter and rebuild them
(this won't be necessary in glibc-2.3.2, it's really a bug
workaround)
On SPARCs, there's more complexity, as the size of `long double' has
changed...)
--
`I knew that there had to be aliens somewhere in the universe. What I
did not know until now was that they read USENET.' --- Mark Hughes,
on those who unaccountably fail to like _A Fire Upon The Deep_
--
Gllug mailing list - Gllug at linux.co.uk
http://list.ftech.net/mailman/listinfo/gllug
More information about the GLLUG
mailing list