diff options
author | Florian Fainelli <florian@openwrt.org> | 2013-04-05 12:36:23 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2013-04-05 12:36:23 +0000 |
commit | e03292226618c68f219f41d745f92172687690dd (patch) | |
tree | 30339621d48222e18d49491444ca6c9bdc3591be | |
parent | 348cae15d2934f07a6c584261c2bee49cc43bbbd (diff) | |
download | upstream-e03292226618c68f219f41d745f92172687690dd.tar.gz upstream-e03292226618c68f219f41d745f92172687690dd.tar.bz2 upstream-e03292226618c68f219f41d745f92172687690dd.zip |
toolchain: allow choosing the MIPS64 user-land ABI
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 36205
-rw-r--r-- | rules.mk | 5 | ||||
-rw-r--r-- | toolchain/Config.in | 27 | ||||
-rw-r--r-- | toolchain/Makefile | 1 | ||||
-rw-r--r-- | toolchain/gcc/common.mk | 3 |
4 files changed, 35 insertions, 1 deletions
@@ -73,6 +73,11 @@ endif ifdef CONFIG_HAS_SPE_FPU TARGET_SUFFIX:=$(TARGET_SUFFIX)spe endif +ifdef CONFIG_MIPS64_ABI + ifneq ($(CONFIG_MIPS64_ABI_O32),y) + ARCH_SUFFIX:=$(ARCH_SUFFIX)_$(subst ",,$(CONFIG_MIPS64_ABI)) + endif +endif DL_DIR:=$(if $(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(TOPDIR)/dl) BIN_DIR:=$(TOPDIR)/bin/$(BOARD) diff --git a/toolchain/Config.in b/toolchain/Config.in index 8677b87e7e..e32364095b 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -130,6 +130,25 @@ menuconfig EXTRA_TARGET_ARCH both powerpc and powerpc64 binaries, you'll need to specify -m64 here. + + choice + prompt "MIPS64 user-land ABI" if TOOLCHAINOPTS && (mips64 || mips64el) + default MIPS64_ABI_N64 + help + MIPS64 supports 3 different user-land ABIs: o32 (legacy), + n32 and n64. + + config MIPS64_ABI_N64 + bool "n64" + + config MIPS64_ABI_N32 + bool "n32" + + config MIPS64_ABI_O32 + bool "o32" + + endchoice + comment "Binary tools" depends TOOLCHAINOPTS @@ -218,3 +237,11 @@ config TARGET_SUFFIX default "uclibc" if USE_UCLIBC && !(arm || armeb) default "muslgnueabi" if USE_MUSL && (arm || armeb) default "musl" if USE_MUSL && !(arm || armeb) + +config MIPS64_ABI + depends mips64 || mips64el + string + default "64" if MIPS64_ABI_N64 + default "n32" if MIPS64_ABI_N32 + default "32" if MIPS64_ABI_O32 + default "64" diff --git a/toolchain/Makefile b/toolchain/Makefile index 763381a838..581d2b3c60 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -64,6 +64,7 @@ ifneq ($(ARCH),) mkdir -p "$$dir"; \ cd "$$dir"; \ ln -nsf lib lib64; \ + ln -nsf lib lib32; \ mkdir -p stamp lib usr/include usr/lib ; \ ); done @grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@ diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index 8305aa9fc1..c6b961735c 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -113,7 +113,8 @@ GCC_CONFIGURE:= \ --with-host-libstdcxx=-lstdc++ \ $(SOFT_FLOAT_CONFIG_OPTION) \ $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ - $(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 --with-abi=64) \ + $(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 \ + --with-abi=$(subst ",,$(CONFIG_MIPS64_ABI))) \ --with-gmp=$(TOPDIR)/staging_dir/host \ --with-mpfr=$(TOPDIR)/staging_dir/host \ --disable-decimal-float |