[comp.soft-sys.andrew] Puzzing 3100 Build problem

nsb@THUMPER.BELLCORE.COM (Nathaniel Borenstein) (08/09/90)

Building Andrew on our 3100's has turned out to be much harder than on
our Suns.   The latest problem has me really stumped.

in atk/basics/common, the compile dies trying to make region.o.  The
command it is using is:

cc -Dvoid=int -G 0 "-Wl,-D,1000000" -c -I.  
-I/u/andrew/3100/include/atk -I/u/andrew/3100/include
-I/usr/local/pkg/X11/include   region.c

The error mesage it produces, reliably, is:

cpp:   error region.c:219: missing endif

Now, this doesn't make any sense at all.  I've checked and all the
if/endif pairs are balanced.  In fact, all of the include files are
IDENTICAL to what they were on the Sun, and yet the preprocessor thinks
I've got a missing endif.  Possibly there are some screwy #define's and
#if's somewhere, but I can't find them.  

Oh, another piece of data:  If I capture the preprocessor output with
-E, on the sun4 it is 66 kilobytes, whereas on the 3100 it is only 17K. 
What turns out to be missing is everything from halfway though Xlib.h
all the way through the end of region.eh.  But the point at which stuff
starts to be missing is NOT where there are any #ifdef's -- it's right
after the definition of the XTimeCoord structure in Xlib.h.

Has anyone else seen this problem?  Can anyone tell me what's going on? 
I'm totally stumped.  Thanks.  -- Nathaniel

sean@DSL.PITT.EDU (Sean McLinden) (08/10/90)

nsb@thumper.bellcore.com writes:

> Building Andrew on our 3100's has turned out to be much harder than on
> our Suns.   The latest problem has me really stumped.
> 
> in atk/basics/common, the compile dies trying to make region.o.  The
> command it is using is:
> 
> cc -Dvoid=int -G 0 "-Wl,-D,1000000" -c -I.  
> -I/u/andrew/3100/include/atk -I/u/andrew/3100/include
> -I/usr/local/pkg/X11/include   region.c
> 
> The error mesage it produces, reliably, is:
> 
> cpp:   error region.c:219: missing endif
> 
> Now, this doesn't make any sense at all.  I've checked and all the
> if/endif pairs are balanced.  In fact, all of the include files are
> IDENTICAL to what they were on the Sun, and yet the preprocessor thinks
> I've got a missing endif.  Possibly there are some screwy #define's and
> #if's somewhere, but I can't find them.

This *sounds* like either a C or a class preprocessor error, but you say
that all the files are the same (the ".eh" files included?). Did you also
build X11R4 and use the imake and such (I assume that you did since your
include paths suggest a local X11 implementation)? You aren't using C++
I assume (why would you with Classes)? Another thing to consider is some
type of buffer overflow that causes lines to be lost. I assume
that you checked your config files for X11 and Andrew to make sure that
you don't have any nasties, there. Finally, I assume that you aren't building
across an NFS filesystem or someplace where an earlier operation could have
failed (due to a lost file server, or file system overflow), so that you got
a truncated file somewhere?

I guess that some more information is needed. Like are you using the DEC
standard C compiler and the standard X11R4 distribution? Did you capture the
output from the make up until this point and did anything else fail anywhere?
This is all standard stuff, but...

Sean

P.S. I found the DECstation 3100 build to be incredibly time consuming. Also,
I've found that if the Andrew build fails, for any reason, anywhere, the *only*
safe thing to do is to remove /usr/andrew, do a "make clean" generate a new
makefile, and do another "make World". I have not gotten make to restart
reliably.