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] |
Joe: Oh, one other thing. See my article on running Linux on the Dreamcast, at http://www.billgatliff.com/articles/index.html. There is a rudimentary build process described in there for glibc. HTH, b.g. On Wed, Oct 17, 2001 at 12:44:44PM -0500, William A. Gatliff wrote: > Joe: > > > Gcc is a "frontend" that invokes the compiler proper, assembler, > linker and other utilities as needed. That way, you can just do: > > $ gcc hello.c > > And get the expected results, at least after everything is set up. > > > Why does GCC need all of these libraries recompiled to output > > standard C code? I can understand that the linker and assembler > > might need to know more about the hardware, but why is it so hard to > > get GCC to just spit out the right code to binutils? The binutils > > has (seemingly) been the most painless up to this point. > > It doesn't. It just looks that way because gcc comes with some > pre-configured stuff in its "specs" file, the file that controls what > gcc does and when. > > To see all of what gcc is doing, use the -v option. To just translate > a file to asm, use -S. To compile to an object file, use -c. > > > Anyway...long story short...if we want to provide our own library > > support, do I NEED to go any further than making the bootstrap > > compiler? I'm not going to use Linux, I'm not going to use GNU > > (most likely)...so, am I going too far in something I don't need to > > do? > > I'm not sure. There are little "helper functions" inside gcc that > deal with some of the functionality that gcc assumes microprocessors > don't have, like support for arbitrary bit shifts on some targets. > Some of these helper functions are written in C, and need header files > in order to build properly. So you *may* need to build glibc/newlib, > just to get the header files that gcc needs to build its internal > libraries. > > The main offender here is libiberty, although I don't know if you need > what's in there or not (I don't recall exactly *what's* in libiberty > myself). There are other libraries as well, whose identities will be > exposed by the -v option during compilation and linking. > > I know libiberty isn't built until after the all-gcc target, which > means you don't get it in a bootstrap compiler, and if you don't need > it then you don't need to go beyond the bootstrap stage. I don't > recall when the other libraries are built, but if they come after > all-gcc then you'll probably have to build the complete toolchain to > get them. > > > Is there some integration with binutils that's going on here I don't > > understand? > > Yes. Your gcc is acting on the contents of the default "specs" file, > which includes things like "link in these runtime libraries, and pass > these options to as and ld". That's where the confusion is coming > from. > > With -c or -S, gcc is *just* a compiler. Well, it invokes *just* the > compiler, that is. But you get the idea. > > > HTH, > > b.g. > -- > Bill Gatliff > bgat@billgatliff.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 > -- Bill Gatliff bgat@billgatliff.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] |