This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: [Fwd: cross compile gcc 3 in cygwin for vxworks]
- From: "Matt Harrington" <matt at ll dot mit dot edu>
- To: karuottu at mbnet dot fi
- Cc: gcc-help at gcc dot gnu dot org
- Date: Tue, 1 Nov 2005 14:58:14 -0500 (EST)
- Subject: Re: [Fwd: cross compile gcc 3 in cygwin for vxworks]
- References: <60578. .1130857659.squirrel@webmail> <4367B922.2030101@mbnet.fi>
- Reply-to: matt at ll dot mit dot edu
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...
>
>