This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Sequence of steps needed to update both GCC and GLIBC
- From: Rogelio Serrano <rogelio at smsglobal dot net>
- To: gcc-help at gcc dot gnu dot org
- Date: Thu, 29 Apr 2004 21:26:13 +0800
- Subject: Re: Sequence of steps needed to update both GCC and GLIBC
You should have read www.linuxfromscratch.org first.
On 2004-04-29 21:14:14 +0800 Frank Krauss
<fmfkrauss@mindspring.com> wrote:
I'm writing this note to the list in the hope that it may be
useful
to someone who had similar problems as myself when attempting
to update both
GCC and GLIBC on a Linux System.
My System is the Caldera 2.3 Distribution running Kernel
2.4.22 on a Pentium
II.
My GCC was egcs-2.91.66 which I wanted to update to GCS 3.3
My GLIBC was 2.1.1 which I wanted to update to GLIBC 2.2.5
My Binutils was 2.13.2
There were Pre-reqs that had to be updated first.
1. The GCC update required me to update "Texinfo" from 3.12
to 4.6
2. The GLIBC update required me to update "make" from 3.77 to
3.79
Procedure to be followed:
1. There is a duplicate defination of RLIM_INFINITY in
resource.h.
THe GLIBC member is in /usr/include/bits/resource.h
The Kernel member is in
/usr/src/linux/include/asm/resource.h
This is described in GCC Bugzilla problem 5039.
I arbitrially decided to comment out line 26 in the Kernel
member.
2. Do the update of GCC from egcs-2.91.66 to GCC 3.0.4
Please note that this is NOT the final GCC desired.
It just has to be done in a two step phase in order for it
to work.
Follow the directions given.
The "make bootstrap" will take about 1 1/2 Hours to do.
At the end, make sure to run "ldconfig -v"
After the update is done, Re-boot your Computer and do a
"gcc -v"
It will now show that uou are using the new GCC just
created.
3. In order to feel comfortable about this new GCC, I built a
Kernel using
the "make oldconfig" option.
Before doing this you MUST put back the old "resource.h"
code that you
changed in Step 1.
Re-boot your System with the new Kernel.
4. The next step is to Upgrade GLIBC to 2.2.5.
Follow the directions given.
Make sure to capture the Console output of the "configure"
step and
check for "bad"
I used the following "configure" options
--enable-add-ons
--with-headers=/usr/src/linux/include
--prefix=/usr
The only entry that was "bad" was for "msgfmt" and I
ignored that
The "make" step will take about 20 Minutes. The "make
check" step will
take about 15 Minutes.
At the end, do "/lib/libc.so.6". It will show that the
C Library is
now 2.2.5.
Now Re-boot your Computer for safety sake.
5. In order to feel comfortable after doing this big update,
I again built
a Kernel using the "make oldconfig" option.
Re-boot your System with the new Kernel.
6. The last major step is to now update GCC from 3.0.4 to GCC
3.3.
I found that in order to get around a problem with the LD
program that I
was using, I had to explicitly specify in the "configure"
step
"--disable-libgcj".
Follow the directions given.
The "make bootstrap" will take about 1 1/2 Hours to do.
After the update is done, Re-boot your Computer and do a
"gcc -v"
It will now show that you are using the new GCC 3.3 just
created.
7. As the final Step, I assembled the Kernel one more time
using the new
GCC just created and the "make oldconfig" option.
Re-boot your System with the new Kernel.
To summerize, in a backwards manner, the list of potential
requirements
that you have to be aware of so that you understand why things
have to
be done as I did them:
Firstly, GCC 3.3 cannot be built if GLIBC 2.1.1 is active, so
GLIBC must be
updated prior.
Secondly, GLIBC 2.1.1 cannot be built if egcs-2.91.66 is
active, so GCC must
be updated prior.
Thirdly, GCC 3.0.4 cannot be built if the duplicate
definations for
RLIM_INFINITY are active, so one of them has to be
temporarily
removed.
I hope that my experiences may be of use to someone who is
trying to do
something similar to what I was doing. It took me
approximately 2 1/2 Weeks
of Trial and Error to figure out the correct Sequence of steps
needed to get
this project completed and so maybe this procedure can improve
other peoples
time.
Yours truly,
Frank Krauss