From b12d05eaac6fece851a48de9494b2855f17618db Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 19 Feb 2014 16:14:11 +0100 Subject: add mips64 toolchains, and microblaezel --- mk/build.mk | 6 ++---- target/config/Config.in | 2 ++ target/mips/sys-available/toolchain-mips64 | 10 ++++++++++ target/mips/sys-available/toolchain-mips64el | 10 ++++++++++ target/tarch.lst | 3 +++ target/x86_64/sys-available/toolchain-x86_64 | 1 + 6 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 target/mips/sys-available/toolchain-mips64 create mode 100644 target/mips/sys-available/toolchain-mips64el diff --git a/mk/build.mk b/mk/build.mk index c765d4e62..9344e7867 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -41,8 +41,6 @@ DEFCONFIG= ADK_DEBUG=n \ ADK_PKG_XORG=n \ ADK_PKG_MPDBOX=n \ ADK_PKG_DEVELOPMENT=n \ - ADK_TOOLCHAIN_GCC_JAVA=n \ - ADK_TOOLCHAIN_GCC_OBJC=n \ ADK_TOOLCHAIN_GCC_USE_SSP=n \ ADK_TOOLCHAIN_GCC_USE_LTO=n \ BUSYBOX_IFPLUGD=n \ @@ -546,12 +544,12 @@ endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) # build all target architecture and libc combinations (toolchain only) bulktoolchain: - for libc in uclibc eglibc glibc musl;do \ + for libc in glibc eglibc uclibc musl;do \ while read arch; do \ mkdir -p $(TOPDIR)/bin/toolchain_$${arch}_$$libc; \ ( \ echo === building $$arch $$libc toolchain-$$arch on $$(date); \ - tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##"); \ + tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#"); \ $(GMAKE) prereq && \ $(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \ diff --git a/target/config/Config.in b/target/config/Config.in index 6cab5a99d..8bfd1086e 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -63,6 +63,8 @@ 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 diff --git a/target/mips/sys-available/toolchain-mips64 b/target/mips/sys-available/toolchain-mips64 new file mode 100644 index 000000000..9cc19e299 --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64 @@ -0,0 +1,10 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64 + bool "Toolchain only (mips64 big endian)" + select ADK_mips + select ADK_big + select ADK_CPU_MIPS64 + select ADK_toolchain_mips64 + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 big endian toolchain. diff --git a/target/mips/sys-available/toolchain-mips64el b/target/mips/sys-available/toolchain-mips64el new file mode 100644 index 000000000..2cb27d99c --- /dev/null +++ b/target/mips/sys-available/toolchain-mips64el @@ -0,0 +1,10 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS64EL + bool "Toolchain only (mips64 little endian)" + select ADK_mips + select ADK_little + select ADK_CPU_MIPS64 + select ADK_toolchain_mips64el + select ADK_TOOLCHAIN + select ADK_TARGET_PACKAGE_TGZ + help + MIPS64 little endian toolchain. diff --git a/target/tarch.lst b/target/tarch.lst index d515ddfd5..239c496df 100644 --- a/target/tarch.lst +++ b/target/tarch.lst @@ -2,8 +2,11 @@ arm armeb m68k microblaze +microblazeel mips mipsel +mips64 +mips64el ppc ppc64 sparc diff --git a/target/x86_64/sys-available/toolchain-x86_64 b/target/x86_64/sys-available/toolchain-x86_64 index fd1025270..c268e9687 100644 --- a/target/x86_64/sys-available/toolchain-x86_64 +++ b/target/x86_64/sys-available/toolchain-x86_64 @@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_X86_64 bool "Toolchain only" select ADK_x86_64 select ADK_toolchain_x86_64 + select ADK_CPU_X86_64 select ADK_TOOLCHAIN select ADK_TARGET_PACKAGE_TGZ help -- cgit v1.2.3 From 6b6fe26dee627bbc6506b0e96ed13a55440bcd9d Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 22 Feb 2014 22:25:58 +0100 Subject: fix ppc64 toolchain building with eglibc, disable sparc uclibc (broken) --- mk/build.mk | 1 + target/config/Config.in | 1 + toolchain/eglibc/Makefile | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mk/build.mk b/mk/build.mk index 1f94fb184..cbfb371b1 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -537,6 +537,7 @@ bulktoolchain: $(GMAKE) prereq && \ $(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \ + tar -cJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}.tar.xz host_$${arch}_*_$${libc} target_$${arch}_*_$${libc}; \ rm .config; \ ) 2>&1 | tee $(TOPDIR)/firmware/toolchain_$${arch}_$${libc}/build.log; \ if [ -f .exit ];then break;fi \ diff --git a/target/config/Config.in b/target/config/Config.in index 8bfd1086e..3e20b46a6 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -601,6 +601,7 @@ config ADK_TARGET_LIB_UCLIBC select ADK_uclibc depends on \ !ADK_LINUX_MICROBLAZE && \ + !ADK_LINUX_SPARC && \ !ADK_LINUX_SPARC64 && \ !ADK_LINUX_PPC64 && \ !ADK_LINUX_NATIVE diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile index 72dd1b1b7..dbccb8866 100644 --- a/toolchain/eglibc/Makefile +++ b/toolchain/eglibc/Makefile @@ -4,13 +4,16 @@ include $(TOPDIR)/rules.mk include ../rules.mk -# eglibc does not compile with Os on sparc +# eglibc does not compile with Os on some architectures ifeq ($(ADK_LINUX_SPARC),y) TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS)) endif ifeq ($(ADK_LINUX_MICROBLAZE),y) TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS)) endif +ifeq ($(ADK_LINUX_PPC64),y) +TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS)) +endif # ssp not supported TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC)) -- cgit v1.2.3