generic-poky/meta/conf/machine/include/mips
Peter Seebach 8d98171dc2 insane.bbclass and friends: Fix sanity checks and multlib headers for n32
The n32 architecture is odd, in that it's a mips64 ABI which happens
to be 32-bit. To handle this, we need something in the environment
which can be used to distinguish it. The obvious place to stash this
is the ABI suffix, so we use "n32" as an ABI suffix. This allows
a couple of improved checks:

1. In insane.bbclass, we can use "linux-gnun32" to discern that it's
okay for a mips64 binary to be a 32-bit binary in some cases.
2. In multilib_header, we can check for the n32 ABI, and use a distinct
value.
3. In siteinfo, add linux-gnun32 as a synonym for linux, similar to
what's done for linux-gnux32, and tell the mips*-linux-gnun32 variants
to pick up the corresponding mips-linux site configs.

Note that the multilib header wrapper already has n32 hooks in it, there
was just nothing creating -n32 header variants.

(From OE-Core rev: c8e8e8ba22eaa335ac72f0e5b317f804035133e2)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-27 09:44:56 +01:00
..
README conf/machine/include: Cleanup MIPS tunings to match README 2012-04-04 17:17:54 +01:00
arch-mips.inc insane.bbclass and friends: Fix sanity checks and multlib headers for n32 2012-10-27 09:44:56 +01:00

README

2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
  - Initial Version

MIPS currently defines 12 ABIs.  Combinations of:
 *) Big/Little Endian
 *) Hardware/Software Floating Point
 *) o32, n32, n64 ABI

TUNE_ARCH, the GNU canonical arch, is defined as:

mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}

The package arch is defined in such a way to generated a standard naming
scheme.  The scheme is: <mips variant>[-nf][-n32]

TUNE_PKGARCH is defined as:

${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}

The following is a list of MIPS specific variables:

MIPSPKGSFX_BYTE - This is defined as either blank and "64" for MIPS64 CPUs.

MIPSPKGSFX_ENDIAN - For bigendian hardware this is blank, otherwise it's
defined as "el".

MIPSPKGSFX_VARIANT_tune-<tune> - In the default tunings it is set to the
same value as TUNE_ARCH.  In custom, optimized tunings, the value should
be modified to more precisely describe the tuning.

MIPSPKGSFX_FPU - The value is set to "" or "-nf", where "-nf" indicates 
that the tune is using a non-floating point ABI.

MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous
values are not enough to distringuish the package.  "-n32" is added when
building for N32 ABI.