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] |
>-----Original Message----- >From: Plucknett, Jim [mailto:plucknet@SSD.FSI.com] >Sent: 02 May 2001 23:19 >Thanks for the detailed howto... It's up and running. Yay!! >The old 'vxWorks 5.2 includes' took a little tweaking but >not bad. I would highly recommend you take a look at http://sources.redhat.com/ml/crossgcc/2000-07/msg00112.html for further info. Although I would *not* recommend the build procedure described in that post, which is a kind of fudge using newlib. There's also a few nits I'd pick with his solutions to various problems. Point 8 in that post refers to problems with constructors, destructors and exceptions. The solution offered is to modify the gcc source file gcc/config/m68k/vxm68k.h to make collect2 work, whereas I would advise not using that technique but simply adding the lines ------snip!-------- /* More backward compatibility patches: we undef these two in order to force the compiler to output our static constructors and destructors in the fashion to which it is accustomed.... */ #undef ASM_OUTPUT_CONSTRUCTOR #undef ASM_OUTPUT_DESTRUCTOR /* And this puts $ signs into the static object c/d-tors that need to be found by WRS munch. It also makes libgcc symbols match WRS symbols */ #undef NO_DOLLAR_IN_LABEL ------snip!-------- and then continuing to use the 'munch' procedure as in a standard vxworks makefile. >libio/iostream.cc errors: >------------------------------- I'd also quibble with point 6, which is necessary to make libstdc++ build: there's nothing wrong with the suggested solution except that it breaks the gcc source code because the fix makes the test unconditional, so you'd need to remember not to reuse your source tree for building compilers to any other targets. My suggestion would be to modify the lines that say ------snip!-------- if ${CC} dummy.c >/dev/null 2>&1 ; then echo "#define ${macro_prefix}HAVE_PRINTF_FP 1" echo "#define ${macro_prefix}HAVE_LONG_DOUBLE_IO 1" else ------snip!-------- by adding flags to make the compiler error out when the required functions aren't found in the include files: ------snip!-------- if ${CC} dummy.c -Wimplicit -Werror >/dev/null 2>&1 ; then ------snip!-------- I think the above should help the problem you had with printf stuff in libio. I also expect that points 9 (build failure in libiberty/fdmatch.c) and 12 (create a dummy libm.a) are irrelevant. If I'm wrong, a better solution to point 12 is adding the lines ------snip!-------- /* WRS runtime does not need a separate math library. */ #define MATH_LIBRARY "" ------snip!-------- again in gcc/config/m68k/vxm68k.h >Added to fileio.h in libchill for basicio.c >------------------------------------------- If you use --enable-languages=c,c++ when you configure gcc, it won't attempt to build the chill, java or fortran compilers. I don't know if any of the other languages can be expected to work since WRS don't support them, and I would seriously hesitate to use something that is basically untested and not guaranteed to work in any production code! >Added to regsMc68k.h in sys-include/arch/mc68k >---------------------------------------------- I think this is probably the same problem addressed by point 9. When I was fixing the varargs problems in the ppc port, I found that one of the fixincs patches wasn't being applied, so I had to modify the test in gcc/fixinc/inclhack.def. Find the lines which say ------snip!-------- fix = { hackname = vxworks_needs_vxworks; files = sys/stat.h; test = " -r types/vxTypesOld.h"; test = " -n \"`egrep '#include' $file`\""; test = " -n \"`egrep ULONG $file`\""; select = "#[ \t]define[ \t][ \t]*__INCstath"; sed = "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n" "#include <types/vxTypesOld.h>\n"; }; ------snip!-------- and replace them with ------snip!-------- fix = { hackname = vxworks_needs_vxworks; files = sys/stat.h; select = "#[ \t]*define[ \t][ \t]*__INCstath"; sed = "/#[ \t]*define[ \t][ \t]*__INCstath/a\\\n" "#include <types/vxTypesOld.h>\n"; }; ------snip!-------- although I'm worried that this might break some of the non-vxworks targets of the compiler. And another problem with any fixinc'd headers is that the standard WRS makefiles, which use the -nostdinc flag, won't find them! I'd either drop that flag from the makefiles, or place the fixed headers back into $WIND_BASE/target/h (backup your Tornado install directory first!) >Thanks again for your help. I owe you a beer/coffee/water Oooh, beer please :-) DaveK -- All your base are belong to the Israeli army! Oh, now they aren't again! ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.mimesweeper.com ********************************************************************** ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |