[unix-pc.general] Wanted: GNU CPP

roger@banzai.UUCP (Roger Florkowski) (10/24/88)

In article <441@manta.pha.pa.us> you write:
>As others have alluded to, bootstrapping GNU CC 1.30 on a UNIXpc is
>pure hell if you don't already have GNU CC running.  I suspect that I
>can build the rest of the system if I can get my hands on a working
>GNU CPP.  I've had no luck building a working cpp from either an old
>or recent Emacs cpp kit, or a 1.2[56] GCC cpp kit.  I just can't get
>the bison output (cexp.c) to go thru the USG cpp.  

The problem is that the 'config.h' file pulls in many many many unused
#defines,  (unused by cpp, that is), so many that they overflow the stock cpp.
Try doing this:

1) grab version 1.26  (I know that particular version works!)

2) take config-3b1.h, COPY it to config.h, comment out 
    ' #include "config-m68k.h"'

3) grab the following lines out of tm-3b1.h and place them in 'config.h'

/* cpp has to support a #sccs directive for the /usr/include files */

#define IDENT_DIRECTIVE
#define SCCS_DIRECTIVE

/* Names to predefine in the preprocessor for this target machine.  */
/* ihnp4!lmayk!lgm@eddie.mit.edu says mc68000 and m68k should not be here.  */

#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dmc68k -Dunix -Dunixpc"

4) make cpp

That is how I bootstrapped gnu-cpp on my machine.  If you have any problems,
give me a yell.

Other info:
    Once gnu-cpp is in place,  the FIRST time you compile gcc (with cc and
    gnu-cpp) you will have to add the following CFLAGS to whatever is
    already there:
    CFLAGS=-traditional
    This will prevent gnu-cpp from defining '__STDC__', a nasty define which
    includes stuff that /bin/cc cannot cope with.

    I don't think gcc-1.30 works, although I have not tried it yet.  I KNOW
    gcc-1.29 does NOT work, and gcc-1.28 has trouble bootstrapping other
    versions other than itself.  gcc-1.28 will not compile gcc properly if
    you do not use the optimizer. 
-- 
Roger Florkowski				uunet!uvm-gen!banzai!roger
The People's Computer Company			`Revolutionary Programming'