*BSD News Article 18907


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!natinst.com!hrd769.brooks.af.mil!hrd769.brooks.af.mil!not-for-mail
From: burgess@hrd769.brooks.af.mil (Dave Burgess)
Newsgroups: comp.os.386bsd.questions
Subject: Critical Path for building complete GCC2 system starting at GCC1
Date: 26 Jul 1993 17:45:01 -0500
Organization: Armstrong Laboratory, Brooks AFB, TX
Lines: 141
Message-ID: <231mpr$4tb@hrd769.brooks.af.mil>
NNTP-Posting-Host: hrd769.brooks.af.mil

Could some, anyone, please post a brief list of the steps required to
upgrade from GCC-1 to GCC-2?  Not only would it make a terrific addition
to the FAQ (which is available by anonymous FTP from hrd769.brooks.af.mil)
but would really help me get this thing put together right.

Specifically, I am running NetBSD-current (update AO 26 Jul) and am
still building everything I can with GCC1.  I would really like to
upgrade, but I just can't get the order right. 
 
For example:

Builing the kernel with gcc1 works fine, but PS requires stuff from the
new library.  Does it get built with GCC1 or GCC2?  Until I rebuild the
libc.a, I can't rebuild ps.

Building gcc (the compiler) with GCC1 is required at some point.  Is
that point before, or after the libgnu is built?

When does 'ld' get rebuilt?  How about the other /usr/src/gnu stuff?

Knowing that there are certain tools that need to be rebuilt somewhere
in the stream (ranlib, etc), where do THEY get rebuilt?

Could we use the build.world script from FreeBSD?  If so, just say so
and I will track it down and make it go.

One method I thought about employing involved recompiling everything in
the system with the current sources and GCC1.  Good plan, except that
several of the sources gag big time on GCC1.

Brain-damaged guessing:

If I were to muddle through this in a more or less (mostly less) logical
manner, I would probably start out with a current kernel (since I know
that worked).  The Makefile that is generated calls dbsym with an
unsupported argument for the vanilla 0.8 dbsym, so that needed to be
rebuilt.  This meant that I needed the new _err routine from libc.  That
means I needed to rebuild the library with gcc1 and replace the old
libc.a with the new one.  While I was at it, I would probably rebuild
the other libraries at the same time.  

What I did was remove the err() call and replaced it with a
fprintf(stderr,) call instead.  The kernel is now built.  I have already
learned my passwd file lesson (from a failed attempt early on in this
process) and will not be installing ANYTHING until the last possible
second.

So anyway,  I guess I am looking for a critical path description of this
process.  A little hand holding and coddling would sure be appreciated,
and would certainly be documented for posterity in the FAQ.

-- 
------
TSgt Dave Burgess
NCOIC AL/Management Information Systems Office
Brooks AFB, TX

From burgess  Mon Jul 26 17:30:53 1993
Received: by hrd769.brooks.af.mil (5.67/1.34)
	id AA04735; Mon, 26 Jul 93 17:30:53 -0500
Date: Mon, 26 Jul 93 17:30:53 -0500
From: burgess (Dave Burgess)
Message-Id: <9307262230.AA04735@hrd769.brooks.af.mil>
Newsgroups: comp.os.386bsd.questions
Subject: Critical path for upgrade of GCC from 1.38 to 2.*
Summary: 
Followup-To: 
Distribution: 
Organization: Armstrong Laboratory, Brooks AFB, TX
Keywords: 
Cc: 


Could some, anyone, please post a brief list of the steps required to
upgrade from GCC-1 to GCC-2?  Not only would it make a terrific addition
to the FAQ (which is available by anonymous FTP from hrd769.brooks.af.mil)
but would really help me get this thing put together right.

Specifically, I am running NetBSD-current (update AO 26 Jul) and am
still building everything I can with GCC1.  I would really like to
upgrade, but I just can't get the order right. 
 
For example:

Builing the kernel with gcc1 works fine, but PS requires stuff from the
new library.  Does it get built with GCC1 or GCC2?  Until I rebuild the
libc.a, I can't rebuild ps.

Building gcc (the compiler) with GCC1 is required at some point.  Is
that point before, or after the libgnu is built?

When does 'ld' get rebuilt?  How about the other /usr/src/gnu stuff?

Knowing that there are certain tools that need to be rebuilt somewhere
in the stream (ranlib, etc), where do THEY get rebuilt?

Could we use the build.world script from FreeBSD?  If so, just say so
and I will track it down and make it go.

One method I thought about employing involved recompiling everything in
the system with the current sources and GCC1.  Good plan, except that
several of the sources gag big time on GCC1.

Brain-damaged guessing:

If I were to muddle through this in a more or less (mostly less) logical
manner, I would probably start out with a current kernel (since I know
that worked).  The Makefile that is generated calls dbsym with an
unsupported argument for the vanilla 0.8 dbsym, so that needed to be
rebuilt.  This meant that I needed the new _err routine from libc.  That
means I needed to rebuild the library with gcc1 and replace the old
libc.a with the new one.  While I was at it, I would probably rebuild
the other libraries at the same time.  

What I did was remove the err() call and replaced it with a
fprintf(stderr,) call instead.  The kernel is now built.  I have already
learned my passwd file lesson (from a failed attempt early on in this
process) and will not be installing ANYTHING until the last possible
second.

So anyway,  I guess I am looking for a critical path description of this
process.  A little hand holding and coddling would sure be appreciated,
and would certainly be documented for posterity in the FAQ.

-- 
------
TSgt Dave Burgess
NCOIC AL/Management Information Systems Office
Brooks AFB, TX

-- 
------
TSgt Dave Burgess
NCOIC AL/Management Information Systems Office
Brooks AFB, TX

-- 
------
TSgt Dave Burgess
NCOIC AL/Management Information Systems Office
Brooks AFB, TX