# HG changeset patch # User "Yann E. MORIN" # Date 1284322444 -7200 # Node ID 034de6dca38f1c48fe296c871b2ce53d1c4dc35c # Parent 24aacb93191d95d8291e32e327c3f5ea4040276c arch/mips: add option for MIPS ABIs This adds selection for one of the o32, n32 and n64 ABIs. Later, we can easily use those boolean options, rather than relying on a user-supplied string option. Signed-off-by: "Yann E. MORIN" diff -r 24aacb93191d -r 034de6dca38f config/arch/mips.in --- a/config/arch/mips.in Sat Sep 11 17:55:54 2010 +0200 +++ b/config/arch/mips.in Sun Sep 12 22:14:04 2010 +0200 @@ -8,7 +8,6 @@ select ARCH_SUPPORTS_BOTH_ENDIAN select ARCH_DEFAULT_BE select ARCH_SUPPORT_ARCH - select ARCH_SUPPORT_ABI select ARCH_SUPPORT_TUNE help The MIPS architecture, as defined by: diff -r 24aacb93191d -r 034de6dca38f config/arch/mips.in.2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/arch/mips.in.2 Sun Sep 12 22:14:04 2010 +0200 @@ -0,0 +1,38 @@ +# MIPS specific config options + +choice + bool + prompt "ABI" + +config ARCH_mips_o32 + bool + prompt "o32" + depends on ARCH_32 + help + This is the -mabi=32 gcc option. + +config ARCH_mips_n32 + bool + prompt "n32" + depends on ARCH_64 + help + This is the -mabi=n32 gcc option. + +config ARCH_mips_n64 + bool + prompt "n64" + depends on ARCH_64 + help + This is the -mabi=64 gcc option. + +# Not supported on Linux: +# o64 : seems related to *BSD +# eabi : seems related to bare-metal + +endchoice + +config ARCH_mips_ABI + string + default "32" if ARCH_mips_o32 + default "n32" if ARCH_mips_n32 + default "64" if ARCH_mips_n64 diff -r 24aacb93191d -r 034de6dca38f scripts/build/arch/mips.sh --- a/scripts/build/arch/mips.sh Sat Sep 11 17:55:54 2010 +0200 +++ b/scripts/build/arch/mips.sh Sun Sep 12 22:14:04 2010 +0200 @@ -14,4 +14,8 @@ y,) CT_ARCH_ENDIAN_CFLAG="-EB";; ,y) CT_ARCH_ENDIAN_CFLAG="-EL";; esac + + # Override ABI flags + CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_mips_ABI}" + CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_mips_ABI}" }