[Top] [All Lists]

Re: gcc include strangeness

Subject: Re: gcc include strangeness
From: Dominic Sweetman <>
Date: Tue, 12 Feb 2002 15:55:02 +0000
Cc: Johannes Stezenbach <>,, "Hartvig Ekner <> \"Maciej W. Rozycki\"" <>, Florian Lohoff <>, Ralf Baechle <>
In-reply-to: <>
References: <> <> <> <>
User-agent: SEMI/1.13.7 (Awazu) CLIME/1.13.6 (中ノ庄) MULE XEmacs/21.1 (patch 14) (Cuyahoga Valley) (i386-redhat-linux)
I've been keeping quiet through all this, but perhaps I should speak

Algorithmics maintains a GNU toolchain for embedded systems and
supplies it bundled with support and a basic run-time system as our
product SDE-MIPS.

>From version 5.0 (just gone into beta) we are configuring and testing
the compiler/assembler/object tools for Linux use.  We always publish
the GNU sources used to build SDE-MIPS on our web-site, but we are
currently leaning towards going further and putting binary RPMs of the
Linux toolchain out for free download - so those of you who want can
just use it.

The upside of this is that we have the resource and skill (and it
looks like we'll be able to get enough support/development funding) to
maintain a Linux/MIPS compiler.  It would be a good thing for the
Linux/MIPS community if compiler bugs and shortcomings got fixed on a
fairly stable base, instead of relying on pick-your-version folklore.
We should also be able to get funding to do things like fixing support
for SGI n32/n64 code-generation conventions.

Our compiler already has support for pretty much every wrinkle
of any MIPS instruction set anywhere, and command-line-selectable
machine descriptions for many different MIPS pipelines.

The downside: our development process is not currently very
Linux-shaped.  We "release late, release rarely".  In providing a
stable compiler for embedded use we have found it easier to avoid the
bleeding edge of GCC.  We've found it necessary to make bold changes
in "machine-independent" code - GCC is a wonderful multi-target
compiler, but it's x86 (PPC a distant second) which is routinely
tested.  The leading edge is a fertile breeding ground of bugs for
minor architectures.

And more: our v5.0 compiler's ancestor was a 2.96 release from Cygnus'
internal development tree, provided to MIPS Technologies in the fall
of 2000.  We picked it up because it had work MIPS had already funded,
and some valuable multiple-issue machine description features which
didn't make it into 3.0.  But it has taken a long time to make sure
the new compiler is as well-tuned and reliable as the EGCS 1.1-based
compiler it replaced, and the 2.96-derived compiler is only now
shipping as part of a beta release.

So now we have numerous patches, many of them not in officially "MIPS
machine-dependent" code, against an 18-months old and slightly strange
version of GCC.  Nobody is currently doing the substantial work to
turn our changes into patches for GCC 3.x.

What I think we ought to do is to:

o Release the existing compiler for use among Linux/MIPS enthusiasts
  (we're hoping that some commercial developers will take support
  contracts, of course);

o Hope that many of you will use it and feed back bug reports, and
  that some of you will grab the sources and help track & fix them;

o Aim to make earlier and more frequent releases for adventurous Linux
  users (we will keep a slow-moving 'stable' release for those whose
  priority is elsewhere);

o Aim over the next couple of years - and with all the help we can get
  - to converge closer to the evolving GCC 3.x mainstream.

I guess the question for this list is: is anyone interested?

Dominic Sweetman
Algorithmics Ltd
The Fruit Farm, Ely Road, Chittering, CAMBS CB5 9PH, ENGLAND
phone +44 1223 706200/fax +44 1223 706250/direct +44 1223 706205

<Prev in Thread] Current Thread [Next in Thread>