Sender: bkorb AT sco DOT COM Message-ID: <39788322.2137DAA9@sco.com> Date: Fri, 21 Jul 2000 10:06:42 -0700 From: Bruce Korb Organization: Santa Cruz Operations X-Mailer: Mozilla 4.7 [en] (X11; I; SCO_SV 3.2 i386) X-Accept-Language: en MIME-Version: 1.0 To: "Kaveh R. Ghazi" , GNU Compiler , djgpp-workers AT delorie DOT com CC: bkorb AT gnu DOT org, gcc-bugs AT gcc DOT gnu DOT org Subject: Re: fixincl.x: Undeclared identifier SIZE_TYPE. References: <200007211556 DOT LAA29942 AT caip DOT rutgers DOT edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com "Kaveh R. Ghazi" wrote: > > Bruce, > > When I bootstrap gcc on powerpc-ibm-aix4.1.4.0 I get the > following in stage1: > > > "../../../egcs-CVS20000721/gcc/fixinc/fixincl.x", line 5810.24: > > 1506-045 (S) Undeclared identifier SIZE_TYPE. > > make[3]: *** [fixincl.o] Error 1 > > I believe it was broken by this patch: > > > 2000-07-20 Bruce Korb > > Can you offer any assistance? Well, as I read the source, this entry in fixlib.h: #include "tm.h" sould read the generated file 'tm.h' which will #include the file that should define SIZE_TYPE. So, your breakage is curious to me. However, since reading more messages, it seems that in my fix output I can replace: > #ifndef __SIZE_TYPE__ > #define __SIZE_TYPE__ unsigned int > #endif > #if !defined(_GCC_SIZE_T) > #define _GCC_SIZE_T > typedef __SIZE_TYPE__ size_t; > #endif with: > #if !defined(_GCC_SIZE_T) > #define _GCC_SIZE_T > typedef __SIZE_TYPE__ size_t; > #endif because I can rely on GCC defining __SIZE_TYPE__. Further, at some point eventually, we will be able to rely on some derivitive of manual labor or fixincludes #defin-ing _GCC_SIZE_T whereever size_t winds up getting typedefed. One thing certain, however, is that *if* we keep the "#ifndef __SIZE_TYPE__" text in the output, then the following #define needs to be platform specific. (Remember that only GCC should ever see the output from fixincludes. My current understanding is that in some way or another, GCC will always have some pre-definition for __SIZE_TYPE__.) Anyway, the possible solutions: 1. Ensure that every port has #define-d strings for SIZE_TYPE, PTRDIFF_TYPE and WCHAR_TYPE in their config/???/???.h file. 2. Rely on the __XXX_TYPE__ being defined when the fixincluded files are sourced by GCC 3. Go back to a pre-defined, static string for all platforms for the #define of __*_TYPE__ Which? Something else?