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] |
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... 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/vxANSI.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/vxCpu.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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |