diff options
-rw-r--r-- | mk/vars.mk | 40 | ||||
-rw-r--r-- | target/config/Config.in | 61 | ||||
-rw-r--r-- | target/mips/sys-available/qemu-mips64 | 3 | ||||
-rw-r--r-- | target/mips/sys-available/qemu-mips64el | 5 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64 | 8 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64el | 8 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64eln32 | 12 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64eln64 | 12 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64n32 | 12 | ||||
-rw-r--r-- | target/mips/sys-available/toolchain-mips64n64 | 12 | ||||
-rw-r--r-- | toolchain/uClibc/Makefile | 6 |
11 files changed, 114 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/target/mips/sys-available/toolchain-mips64eln32 b/target/mips/sys-available/toolchain-mips64eln32 new file mode 100644 index 000000000..9c0f44381 --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64eln32 @@ -0,0 +1,12 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64ELN32 + bool "Toolchain only (mips64 little endian n32 ABI)" + select ADK_mips + select ADK_little + select ADK_n32 + select ADK_toolchain_mips64el + select ADK_CPU_MIPS64 + select ADK_LINUX_64 + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 little endian n32 ABI toolchain. diff --git a/target/mips/sys-available/toolchain-mips64eln64 b/target/mips/sys-available/toolchain-mips64eln64 new file mode 100644 index 000000000..2795598d8 --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64eln64 @@ -0,0 +1,12 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64ELN64 + bool "Toolchain only (mips64 little endian n64 ABI)" + select ADK_mips + select ADK_little + select ADK_n64 + select ADK_toolchain_mips64el + select ADK_CPU_MIPS64 + select ADK_LINUX_64 + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 little endian n64 ABI toolchain. diff --git a/target/mips/sys-available/toolchain-mips64n32 b/target/mips/sys-available/toolchain-mips64n32 new file mode 100644 index 000000000..e2acd59b3 --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64n32 @@ -0,0 +1,12 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64N32 + bool "Toolchain only (mips64 big endian n32 ABI)" + select ADK_mips + select ADK_big + select ADK_n32 + select ADK_toolchain_mips64 + select ADK_CPU_MIPS64 + select ADK_LINUX_64 + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 big endian n64 ABI toolchain. diff --git a/target/mips/sys-available/toolchain-mips64n64 b/target/mips/sys-available/toolchain-mips64n64 new file mode 100644 index 000000000..e544008f4 --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64n64 @@ -0,0 +1,12 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64N64 + bool "Toolchain only (mips64 big endian n64 ABI)" + select ADK_mips + select ADK_big + select ADK_n64 + select ADK_toolchain_mips64 + select ADK_CPU_MIPS64 + select ADK_LINUX_64 + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 big endian n64 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 |