VxWorks specs vs fixincl, machname.h and machine_name_test
jf
j_f@laposte.net
Sat Dec 4 16:42:00 GMT 2004
Hi,
I got the same problem last week using gcc3.4.1 from a Mandrake
community 10.1
It seems this compiler is buggy
Compiling at home with gcc3.4.3 on debian unstable works !
Updating the Mandrake box solved the problem.
There are still some vxWorks includes to fix but these fix are relly obvious
Regards,
Jean-François
Earl Chew a écrit :
> I'm building a vxWorks PPC cross using gcc 3.4.2 and I'm trying
> to understand how the machname fix is intended to work.
>
> I've provided the compiler with a set of stock vxWorks headers.
>
> Selecting --target=powerpc-wrs-vxworks and
> --with-headers=/gnu/tornado/target/h causes config/rs6000/vxworks.h
> to be used, and it contains lines like:
>
> #define CPP_SPEC \
> "-DCPU_FAMILY=PPC -D__ppc -D__EABI__ \
> %{t403: -DCPU=PPC403 -D_SOFT_FLOAT ; \
> t405: -DCPU=PPC405 -D_SOFT_FLOAT ; \
> t440: -DCPU=PPC440 -D_SOFT_FLOAT ; \
> t603: -DCPU=PPC603 ; \
> t604: -DCPU=PPC604 ; \
> t860: -DCPU=PPC860 -D_SOFT_FLOAT ; \
> : -DCPU=PPC604} \
> %{!msoft-float:-D__hardfp} \
> %{fpic|fpie: -D__PIC__=1 -D__pic__=1 ; \
> fPIC|fPIE: -D__PIC__=2 -D__pic__=2 } \
> %(cpp_cpu)"
>
> So far so good.
>
> I get to end of the compiler build, then past "Fixing headers", and
> onto the build of libgcc.
>
> Here's the problem:
>
> o Fixing headers applies the machine_name_test fix and converts
> occurrences of CPU to __CPU__.
>
> o The specs used by xgcc still say CPU=xyz, so the compile of libgcc
> terminates in confusion as the headers have been rewritten to
> look for __CPU__.
>
> It looks like fixincl has modified to the headers to a form that
> is simply unworkable with the specs.
>
> Can anyone enlighten as to what's supposed to happen? Is fixincl
> doing the wrong thing, or is the specs file wrong?
>
> Earl
>
More information about the Gcc
mailing list