Message ID | 1342268918-3235-1-git-send-email-gustavo@zacarias.com.ar |
---|---|
State | Accepted |
Headers | show |
Le Sat, 14 Jul 2012 09:28:37 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > MIPS EABI is a bare-metal ABI so remove it. > Also fix uClibc to really work with N32 ABI, which used the EABI knob > previously. There is no support in uClibc for o64. Is this ABI really used? I see that gcc has support for it (http://gcc.gnu.org/projects/mipso64-abi.html), but is it used in practice? Also, is the BR2_MIPS_ABI_none knob actually useful? Thanks, Thomas
On 07/14/12 10:03, Thomas Petazzoni wrote: > Le Sat, 14 Jul 2012 09:28:37 -0300, > Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > >> MIPS EABI is a bare-metal ABI so remove it. >> Also fix uClibc to really work with N32 ABI, which used the EABI knob >> previously. > > There is no support in uClibc for o64. Is this ABI really used? I see > that gcc has support for it > (http://gcc.gnu.org/projects/mipso64-abi.html), but is it used in > practice? > > Also, is the BR2_MIPS_ABI_none knob actually useful? > > Thanks, > > Thomas The patchset isn't complete, it's just a start to fix the obvious so any comments/suggestions are welcome. Other points to fix include: * External MIPS toolchains (non ct-ng) - neither of them seems to support 64 bit anything yet it's an option, we should probably filter them out. * uClibc 64 bit toolchains seem broken for shared objects in general. I've been able to get a qemu test running only with static linking. Aboriginal linux does static too for mips64 as supporting evidence. The set is just to get thing to build, maybe not properly but not because of buildroot. BR2_MIPS_ABI_none is actually useless, so yes it can be removed. o64 ABI is probably an SGI thing for IRIX, hence the reason gcc supports it, probably can be removed too. Regards.
diff --git a/target/Config.in.arch b/target/Config.in.arch index c9bbc12..bad0f4c 100644 --- a/target/Config.in.arch +++ b/target/Config.in.arch @@ -280,9 +280,6 @@ config BR2_MIPS_OABI32 config BR2_MIPS_ABI32 bool "n32" depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16 -config BR2_MIPS_EABI - bool "eabi" - depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16 config BR2_MIPS_ABI64 bool "n64" depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16 diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index f40fe36..9d0b6db 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -158,7 +158,7 @@ ifeq ($(UCLIBC_TARGET_ARCH),mips) ifeq ($(BR2_MIPS_OABI),y) $(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig endif -ifeq ($(BR2_MIPS_EABI),y) +ifeq ($(BR2_MIPS_ABI32),y) $(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig endif ifeq ($(BR2_MIPS_ABI64),y)
MIPS EABI is a bare-metal ABI so remove it. Also fix uClibc to really work with N32 ABI, which used the EABI knob previously. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> --- target/Config.in.arch | 3 --- toolchain/uClibc/uclibc.mk | 2 +- 2 files changed, 1 insertions(+), 4 deletions(-)