toolchain: allow choosing the MIPS64 user-land ABI
Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 36205
This commit is contained in:
parent
348cae15d2
commit
e032922266
4 changed files with 35 additions and 1 deletions
5
rules.mk
5
rules.mk
|
@ -73,6 +73,11 @@ endif
|
||||||
ifdef CONFIG_HAS_SPE_FPU
|
ifdef CONFIG_HAS_SPE_FPU
|
||||||
TARGET_SUFFIX:=$(TARGET_SUFFIX)spe
|
TARGET_SUFFIX:=$(TARGET_SUFFIX)spe
|
||||||
endif
|
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)
|
DL_DIR:=$(if $(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(TOPDIR)/dl)
|
||||||
BIN_DIR:=$(TOPDIR)/bin/$(BOARD)
|
BIN_DIR:=$(TOPDIR)/bin/$(BOARD)
|
||||||
|
|
|
@ -130,6 +130,25 @@ menuconfig EXTRA_TARGET_ARCH
|
||||||
both powerpc and powerpc64 binaries, you'll need to
|
both powerpc and powerpc64 binaries, you'll need to
|
||||||
specify -m64 here.
|
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"
|
comment "Binary tools"
|
||||||
depends TOOLCHAINOPTS
|
depends TOOLCHAINOPTS
|
||||||
|
|
||||||
|
@ -218,3 +237,11 @@ config TARGET_SUFFIX
|
||||||
default "uclibc" if USE_UCLIBC && !(arm || armeb)
|
default "uclibc" if USE_UCLIBC && !(arm || armeb)
|
||||||
default "muslgnueabi" if USE_MUSL && (arm || armeb)
|
default "muslgnueabi" if USE_MUSL && (arm || armeb)
|
||||||
default "musl" 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"
|
||||||
|
|
|
@ -64,6 +64,7 @@ ifneq ($(ARCH),)
|
||||||
mkdir -p "$$dir"; \
|
mkdir -p "$$dir"; \
|
||||||
cd "$$dir"; \
|
cd "$$dir"; \
|
||||||
ln -nsf lib lib64; \
|
ln -nsf lib lib64; \
|
||||||
|
ln -nsf lib lib32; \
|
||||||
mkdir -p stamp lib usr/include usr/lib ; \
|
mkdir -p stamp lib usr/include usr/lib ; \
|
||||||
); done
|
); done
|
||||||
@grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@
|
@grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@
|
||||||
|
|
|
@ -113,7 +113,8 @@ GCC_CONFIGURE:= \
|
||||||
--with-host-libstdcxx=-lstdc++ \
|
--with-host-libstdcxx=-lstdc++ \
|
||||||
$(SOFT_FLOAT_CONFIG_OPTION) \
|
$(SOFT_FLOAT_CONFIG_OPTION) \
|
||||||
$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \
|
$(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-gmp=$(TOPDIR)/staging_dir/host \
|
||||||
--with-mpfr=$(TOPDIR)/staging_dir/host \
|
--with-mpfr=$(TOPDIR)/staging_dir/host \
|
||||||
--disable-decimal-float
|
--disable-decimal-float
|
||||||
|
|
Loading…
Reference in a new issue