This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Adding %{mcpu=860: -DCPU=PPC860}}" to the file 'gcc/config/rs6000/vxppc.h' worked fine, and things do now compile. Thanks. Regards, Leif > -----Original Message----- > From: crossgcc-owner@sources.redhat.com > [mailto:crossgcc-owner@sources.redhat.com]On Behalf Of Kai Ruottu > Sent: 12. april 2002 16:44 > To: Leif Rune Solas > Cc: crossgcc@sources.redhat.com > Subject: Re: Cross compiler, x86-linux -> powerpc-wrs-vxworks, MPC860, > gcc trouble > > > Leif Rune Solas wrote: > > > > Hi, > > I am trying to set up an powerpc-wrs-vxworks compiler hosted on > a linux pc. > > My target is a MBX860 board. The cross compiler seems to have > been compiled > > and installed without errors, I have used binutils 2.11.2, and > gcc-2.95.3. > > Gcc was configured and installed like this: > > > > ../gcc-2.95.3/configure --target=powerpc-wrs-vxworks --enable- > > long-long --with-headers=/usr/tornado/target/h --enable-languages=c,c++ > > Did you use the VxWorks headers 'unfiltered' ? What I have > seen, they have > the C and C++ headers mixed into a mess, so one must know which > ones belong > to the 'standard C headers' and which ones into the 'C++ > headers'. A 'normal' > GCC-install puts these into separate directories, the > VxWorks-install is not > 'normal' in any sense... ...beginning to realize this. > > The result from this may be that the old C++ headers in the VxWorks-stuff > may be found before the newer headers in the GCC-sources... > > > To make it compile I had to do some small changes to libio: > > < ostream& vform(const char *format, _IO_va_list args); > > --- > > > ostream& vform(const char *format, void * args); > > > > in streambuf.h and iostream.h, I substituted _IO_va_list with > void * four > > places. > > Were these from the GCC-sources or from the VxWorks headers ? The latter > should never be used... > > > When compiling one of my applications after doing "make all > install", this > > happens and I do not understand clearly why: > > > > ---- from my shell ------------- > > # make depend > > make[1]: Entering directory `/home/leifs/apps/KeyUtil/MrKeyUtil/obj.mbx' > > powerpc-wrs-vxworks-g++ -c -mcpu=860 -fvolatile -Wall -D_MBX > -D__USE_MALLOC > > -fno-builtin -msoft-float -fno-exceptions -fno-rtti > > -I../../tornado/target/config -I../.. -O6 -DGZ -DGS_STATUS > -I.. ../App.cxx > > In file included from > > > /usr/local/lib/gcc-lib/powerpc-wrs-vxworks/2.95.3/include/types/vx > ANSI.h:44, > > from > > /usr/local/lib/gcc-lib/powerpc-wrs-vxworks/2.95.3/include/stdio.h:59, > > from ../../MD-DES/des.h:75, > > from ../App.h:3, > > from ../App.cxx:5: > > > /usr/local/lib/gcc-lib/powerpc-wrs-vxworks/2.95.3/include/types/vx > Cpu.h:200: > > #error CPU is not defined correctly > > In your case the "#define CPU PPC860" should have been existed > is some earlier > header, or the '-mcpu=860' should cause a '-DCPU=PPC860' in > 'specs' (for 'cpp') : > > -------------------- a clip from vxCpu.h ----------------------------- > #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 > -------------------- a clip from vxCpu.h ----------------------------- > > > So, it says that the cpu is not defined correctly and it > complaints about > > some missing files. I do not understand why the cpu is not > defined since the > > configure command should be OK, and why is it asking for files > in arch/mips/ > > which is not there? Has gcc somehow mixed ppc and mips due to > error in the > > configuration? > > The reason is simple: The '-mcpu=860' doesn't trigger the needed > '-DCPU=PPC860' > in 'specs'. So there is an error in the gcc-2.95.3 configuration > stuff, in the > file 'gcc/config/rs6000/vxppc.h' : > > ----------------------------------- clip ------------------------------ > #undef CPP_SPEC > #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) > %(cpp_endian) %(cpp_cpu) \ > %{mads: %(cpp_os_ads) } \ > %{myellowknife: %(cpp_os_yellowknife) } \ > %{mmvme: %(cpp_os_mvme) } \ > %{msim: %(cpp_os_sim) } \ > %{mcall-linux: %(cpp_os_linux) } \ > %{mcall-solaris: %(cpp_os_solaris) } \ > %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: > %{!mcall-solaris: %(cpp_os_default) }}}}}} \ > %{!DCPU=*: \ > %{!mcpu*: -DCPU=PPC603} \ > %{mcpu=powerpc: -DCPU=PPC603} \ > %{mcpu=403: -DCPU=PPC403} \ > %{mcpu=601: -DCPU=PPC601} \ > %{mcpu=603: -DCPU=PPC603} \ > %{mcpu=604: -DCPU=PPC604} \ > %{mcpu=860: -DCPU=PPC860}}" > ----------------------------------- clip ------------------------------ > > Modifying the CPP_SPEC being like previously should fix the bug > permanently, but > when you already have installed, editing the: > > /usr/local/lib/gcc-lib/powerpc-wrs-vxworks/2.95.3/specs > > is much easier... Just search for '*cpp:' and the spec after it > and add the > needed '%{mcpu=860: -DCPU=PPC860}' between the last two '}'s... > > However I suggest you to fix the bug in the sources... > > Oops, after writing all this, I got a thought to check the > 'gcc-3.0.4' sources > and there ('gcc/config/rs6000/sysv4.h') I saw: > > ----------------------------------- clip ------------------------------ > #define CPP_OS_VXWORKS_SPEC "\ > -DCPU_FAMILY=PPC \ > %{!mcpu*: \ > %{mpowerpc*: -DCPU=PPC603} \ > %{!mno-powerpc: -DCPU=PPC603}} \ > %{mcpu=powerpc: -DCPU=PPC603} \ > %{mcpu=401: -DCPU=PPC403} \ > %{mcpu=403: -DCPU=PPC403} \ > %{mcpu=601: -DCPU=PPC601} \ > %{mcpu=602: -DCPU=PPC603} \ > %{mcpu=603: -DCPU=PPC603} \ > %{mcpu=603e: -DCPU=PPC603} \ > %{mcpu=ec603e: -DCPU=PPC603} \ > %{mcpu=604: -DCPU=PPC604} \ > %{mcpu=604e: -DCPU=PPC604} \ > %{mcpu=620: -DCPU=PPC604} \ > %{mcpu=740: -DCPU=PPC603} \ > %{mcpu=750: -DCPU=PPC603} \ > %{mcpu=801: -DCPU=PPC603} \ > %{mcpu=821: -DCPU=PPC603} \ > %{mcpu=823: -DCPU=PPC603} \ > %{mcpu=860: -DCPU=PPC603}" > ----------------------------------- clip ------------------------------ > > Perhaps the '-mcpu=860' implying '-DCPU=PPC603' has some > important reason... > So using it instead could be a better choice. Perhaps the > 'comp.sys.powerpc.tech' > newsgroup or something would tell more, now I remember seeing > something... or then > not... > > Cheers, Kai > > > ------ > Want more information? See the CrossGCC FAQ, > http://www.objsw.com/CrossGCC/ > Want to unsubscribe? Send a note to > crossgcc-unsubscribe@sources.redhat.com > ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |