I don't fully understand what gcc is doing during its build process. Is the idea that it is trying to make the headers more compliant with itself or with standards in general? I had originaly put the headers into sys-include because the build process was asking for libc headers. Am I missing an earlier step here? These headers in question are used with a modified version of gcc 2.95 which is already configured for cross compiling so I would expect them to be "good enough" the way they are. What should I be doing differently here? Thanks, Matt Harrington > Matt Harrington wrote: > >> I am attempting to cross compile gcc 3 under cygwin for >> powerpc-wrs-vxworks >> >> The binutils build is clean and easy; no problems. The gcc build fails >> after a good distance into the build. The error is below, full >> configure >> and make outputs can be found at: >> >> http://underdogma.net/~matt/files/make.log >> http://underdogma.net/~matt/files/conf.log >> >> I would be happy building any gcc 3 if one is known to work. Building >> it >> on a different version of windows may also be an option as long as it >> will >> still work under 2000 and xp. > > Ok, I would choose to use only Linux with Cygwin or MinGW targeted > crosstools for any builds, but this because producing only one toolchain > and this only once, never updating it, is not what I like to do... Just > for a fun I have produced 50 or so MinGW-hosted toolchains for Windoze > hosts... > >> /home/matt/gcc-build/gcc/include/types/vxCpu.h:370:2: #error CPU is not >> defined correctly > > What does this row 370 tell? Maybe it does this : > > -------------------- clip ------------------------- > #if (CPU==PPC403 || CPU==PPC505 || CPU==PPC601 || CPU==PPC603 || \ > CPU==PPC604 || CPU==PPC860) > #define CPU_FAMILY PPC > #endif /* CPU_FAMILY==PPC */ > > /* > * Check that CPU and CPU_FAMILY are now defined correctly. > * If CPU is defined to be one of the above valid values then > * the CPU_FAMILY will have been properly selected. > * This is required in order to select the right headers > * and definitions for that CPU in subsequent headers. > * If CPU or CPU_FAMILY is not defined at this point, > * we generate an error and abort the compilation. > */ > > #if !defined(CPU) || !defined(CPU_FAMILY) > #error CPU is not defined correctly > #endif > -------------------- clip ------------------------- > > and fails because your build log told : > > Fixing directory /usr/local/powerpc-wrs-vxworks/sys-include into > /home/matt/gcc-build/gcc/include > > and this fixing replaced all those 'PPC*' names into '__PPC*__' names > because this would be more "POSIX" compatible... > > The lecture is: "Don't fix anything which you don't want being fixed!". > Why you wanted the VxWorks headers to be fixed for GCC by putting them > into the '.../sys-include' ? Does VxWorks/PPC have a native-GCC and > when doing the "native build" for the same GCC version, the GCC > maintainer for VxWorks checked that also those VxWorks/PPC headers would > be fixed correctly? > > Years ago I lost all my trust to the 'fixincludes' job which will be > done during the GCC build when the target has no native-GCC... > >