Mail Archives: djgpp-workers/2000/07/21/13:06:58
"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 <bkorb AT gnu DOT org>
>
> 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?
- Raw text -