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]

RE: Updated HOWTO [Re: Linux target, cygwin host ]


On Thu, 25 Jan 2001, Fabrice Gautier wrote:

> 
> Well, I still don't understand why I need the target runtime to build the
> cross compiler. I understand I need it to cross-build target applications,
> or to cross build some system target libraries that the cross-compiler would
> link by default with any application - like startup code or the like - But
> for the compiler itself that doesn't make much sense...
> (as a matter of fact I always get an xgcc binary before it fails but i don't
> know what it is exactly...)

First of all, GCC is GNU Compiler Collection, and you sound like you're
talking about only the *C* compiler which is part of GCC. So assuming
that you're only talking about the C compiler, you're correct that you
don't need the target includes/libraries to build xgcc/cc1 (the compiler
driver and the backend compiler respectively), but there's one slight
problem in building libgcc.a, which is built when you build the C
compiler. Unless the "inhibit_libc" macro is defined, GCC will try to
look for and include stdio.h and unistd.h. If you looked in libgcc2.c,
this would have been apparent. GCC's configure defines this macro when
you use --with-newlib at configure time. In this case, you can build
the C compiler and libgcc2 without any target includes or libraries.

There's no better source of information than the source package. Besides
there's quite a bit of misleading information about building cross-
development tools using GNU tools that the first stop should always be 
trying to understand the build process as well as possible. Hard perhaps, 
but worth it at the end.

Some of the other language runtimes may/will not build without access 
to the target runtime.

I hope this explains the issues in some detail, the rest is up to you.

> Where are those various schemes documented. I guess i'm more perverse than
> you are, and that's probably what I'm looking for...

CrossGCC FAQ is always a good place to start, followed by a search using
google, altavista, what not. I'm assuming you've looked in the obvious 
places. 

> And what was the scheme to cross build for ia64 (or hurd) before their was
> any binary libc for ia64 (or hurd) ? (No i don't want to do any of that, but
> i'm curious)

Bootstrapping a new OS/system is always tricky, and requires a plethora of
techniques. Typically, you build a bare cross-compiler, and then use that
to build the runtime, or at least some portion of it, and then move it all
over to bootstrap the rest. 

Regards,
Mumit



------
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]