Files
poky/meta/conf/machine/include/mips
Richard Purdie 450d5ba9b0 arch-mips: Ensure TUNE_LDARGS is set correctly
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>
2023-08-15 08:15:25 +01:00
..
2021-08-02 15:44:10 +01:00

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".