GNU targets newbie question

Paul Schulz
Thu Mar 16 13:20:00 GMT 2006

Hi Martin,

On 3/16/06, Martin Guy <> wrote:
> Hi
>    Can anyone enlighten me as to the difference between GNU targets
> arm-unknown-linux-gnu (as used in crosstool)
> arm-none-linux-gnu (as used by codesourcery)
> arm-linux-gnu (as used by most distros)

It should be the result returned by 'config.guess' on the target platform.

While it my not be definitive, the book 'GNU Autoconf, Automake and
Libtool (by G.V. Vaughan has the following to say (page 15):
"All configuration names used to have three parts, and some
documentation still calls them 'configuraton triplets'. A three-part
configuration name is 'cpu-manufacturer-operatng_system'. Currently
configuration names are permitted to have four parts on systems that
distinguish the kernel and the operating system, such as GNU/Linux. In
these cases, the configuration name is

When using a configuration name in options to a tool such as
'configure', usually you do not have to specify the entire name. In
particular, th middle field ('manufacturer', described later) is often
omitted, leading to strings such as 'i386-linux' or 'sparc-sunos'. The
shell script 'config-sub' is used to translate these
shortened strings into the canonical form.


Because 'config.guess' can normally determine the configuration name
for a machine, a user or developer has to specify only a configuration
name in unusual cases, such as when building a cross-compiler.

The following list describes each field in the configuration name:

cpu - The type of processor used on the system. This is typical
something like 'i386' or 'sparc'. More specific versions are used as
well, such as 'mipsel' to indicate a little endian MIPS processor.

manufacturer - A somewhat freeform field that indicates the
manufacturer of the system. This is often just 'unknown'. Other common
strings are 'pc' for an IBM PC-compatible system, or the name od a
workstation vendor, such as 'sun'.

operating_system - The name of the operating system run on the system.
this will be something like 'solaris2.5' or 'winnt4.0'. No particular
restriction applies to the version number, and strings such as
'aix4.1.4.0' are seen. You can use configuration names to describe all
sorts of systems, including embedded systems that do not run any
operating system. In this case, the field is generally used to
indicate the object file format, such as 'elf' or 'coff'.

kernel - This is used mainly for the GNU/Linux systems. A typical
GNU/Linux configuration name is 'i586-pc-linux-gnulibc1'. In this
case, the kernel is separated from the operating system, 'gnulibc1'.

(Does this help? Is this information online anywhere? )

> Ta
>     M
> --
> For unsubscribe information see

For unsubscribe information see

More information about the crossgcc mailing list