summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-03-06 12:33:51 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2014-03-06 12:33:51 +0100
commit07f56ae74b26588e501c7e895f3355d4177e81d8 (patch)
treeadd188b35e9542522c5343bbad9617336a6c15be
parent7f853c20b539d4b71e6d0ef53fcc16d7b9c00976 (diff)
fix parallel using of different mips abi
-rw-r--r--mk/vars.mk40
-rw-r--r--target/config/Config.in61
-rw-r--r--target/mips/sys-available/qemu-mips643
-rw-r--r--target/mips/sys-available/qemu-mips64el5
-rw-r--r--target/mips/sys-available/toolchain-mips648
-rw-r--r--target/mips/sys-available/toolchain-mips64el8
-rw-r--r--toolchain/uClibc/Makefile6
7 files changed, 66 insertions, 65 deletions
diff --git a/mk/vars.mk b/mk/vars.mk
index 8f3022634..171fbc74e 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -10,38 +10,50 @@ MAKEFLAGS= $(EXTRA_MAKEFLAGS)
BUILD_USER= $(shell id -un)
BUILD_GROUP= $(shell id -gn)
-BASE_DIR:= $(TOPDIR)
-DISTDIR?= ${BASE_DIR}/dl
-BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
+# PFX dirs for cleandir
+FW_DIR_PFX:= $(BASE_DIR)/firmware
BUILD_DIR_PFX:= $(BASE_DIR)/build_*
-STAGING_PKG_DIR:= ${BASE_DIR}/pkg_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_PKG_DIR_PFX:= ${BASE_DIR}/pkg_*
-STAGING_HOST_DIR:= ${BASE_DIR}/host_${GNU_HOST_NAME}
+STAGING_TARGET_DIR_PFX:=${BASE_DIR}/target_*
+TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_*
STAGING_HOST_DIR_PFX:= ${BASE_DIR}/host_*
+TARGET_DIR_PFX:= $(BASE_DIR)/root_*
+
+# some global dirs
+BASE_DIR:= $(TOPDIR)
+DISTDIR?= ${BASE_DIR}/dl
+TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build
+SCRIPT_DIR:= $(BASE_DIR)/scripts
+STAGING_HOST_DIR:= ${BASE_DIR}/host_${GNU_HOST_NAME}
+
ifeq ($(ADK_TARGET_ABI),)
+TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
+FW_DIR:= $(BASE_DIR)/firmware/${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
+BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}
+STAGING_PKG_DIR:= ${BASE_DIR}/pkg_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_HOST2TARGET:= ../target_${CPU_ARCH}_${ADK_TARGET_LIBC}
TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_LIBC}
else
+TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
+FW_DIR:= $(BASE_DIR)/firmware/${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
+BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
STAGING_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
+STAGING_PKG_DIR:= ${BASE_DIR}/pkg_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
STAGING_HOST2TARGET:= ../target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI}
endif
-SCRIPT_TARGET_DIR:= ${STAGING_TARGET_DIR}/scripts
-STAGING_TARGET_DIR_PFX:=${BASE_DIR}/target_*
-TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_*
-TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build
-SCRIPT_DIR:= $(BASE_DIR)/scripts
-FW_DIR:= $(BASE_DIR)/firmware/${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
-FW_DIR_PFX:= $(BASE_DIR)/firmware
+
PACKAGE_DIR:= $(FW_DIR)/packages
-TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
-TARGET_DIR_PFX:= $(BASE_DIR)/root_*
+SCRIPT_TARGET_DIR:= ${STAGING_TARGET_DIR}/scripts
+
+# PATH variables
TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
HOST_PATH= ${SCRIPT_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
AUTOTOOL_PATH= ${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
+
ifeq ($(ADK_TARGET_ABI_X32),y)
GNU_TARGET_NAME= $(CPU_ARCH)-x32-linux
else
diff --git a/target/config/Config.in b/target/config/Config.in
index 0eab0aecf..d8b73d2fa 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -87,8 +87,6 @@ prompt "Target Kernel"
depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG \
|| ADK_TARGET_SYSTEM_QEMU_MIPS64 \
|| ADK_TARGET_SYSTEM_QEMU_MIPS64EL \
- || ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64 \
- || ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64EL \
|| ADK_LINUX_X86_64
config ADK_TARGET_KERNEL64
@@ -133,26 +131,19 @@ config ADK_TARGET_ABI
default "eabihf" if ADK_eabihf
config ADK_TARGET_MIPS_ABI
- depends on ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS
+ depends on ADK_LINUX_MIPS
string
default "32" if ADK_o32
default "n32" if ADK_n32
default "64" if ADK_n64
-config ADK_TARGET_ABI_MIPS_O32
- boolean
- select ADK_o32
- depends on !ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS
- default y
-
choice
prompt "Target ABI"
-depends on ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS
+depends on ADK_TARGET_KERNEL64 && ADK_LINUX_MIPS && !ADK_TOOLCHAIN
config ADK_TARGET_ABI_N32
boolean "N32 ABI (new)"
select ADK_n32
- depends on !ADK_TARGET_LIB_MUSL
config ADK_TARGET_ABI_O32
boolean "O32 ABI (old)"
@@ -161,13 +152,12 @@ config ADK_TARGET_ABI_O32
config ADK_TARGET_ABI_N64
boolean "N64 ABI"
select ADK_n64
- depends on !ADK_TARGET_LIB_MUSL
endchoice
choice
prompt "Target ABI"
-depends on ADK_TARGET_KERNEL64 && ADK_LINUX_X86_64
+depends on ADK_TARGET_KERNEL64 && ADK_LINUX_X86_64 && !ADK_TOOLCHAIN
config ADK_TARGET_ABI_64
boolean "64 Bit ABI"
@@ -558,8 +548,8 @@ config ADK_TARGET_CPU_ARCH
default "m68k" if ADK_LINUX_M68K
default "microblaze" if ADK_LINUX_MICROBLAZE && ADK_big
default "microblazeel" if ADK_LINUX_MICROBLAZE && ADK_little
- default "mips64" if ADK_LINUX_MIPS && ADK_big && ADK_TARGET_KERNEL64
- default "mips64el" if ADK_LINUX_MIPS && ADK_little && ADK_TARGET_KERNEL64
+ default "mips64" if ADK_LINUX_MIPS && ADK_big && ADK_LINUX_64
+ default "mips64el" if ADK_LINUX_MIPS && ADK_little && ADK_LINUX_64
default "mips" if ADK_LINUX_MIPS && ADK_big
default "mipsel" if ADK_LINUX_MIPS && ADK_little
default "arm" if ADK_LINUX_ARM && ADK_little
@@ -570,26 +560,26 @@ config ADK_TARGET_CPU_ARCH
default "sh4eb" if ADK_LINUX_SH && ADK_big
default "ppc" if ADK_CPU_PPC
default "ppc64" if ADK_CPU_PPC64
- default "mips64el" if ADK_native && ADK_lemote_yeelong
+ default "mips64el" if ADK_native && ADK_lemote_yeelong
config ADK_TARGET_ABI_CFLAGS
string
- default "-mabi=32" if ADK_TARGET_ABI_O32 || ADK_TARGET_ABI_MIPS_O32
- default "-mabi=n32" if ADK_TARGET_ABI_N32
- default "-mabi=64" if ADK_TARGET_ABI_N64
- default "-m32" if ADK_TARGET_ABI_32
- default "-mx32" if ADK_TARGET_ABI_X32
- default "-m64" if ADK_TARGET_ABI_64
+ default "-mabi=32" if ADK_o32
+ default "-mabi=n32" if ADK_n32
+ default "-mabi=64" if ADK_n64
+ default "-m32" if ADK_32
+ default "-mx32" if ADK_x32
+ default "-m64" if ADK_64
config ADK_TARGET_ABI_LDFLAGS
string
- default "-Wl,-m -Wl,elf_i386" if ADK_TARGET_ABI_32
+ default "-Wl,-m -Wl,elf_i386" if ADK_32
config ADK_TARGET_KERNEL_LDFLAGS
string
- default "-mabi=64" if ADK_TARGET_ABI_N32 && ADK_TARGET_KERNEL64
- default "-mabi=64" if ADK_TARGET_ABI_O32 && ADK_TARGET_KERNEL64
- default "-mabi=64" if ADK_TARGET_ABI_N64 && ADK_TARGET_KERNEL64
+ default "-mabi=64" if ADK_n32 && ADK_TARGET_KERNEL64
+ default "-mabi=64" if ADK_o32 && ADK_TARGET_KERNEL64
+ default "-mabi=64" if ADK_n64 && ADK_TARGET_KERNEL64
default ""
config ADK_TARGET_CFLAGS
@@ -685,7 +675,6 @@ config ADK_TARGET_LIB_GLIBC
select ADK_glibc
depends on \
ADK_LINUX_ARM || \
- ADK_LINUX_ARMEB || \
ADK_LINUX_M68K || \
ADK_LINUX_MICROBLAZE || \
ADK_LINUX_MIPS || \
@@ -726,25 +715,25 @@ config ADK_TARGET_SUFFIX
string
default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_eabihf
default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_eabi
- default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64 && ADK_TARGET_KERNEL64
- default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32 && ADK_TARGET_KERNEL64
- default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32 && ADK_TARGET_KERNEL64
+ default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64
+ default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32
+ default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32
default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_32 && ADK_TARGET_KERNEL64
default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_x32 && ADK_TARGET_KERNEL64
default "gnu" if ADK_TARGET_LIB_GLIBC
default "uclibcgnueabihf" if ADK_TARGET_LIB_UCLIBC && ADK_eabihf
default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_eabi
- default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC && ADK_n64 && ADK_TARGET_KERNEL64
- default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC && ADK_n32 && ADK_TARGET_KERNEL64
- default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC && ADK_o32 && ADK_TARGET_KERNEL64
+ default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC && ADK_n64
+ default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC && ADK_n32
+ default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC && ADK_o32
default "uclibc32" if ADK_TARGET_LIB_UCLIBC && ADK_32 && ADK_TARGET_KERNEL64
default "uclibcx32" if ADK_TARGET_LIB_UCLIBC && ADK_x32 && ADK_TARGET_KERNEL64
default "uclibc" if ADK_TARGET_LIB_UCLIBC
default "muslgnueabihf" if ADK_TARGET_LIB_MUSL && ADK_eabihf
default "muslgnueabi" if ADK_TARGET_LIB_MUSL && ADK_eabi
- default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_n64 && ADK_TARGET_KERNEL64
- default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_n32 && ADK_TARGET_KERNEL64
- default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_o32 && ADK_TARGET_KERNEL64
+ default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_n64
+ default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_n32
+ default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_o32
default "musl32" if ADK_TARGET_LIB_MUSL && ADK_32 && ADK_TARGET_KERNEL64
default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_x32 && ADK_TARGET_KERNEL64
default "musl" if ADK_TARGET_LIB_MUSL
diff --git a/target/mips/sys-available/qemu-mips64 b/target/mips/sys-available/qemu-mips64
index 7a7562edc..924c70bc4 100644
--- a/target/mips/sys-available/qemu-mips64
+++ b/target/mips/sys-available/qemu-mips64
@@ -4,9 +4,8 @@ config ADK_TARGET_SYSTEM_QEMU_MIPS64
select ADK_big
select ADK_qemu_mips64
select ADK_CPU_MIPS64
+ select ADK_LINUX_64
select ADK_HARDWARE_QEMU
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_INPUT
select ADK_TARGET_KERNEL_VMLINUZ
select ADK_USE_KERNEL_MINICONFIG
help
diff --git a/target/mips/sys-available/qemu-mips64el b/target/mips/sys-available/qemu-mips64el
index 34d44c054..14b548632 100644
--- a/target/mips/sys-available/qemu-mips64el
+++ b/target/mips/sys-available/qemu-mips64el
@@ -4,12 +4,9 @@ config ADK_TARGET_SYSTEM_QEMU_MIPS64EL
select ADK_little
select ADK_qemu_mips64el
select ADK_CPU_MIPS64
- select ADK_TARGET_KERNEL64
+ select ADK_LINUX_64
select ADK_HARDWARE_QEMU
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_INPUT
select ADK_TARGET_KERNEL_VMLINUZ
select ADK_USE_KERNEL_MINICONFIG
help
Qemu support for mips64 little endian architecture.
-
diff --git a/target/mips/sys-available/toolchain-mips64 b/target/mips/sys-available/toolchain-mips64
index 9cc19e299..e9ea69170 100644
--- a/target/mips/sys-available/toolchain-mips64
+++ b/target/mips/sys-available/toolchain-mips64
@@ -1,10 +1,12 @@
config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64
- bool "Toolchain only (mips64 big endian)"
+ bool "Toolchain only (mips64 big endian o32 ABI)"
select ADK_mips
select ADK_big
- select ADK_CPU_MIPS64
+ select ADK_o32
select ADK_toolchain_mips64
+ select ADK_CPU_MIPS64
+ select ADK_LINUX_64
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
help
- MIPS64 big endian toolchain.
+ MIPS64 big endian o32 ABI toolchain.
diff --git a/target/mips/sys-available/toolchain-mips64el b/target/mips/sys-available/toolchain-mips64el
index 2cb27d99c..0d54692ee 100644
--- a/target/mips/sys-available/toolchain-mips64el
+++ b/target/mips/sys-available/toolchain-mips64el
@@ -1,10 +1,12 @@
config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64EL
- bool "Toolchain only (mips64 little endian)"
+ bool "Toolchain only (mips64 little endian o32 ABI)"
select ADK_mips
select ADK_little
- select ADK_CPU_MIPS64
+ select ADK_o32
select ADK_toolchain_mips64el
+ select ADK_CPU_MIPS64
+ select ADK_LINUX_64
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
help
- MIPS64 little endian toolchain.
+ MIPS64 little endian o32 ABI toolchain.
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index b935a2f53..121b9d33a 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -36,17 +36,17 @@ else
$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS64\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
-ifeq ($(ADK_TARGET_ABI_N64),y)
+ifeq ($(ADK_n64),y)
$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
-ifeq ($(ADK_TARGET_ABI_N32),y)
+ifeq ($(ADK_n32),y)
$(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
-ifeq ($(ADK_TARGET_ABI_O32),y)
+ifeq ($(ADK_o32),y)
$(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/# \1 is not set/' ${WRKBUILD}/.config