This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more infromation.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
My stochastic sojourn in cross-compiler land. I would like to thank all the readers of this list for their kind help and multiple suggestions to get me out of my trouble here. For several weeks now I've been trying to build a cross compiler for an i486 architecture which would use newlib for its run time library as opposed to the standard libc. Alas, nothing has worked. I have come to the conclusion that, seemingly for this case alone, the GNU build scripts are seriously broken. Many readers have responded to me asking why I would even try something on this order when the gcc which comes with Red Hat Linux 6.1 (my freshly installed system) will produce executable code for this target without requiring a cross compiler to be built at all. As I responded to one questioner: Why am I trying to build a cross development environment from ia32-elf to itself? I have a purely commercial goal: We manufacture humidity test chambers here and I want to run an PC/104 i486DX board with a FLASH rom image of compiled "C" code as a slave controller for one. We do not want to distribute our proprietary source code along with each packaged environmental chamber we sell, which the GNU general license would seem to require. Thus I need to sidestep GNU libc and substitute a library appropriate for our needs. So do I misunderstand something here? If I'm doing something stupid in either project definition or implementation I would DEFINITELY want to know! I started out following virtually exactly the four-tree example from the CrossGCC FAQ. (All right, so I used "prefix = /cross" instead of "prefix = /bar". Maybe that's my problem. :-) The make for gcc failed on libgcc2.c, bombing out with file not found errors on "#include <stdlib.h>" and "#include <unistd.h>". It seems the source tree didn't include those files in the directory specified in the -I option. So I got around this with specifying "--with-headers=/(path to newlib-1.8.2)/newlib/libc/include", which subdirectory did include the needed headers. But this was only the start of my build troubles. I don't want to go on with exhaustive details about all I tried. But everything failed, and always with some form of file not found error. Inescapably, the conclusion dawned that existing build scripts were flawed and didn't provide for the needed files. Altogether, I eventually sent in four separate bug reports to bug-gcc@gnu.org. Many people offered suggestions, usually of the form "if only you had done so and so . . ." But "so and so . . ." never worked. I've been systematically trying everything suggested, and my last hope seems to be RTEMS. I'm working on that, but I've had problems getting all the source code. I think I've found a source for egcs-1.1b on a mirror site, so I may get to try it after all. But whether I ever get RTEMS to work or never do, I'm pretty sure that the build scripts for CrossGCC are badly broken for an i486 target. Has anyone here ever built a cross compiler for an i[3456]86? Or am I the only one crazy enough to even try this? Your thoughts, comments, or brickbats would be most welcome. Thanks again, everyone. Richard Bowser Engineer Thunder Scientific Corporation email: richardb@thunderscientific.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] |