[crosstool-NG] Design discussion

Thomas Charron twaffle@gmail.com
Sat Apr 11 05:26:00 GMT 2009


On Sat, Apr 11, 2009 at 1:13 AM, Rob Landley <rob@landley.net> wrote:
> On Friday 10 April 2009 23:14:33 Thomas Charron wrote:
>>   And those of us who are caring about bare metal?
> I've used a jtag to install a bootloader and linux kernel on bare metal, so
> presumably you mean you want to build something other than linux system to
> install on that bare metal?  (Such as building busybox against
> newlib/libgloss?)

  I'm talking about bare metal.  Typically, these systems have no more
RAM then is present on the processor.  Like, 64k.  There is no
bootloader, no busybox, and most specifically, no OS.

> How does this differ from building a very complicated bootloader, or linking
> against a different C library?  (If you're building a complete new system on
> the bare metal, do you particularly care about binutils or gcc versions other
> than "fairly recent"?)

  Yes.  Since GCC is generally tested on 'real' systems, some versions
perform different then others depending on the target processor
itself.  In some cases, occasionally a version of GCC simply won't
work at all for a given processor.

>>   There is no single toolchain.  That's an assumption that works for
>> *your* environment.
> Could be, but I still don't understand why.  Care to explain?

  See above.  bare metal *ISN"T* running Linux on a small box.  It's
another beast entirely.

> I've built many different strange things with generic-ish toolchains, and
> other than libgcc* being evil without --disable-shared, swapping out the
> built-in libraries and headers after the toolchain is built is fairly
> straightforward (for C anyway).  You can do it as a wrapper even.
> (I suppose you could be referring to languages other than C?  C++ is a bit
> more complicated, but then it always is.  Java is its own little world, but
> they put a lot of effort into portability.  Haven't poked at Fortran since
> the 90's.)

  Specifically, I've been working with a mashed in version of newlib,
and newlib-lpc.  In those cases, you actually don't use the GNU C
library at all.  Additionally, you can use newlib and gcc to compile
C++ applications (however, no STL, etc support).  I also have a small
side project to try to move the uclibc++ libraries to bare metal.

-- 
-- Thomas

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list