On Feb 15, 2013, at 10:33 AM, Seth LaForge <set...@google.com> wrote:
> I was under the impression that gcc target specs were always triplets;

:-)  arm-elf is a target spec, as is i960.  There is a canonicalization that 
takes place that can change the format of it to be more standardized.  One or 
more characters is the official guideline, assuming more, would be wrong.  We 
often talk about target triplets, as a triplet is what one gets after 
canonicalization, usually.

> there are certainly lots of references in the gcc docs to "gcc target
> triplet".

Well, the doc misled you.  When it speaks of the target triplet, what it means 
is the target spec.  The target spec is 1 or more characters.  Now, as luck 
would have if, no one seems daring to run off with 1 character just yet, but, 
they in theory can.  2 is the current lower bound limit on spec, for example, 
mt.  Most of the software only deals with canonicalized target specs.  The are 
in the canonical form.  That's all we can say about that.  It has a generalized 
form that most specs will usually follow.  For example, 
basiccputype-vendorofhardware-typeofoperatingsystem is a general format that 
most systems use, as we recommend it, first for new specs.  Simple, 
straightforward.

> Are there cases in which the target can have more than 3 components?

Answering this question doesn't serve you, or us.  You get to play, with the 
specs you play with.  If you own foo, you can decree that foo-bar-bee-bar is 
the canonical, and that the canonical always has 4 components, or not.  Or 
maybe 5.  Or maybe 3.  If you don't own it, you don't get to.  For example, the 
linux specs were decreed that they would be linux-gnu in the canonical spec.  
This bumps any spec that uses -linux to be one more component than the spec it 
started with, so if it started with the usual 3, would then become 4 after the 
rule change.

Now, for the concrete.  In arm land, you want armeb-*, armbe-*, armv[345]b-* 
and xscaleeb-*.  This is derivable from the config.sub file.  (crossing fingers 
that be means big endian) You explicitly don't want any other form, as no other 
form works.

Reply via email to