[YOCTO #7230] In certain system configurations TRANSLATED_TARGET_ARCH will not expand in the right order for gcc-cross-candian-mips64n32 to be generated properly. This will cause SDKs to fail to generate properly. Changing the global definition of TRANSLATED_TARGET_ARCH always expands the ABIEXTENSION, which causes the OVERRIDES to pick it up as well. This effectively defines a new class of overrides for the 'n32'. The side effect is that we need to duplicate some mips64 overrides, and redefine others that were previously 'n32' or 'mips64' exclusive to have the correct semantics. (From OE-Core rev: 4b3a2b703b20583bd107f00a297d972e9bfb514a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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: [-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- - 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.