[comp.sys.sgi] Help with building gcc

pagels@cs.arizona.edu (Michael A. Pagels) (12/19/90)

Can someone explain how to get rid of the following error while building gcc for the IRIS 4D:

cc -c -g   -I. -I../gcc-1.37.1 -I../gcc-1.37.1/config ../gcc-1.37.1/symout.c
ccom: Error: ../gcc-1.37.1/stddef.h, line 12: illegal type combination
      typedef unsigned long size_t;
      ----------------------------^
*** Error code 1

Stop.

I've seen this problem with "typedef unsigned long thing" in a number of forms with other pieces of code.  What's the general problem?

Thanks in advance.

Michael Pagels

jit@SLIC.CELLBIO.DUKE.EDU (Jit Keong Tan) (12/20/90)

=> 
=> cc -c -g   -I. -I../gcc-1.37.1 -I../gcc-1.37.1/config ../gcc-1.37.1/symout.c
=> ccom: Error: ../gcc-1.37.1/stddef.h, line 12: illegal type combination
=>       typedef unsigned long size_t;
=>       ----------------------------^
=> *** Error code 1

Are you using IRIX 3.2 ?

I think the problem is you have declared size_t twice.
The header files in IRIX 3.3 have added the #if conditional 
compile statement so that you can't typedef the size_t twice.
(Of course the error messages don't mean anything.)

Look in to the stddef.h itself, it #define _SIZE_T_ , so is the
header file in IRIX 3.3.  As I recall, this #define _SIZE_T_
statement wasn't appeared in 3.2.  

So, the only way is, not to include this statement at all, or edit
the /usr/include/sys/types.h (or whereever it appears) to make to
#define _SIZE_T_ as it does in stddef.h


--------------------------------------------------------
Jit Keong Tan     | internet: jit@slic.cellbio.duke.edu
(919) 684-8098    | bitnet  : tan00001@dukemc.bitnet
--------------------------------------------------------
U.S. Mail:
Duke University Medical Center
Box 3709
Department Of Cell Biology
Nanaline Duke Bldg., Rm 385
Research Drive
Durham, NC 27710

srp@babar.mmwb.ucsf.edu (Scott R. Presnell) (12/20/90)

pagels@cs.arizona.edu (Michael A. Pagels) writes:

>ccom: Error: ../gcc-1.37.1/stddef.h, line 12: illegal type combination
>      typedef unsigned long size_t;
>      ----------------------------^

I my experience, this compiler error results when you have included the
same typedef more than once via multiple includes or something.  The
compiler error message isn't too clear is it?!

BTW: there is a working version of gcc and g++ source in
~ftp/pub/Gnu-For-Pmax on foobar.colorado.edu.  I was able to compile and
run the Window object c++ code (after making a couple of minor changes that
allow for the differences between c++ and g++) that Thant Tessman posted
not too long ago.

	Good luck.

	- Scott
--
Scott Presnell				        +1 (415) 476-9890
Pharm. Chem., S-926				Internet: srp@cgl.ucsf.edu
University of California			UUCP: ...ucbvax!ucsfcgl!srp
San Francisco, CA. 94143-0446			Bitnet: srp@ucsfcgl.bitnet

sweetmr@SCT60A.SUNYCT.EDU (michael sweet) (12/20/90)

Maybe the standard IRIX C compiler doesn't support unsigned longs....  Don't
remember, but you can check the C manual for compiler specific stuff.  BTW,
unsigned longs didn't come along (officially, anyways) until ANSI C....
Changing the offending typedef to 'typedef long size_t' (or even try
'typedef unsigned int') _should_ solve your problems.

 -Mike Sweet
  sweetmr@sct60a.sunyct.edu