This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]