[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