Similarly to x86, ensure we have the flags to the linker operating correctly (it defaults to 32 bit). Normally it is driven by gcc so this hasn't shown up but it does lead to hundreds of binutils test failures. (From OE-Core rev: 2cf9013fd8df2bb67f93ffd44ccc23453cedf42a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016/09/30 - Zubair Lutfullah Kakakhel Zubair.Kakakhel@imgtec.com
- Add Release 6 support
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
Release 6 of the ISA is a major revision and doesn't build up on previous releases of the ISA.
For more details about tuples, check https://wiki.debian.org/Multiarch/Tuples
TUNE_ARCH, the GNU canonical arch, is defined as:
"mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${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_ENDIAN2 - For bigendian hardware this is "eb", 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.
MIPSPKGSFX_R6 - This is used to specify the presence of release 6. "r6" is added in the tuple for release 6 of the isa.
MIPSPKGSFX_64R6 - This is used to specify "isa" in the tuple. Release 6 onwards we use "mipsisa64" instead of just "mips64".
MIPSPKGSFX_32R6 - This is used to specify "isa32" in the tuple. Release 6 onwards we use "mipsisa32" instead of just "mips".