diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2014-07-28 10:14:40 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-07-28 10:25:06 +0200 |
commit | c43854da4d87c25f54cce20ad188a6877dc15f71 (patch) | |
tree | 2fce408ef916b6c205e3f74a5ce2c1b0fc969beb | |
parent | 86e450dac4a6d50ebda79f80081525462d1bb68b (diff) |
add some basic infrastructure for qemu-system-m68k
Qemu emulates a Coldfire Evaluation board without MMU.
As that is the first non-MMU platform in OpenADK I added
ADK_TARGET_UCLINUX. Mksh can not be used for non-MMU, because
it requires fork() for job control and other things.
We use hush here. non-MMU support in uClibc does not have
shared library support.
Kernel does not start yet. So no runtime testing, but at least
coldfire toolchain can be tested with uClibc-ng.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-rw-r--r-- | mk/image.mk | 4 | ||||
-rw-r--r-- | mk/vars.mk | 8 | ||||
-rw-r--r-- | package/base-files/Makefile | 5 | ||||
-rw-r--r-- | package/busybox/Makefile | 5 | ||||
-rw-r--r-- | package/libgcc/Makefile | 2 | ||||
-rw-r--r-- | package/mksh/Makefile | 2 | ||||
-rw-r--r-- | target/config/Config.in | 4 | ||||
-rw-r--r-- | target/config/Config.in.cpu | 3 | ||||
-rw-r--r-- | target/config/Config.in.kernel | 1 | ||||
-rw-r--r-- | target/config/Config.in.libc.choice | 2 | ||||
-rw-r--r-- | target/config/Config.in.libc.default | 2 | ||||
-rw-r--r-- | target/config/Config.in.runtime | 14 | ||||
-rw-r--r-- | target/config/Config.in.target | 1 | ||||
-rw-r--r-- | target/config/Config.in.toolchain | 1 | ||||
-rw-r--r-- | target/m68k/Makefile | 29 | ||||
-rw-r--r-- | target/m68k/kernel/qemu-m68k | 16 | ||||
-rw-r--r-- | target/m68k/systems/qemu-m68k | 11 | ||||
-rw-r--r-- | target/m68k/uclibc-ng.config | 4 | ||||
-rw-r--r-- | target/m68k/uclibc.config | 222 | ||||
-rw-r--r-- | toolchain/gcc/Makefile | 11 | ||||
-rw-r--r-- | toolchain/gcc/patches/4.8.3/disable-atomics.m68k | 12 |
21 files changed, 348 insertions, 11 deletions
diff --git a/mk/image.mk b/mk/image.mk index c732003ee..e72f0a1af 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -6,6 +6,8 @@ ifeq (${ADK_BINSH_ASH},y) BINSH:=ash else ifeq (${ADK_BINSH_BASH},y) BINSH:=bash +else ifeq (${ADK_BINSH_HUSH},y) +BINSH:=hush else ifeq (${ADK_BINSH_MKSH},y) BINSH:=mksh else ifeq (${ADK_BINSH_ZSH},y) @@ -19,6 +21,8 @@ ifeq (${ADK_ROOTSH_ASH},y) ROOTSH:=/bin/ash else ifeq (${ADK_ROOTSH_BASH},y) ROOTSH:=/bin/bash +else ifeq (${ADK_ROOTSH_HUSH},y) +ROOTSH:=/bin/hush else ifeq (${ADK_ROOTSH_MKSH},y) ROOTSH:=/bin/mksh else ifeq (${ADK_ROOTSH_TCSH},y) diff --git a/mk/vars.mk b/mk/vars.mk index 355a6b12d..128164da0 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -57,7 +57,13 @@ else GCC_CHECK:= endif -GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX) +ifeq ($(ADK_TARGET_UCLINUX),y) +ADK_TARGET_LINUXTYPE:= uclinux +else +ADK_TARGET_LINUXTYPE:= linux +endif + +GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)-$(ADK_TARGET_SUFFIX) TARGET_CROSS:= $(TOOLCHAIN_DIR)/usr/bin/$(GNU_TARGET_NAME)- TARGET_COMPILER_PREFIX?=${TARGET_CROSS} CONFIGURE_TRIPLE:= --build=${GNU_HOST_NAME} \ diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 54f100b0d..277b3f59d 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(ADK_TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.1 -PKG_RELEASE:= 3 +PKG_RELEASE:= 4 PKG_SECTION:= base/apps PKG_DESCR:= basic files and scripts @@ -40,6 +40,9 @@ endif ifneq (${ADK_PACKAGE_ASH},) echo /bin/ash >>${IDIR_BASE_FILES}/etc/shells endif +ifneq (${ADK_PACKAGE_HUSH},) + echo /bin/hush >>${IDIR_BASE_FILES}/etc/shells +endif ifneq (${ADK_PACKAGE_BASH},) echo /bin/bash >>${IDIR_BASE_FILES}/etc/shells endif diff --git a/package/busybox/Makefile b/package/busybox/Makefile index eabed3ef3..e31de2c4b 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk PKG_NAME:= busybox PKG_VERSION:= 1.22.1 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_MD5SUM:= 337d1a15ab1cb1d4ed423168b1eb7d7e PKG_DESCR:= core utilities for embedded systems PKG_SECTION:= base/apps @@ -41,6 +41,9 @@ do-configure: ${WRKBUILD}/.config.tmp; \ cp ${WRKBUILD}/.config.tmp ${WRKBUILD}/.config; \ done +ifeq ($(ADK_TARGET_UCLINUX),y) + echo 'BUSYBOX_NOMMU=y' >> ${WRKBUILD}/.config +endif $(SED) 's;@IDIR@;${WRKINST};' ${WRKBUILD}/.config yes '' | PATH='$(HOST_PATH)' $(MAKE) ${BB_MAKE_FLAGS} -C ${WRKBUILD} oldconfig $(MAKE_TRACE) diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile index 56fff366a..91a5b18c1 100644 --- a/package/libgcc/Makefile +++ b/package/libgcc/Makefile @@ -34,6 +34,7 @@ INSTALL_STYLE:= manual libgcc-install: $(INSTALL_DIR) ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH) +ifeq ($(ADK_TARGET_UCLINUX),) ifeq ($(ADK_LINUX_SH),y) ifeq ($(ADK_TARGET_LIB_GLIBC),) ${CP} ${STAGING_TARGET_DIR}/lib/m4-nofpu/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH) @@ -41,5 +42,6 @@ endif else ${CP} ${STAGING_TARGET_DIR}/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH) endif +endif include ${ADK_TOPDIR}/mk/pkg-bottom.mk diff --git a/package/mksh/Makefile b/package/mksh/Makefile index 1e2ddb8b1..29f03beca 100644 --- a/package/mksh/Makefile +++ b/package/mksh/Makefile @@ -12,7 +12,7 @@ PKG_SECTION:= base/shells PKG_URL:= http://www.mirbsd.org/ PKG_SITES:= ${MASTER_SITE_MIRBSD:distfiles/=dist/mir/mksh/} -PKG_DFLT_MKSH:= y if !ADK_TOOLCHAIN_ONLY +PKG_DFLT_MKSH:= y if !ADK_TOOLCHAIN_ONLY && !ADK_TARGET_UCLINUX DISTFILES= ${PKG_NAME}-R${PKG_VERSION}.tgz WRKDIST= ${WRKDIR}/${PKG_NAME} diff --git a/target/config/Config.in b/target/config/Config.in index 5187c9bac..38f8090dd 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -14,6 +14,10 @@ config ADK_TOOLCHAIN_ONLY config ADK_TARGET_TOOLCHAIN boolean +config ADK_TARGET_UCLINUX + select ADK_TARGET_USE_STATIC_LIBS + boolean + config ADK_TARGET_QEMU boolean diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu index 3ab984484..ed612b9df 100644 --- a/target/config/Config.in.cpu +++ b/target/config/Config.in.cpu @@ -107,6 +107,9 @@ config ADK_CPU_CORTEX_A9 config ADK_CPU_ARMV8 boolean +config ADK_CPU_CF_5208 + boolean + config ADK_TARGET_CPU_ARCH string default "aarch64" if ADK_LINUX_AARCH64 && ADK_little diff --git a/target/config/Config.in.kernel b/target/config/Config.in.kernel index 28d8ef276..94b5dfefb 100644 --- a/target/config/Config.in.kernel +++ b/target/config/Config.in.kernel @@ -52,6 +52,7 @@ config ADK_TARGET_KERNEL_MINICONFIG default "qemu-x86_64" if ADK_TARGET_SYSTEM_QEMU_X86_64 default "qemu-xtensa" if ADK_TARGET_SYSTEM_QEMU_XTENSA default "qemu-alpha" if ADK_TARGET_SYSTEM_QEMU_ALPHA + default "qemu-m68k" if ADK_TARGET_SYSTEM_QEMU_M68K default "aranym-m68k" if ADK_TARGET_SYSTEM_ARANYM_M68K default "vbox-x86" if ADK_TARGET_SYSTEM_VBOX_X86 default "ibm-x40" if ADK_TARGET_SYSTEM_IBM_X40 diff --git a/target/config/Config.in.libc.choice b/target/config/Config.in.libc.choice index 41905898c..e95e48e96 100644 --- a/target/config/Config.in.libc.choice +++ b/target/config/Config.in.libc.choice @@ -23,6 +23,7 @@ config ADK_TARGET_LIB_MUSL prompt "musl C library" boolean select ADK_musl + depends on !ADK_TARGET_UCLINUX depends on \ ADK_LINUX_ARM || \ ADK_LINUX_MICROBLAZE || \ @@ -39,6 +40,7 @@ config ADK_TARGET_LIB_GLIBC boolean select ADK_glibc depends on !ADK_LINUX_XTENSA + depends on !ADK_TARGET_UCLINUX help http://www.gnu.org/libc diff --git a/target/config/Config.in.libc.default b/target/config/Config.in.libc.default index cd160a4cb..6d094cf05 100644 --- a/target/config/Config.in.libc.default +++ b/target/config/Config.in.libc.default @@ -23,9 +23,7 @@ config ADK_TARGET_LIBC config ADK_TARGET_WITH_NPTL boolean default n if ADK_TARGET_LIB_UCLIBC_NG && ADK_LINUX_M68K - default n if ADK_TARGET_LIB_UCLIBC_NG && ADK_LINUX_MICROBLAZE default n if ADK_TARGET_LIB_UCLIBC && ADK_LINUX_M68K - default n if ADK_TARGET_LIB_UCLIBC && ADK_LINUX_MICROBLAZE default y config ADK_TARGET_SUFFIX diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime index b7bc2462d..1f70460e8 100644 --- a/target/config/Config.in.runtime +++ b/target/config/Config.in.runtime @@ -150,6 +150,7 @@ config ADK_RUNTIME_KBD_LAYOUT choice prompt "initial login shell for the root user" +default ADK_ROOTSH_HUSH if ADK_TARGET_UCLINUX default ADK_ROOTSH_MKSH config ADK_ROOTSH_MKSH @@ -159,6 +160,12 @@ config ADK_ROOTSH_MKSH Use mksh (a Korn Shell variant) as standard login shell for the superuser. +config ADK_ROOTSH_HUSH + select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY + bool "hush (Shell compatible with non-MMU systems)" + help + hush shell from busybox. + config ADK_ROOTSH_ASH select BUSYBOX_ASH bool "ash (busybox)" @@ -190,6 +197,7 @@ endchoice choice prompt "system /bin/sh (POSIX script shell)" +default ADK_BINSH_HUSH if ADK_TARGET_UCLINUX default ADK_BINSH_MKSH config ADK_BINSH_MKSH @@ -199,6 +207,12 @@ config ADK_BINSH_MKSH Use mksh (a Korn Shell variant) as system shell, which is both small and powerful, so quite suited for this task. +config ADK_BINSH_HUSH + select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY + bool "hush (busybox)" + help + hush shell. + config ADK_BINSH_ASH select BUSYBOX_ASH bool "ash (busybox)" diff --git a/target/config/Config.in.target b/target/config/Config.in.target index 6887df312..d0ed59bfe 100644 --- a/target/config/Config.in.target +++ b/target/config/Config.in.target @@ -3,6 +3,7 @@ config ADK_TARGET_CFLAGS string + default "-march=isaaplus -mcpu=5208" if ADK_CPU_CF_5208 default "-mcpu=v7.10.d" if ADK_CPU_MICROBLAZE default "-m4 -ml" if ADK_CPU_SH4 && ADK_little default "-m4 -mb" if ADK_CPU_SH4 && ADK_big diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain index bda929a88..9a799d72c 100644 --- a/target/config/Config.in.toolchain +++ b/target/config/Config.in.toolchain @@ -128,6 +128,7 @@ config ADK_DEBUG_STRIP config ADK_TARGET_USE_STATIC_LIBS bool "Link applications statically by default" default n + default y if ADK_TARGET_UCLINUX select BUSYBOX_STATIC help Useful for debugging of dynamic linker problems. Be aware of the fact, that uClibc and glibc diff --git a/target/m68k/Makefile b/target/m68k/Makefile index bc48f9890..7de6f6001 100644 --- a/target/m68k/Makefile +++ b/target/m68k/Makefile @@ -7,9 +7,22 @@ include $(ADK_TOPDIR)/mk/modules.mk include $(ADK_TOPDIR)/mk/kernel-build.mk include $(ADK_TOPDIR)/mk/image.mk -KERNEL:=$(LINUX_DIR)/vmlinux.gz +KERNEL:=$(LINUX_DIR)/vmlinux +QEMU_ARGS:=${ADK_QEMU_ARGS} +QEMU_ARGS+=-M mcf5208evb -cpu m5206 # target helper text +ifeq ($(ADK_TARGET_FS),archive) +targethelp: + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)" +ifeq ($(ADK_TARGET_QEMU),y) + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "Use following command to create a QEMU Image:" + @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)" + @echo "Start qemu with following options:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img' +endif +endif ifeq ($(ADK_TARGET_FS),initramfs) targethelp: @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' @@ -23,6 +36,14 @@ ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y) @echo 'Ungrab mouse with middle mouse click' endif endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +targethelp: + @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}' +ifeq ($(ADK_TARGET_QEMU),y) + @echo "Start qemu with following command line:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)' +endif +endif kernel-strip: @@ -30,6 +51,12 @@ kernel-install: kernel-strip @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) # filesystem specific targets +ifeq ($(ADK_TARGET_FS),archive) +imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp +endif ifeq ($(ADK_TARGET_FS),initramfs) imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +imageinstall: createinitramfs targethelp +endif diff --git a/target/m68k/kernel/qemu-m68k b/target/m68k/kernel/qemu-m68k new file mode 100644 index 000000000..f9fbf383e --- /dev/null +++ b/target/m68k/kernel/qemu-m68k @@ -0,0 +1,16 @@ +CONFIG_M68K=y +CONFIG_COLDFIRE=y +CONFIG_M520x=y +# CONFIG_MMU is not set +CONFIG_CLOCK_SET=y +CONFIG_CLOCK_FREQ=166666666 +CONFIG_M5208EVB=y +CONFIG_RAMBASE=0x40000000 +CONFIG_RAMSIZE=0x2000000 +CONFIG_VECTORBASE=0x40000000 +CONFIG_KERNELBASE=0x40020000 +CONFIG_BINFMT_FLAT=y +CONFIG_SERIAL_MCF=y +CONFIG_SERIAL_MCF_BAUDRATE=115200 +CONFIG_SERIAL_MCF_CONSOLE=y + diff --git a/target/m68k/systems/qemu-m68k b/target/m68k/systems/qemu-m68k new file mode 100644 index 000000000..7e381be99 --- /dev/null +++ b/target/m68k/systems/qemu-m68k @@ -0,0 +1,11 @@ +config ADK_TARGET_SYSTEM_QEMU_M68K + bool "Qemu M68K" + select ADK_m68k + select ADK_qemu_m68k + select ADK_CPU_CF_5208 + select ADK_TARGET_QEMU + select ADK_TARGET_UCLINUX + select ADK_TARGET_KERNEL_ZIMAGE + help + Support for Qemu Emulator M68K/Coldfire without MMU. + diff --git a/target/m68k/uclibc-ng.config b/target/m68k/uclibc-ng.config index 6a965bd2f..469da7217 100644 --- a/target/m68k/uclibc-ng.config +++ b/target/m68k/uclibc-ng.config @@ -34,9 +34,9 @@ ARCH_BIG_ENDIAN=y # Using Big Endian # ARCH_HAS_MMU=y -ARCH_USE_MMU=y +# ARCH_USE_MMU is not set UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y +# UCLIBC_HAS_FPU is not set DO_C99_MATH=y DO_XSI_MATH=y UCLIBC_HAS_FENV=y diff --git a/target/m68k/uclibc.config b/target/m68k/uclibc.config new file mode 100644 index 000000000..c0e0dbe33 --- /dev/null +++ b/target/m68k/uclibc.config @@ -0,0 +1,222 @@ +# +# Automatically generated file; DO NOT EDIT. +# uClibc-ng 1.0.0 C Library Configuration +# +# TARGET_alpha is not set +# TARGET_arc is not set +# TARGET_arm is not set +# TARGET_bfin is not set +# TARGET_i386 is not set +TARGET_m68k=y +# TARGET_metag is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sparc is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="m68k" +FORCE_OPTIONS_FOR_ARCH=y +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_HAS_DEPRECATED_SYSCALLS=y +ARCH_BIG_ENDIAN=y + +# +# Using Big Endian +# +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +DO_XSI_MATH=y +UCLIBC_HAS_FENV=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +DOPIC=y +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +LDSO_CACHE_SUPPORT=y +LDSO_PRELOAD_ENV_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +LDSO_BASE_FILENAME="ld.so" +# LDSO_STANDALONE_SUPPORT is not set +# LDSO_PRELINK_SUPPORT is not set +UCLIBC_STATIC_LDCONFIG=y +LDSO_RUNPATH=y +LDSO_SAFE_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +# LDSO_NO_CLEANUP is not set +# LDSO_GNU_HASH_SUPPORT is not set +HAS_NO_THREADS=y +# UCLIBC_HAS_THREADS_NATIVE is not set +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_HAS_OBSTACK=y +UCLIBC_DYNAMIC_ATEXIT=y +UCLIBC_SUSV2_LEGACY=y +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +UCLIBC_SV4_DEPRECATED=y +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +# UCLIBC_HAS_PROFILING is not set +UCLIBC_HAS_CRYPT_IMPL=y +# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set +# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +UCLIBC_HAS_IPV6=y +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +UCLIBC_HAS_BSD_RES_CLOSE=y +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLVER_SUPPORT=y +UCLIBC_HAS_LIBRESOLV_STUB=y +UCLIBC_HAS_LIBNSL_STUB=y + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +UCLIBC_HAS_GNU_GETSUBOPT=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_FNMATCH=y +UCLIBC_HAS_WORDEXP=y +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +UCLIBC_HAS_FTS=y +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y +UCLIBC_HAS_UTMPX=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +UCLIBC_HAS_ARC4RANDOM=y +# ARC4RANDOM_USES_NODEV is not set +# UCLIBC_HAS_SSP is not set +UCLIBC_BUILD_RELRO=y +# UCLIBC_BUILD_NOW is not set +UCLIBC_BUILD_NOEXECSTACK=y + +# +# Development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DOSTRIP is not set +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +EXTRA_WARNINGS=y +# DOMULTI is not set diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index abc938ffb..7dcf79e0a 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -55,7 +55,7 @@ else GCC_FINAL_CONFOPTS+= --enable-shared='libstdc++,libgcc' endif -ifeq ($(ADK_LINUX_SH)$(ADK_LINUX_X86_64)$(ADK_LINUX_X86),) +ifeq ($(ADK_LINUX_M68K)$(ADK_LINUX_SH)$(ADK_LINUX_X86_64)$(ADK_LINUX_X86),) GCC_FINAL_CONFOPTS+= --disable-biarch --disable-multilib endif @@ -136,6 +136,10 @@ ifeq ($(ADK_CPU_SPARC_V9),y) GCC_CONFOPTS+= --with-cpu=ultrasparc endif +ifeq ($(ADK_CPU_CF_5208),y) +GCC_CONFOPTS+= --enable-multilib --with-arch=cf --with-cpu=5208 +endif + ifneq ($(ADK_TARGET_MIPS_ABI),) GCC_CONFOPTS+= --with-abi=${ADK_TARGET_MIPS_ABI} endif @@ -144,7 +148,11 @@ ifeq (${ADK_MAKE_PARALLEL},y) GCC_MAKEOPTS+= -j${ADK_MAKE_JOBS} endif +ifeq ($(ADK_TARGET_UCLINUX),y) +LANGUAGES:=c +else LANGUAGES:=c,c++ +endif include ${ADK_TOPDIR}/mk/buildhlp.mk @@ -177,7 +185,6 @@ endif $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ --enable-languages=c \ - --disable-multilib \ --disable-libssp \ --disable-shared \ --without-headers diff --git a/toolchain/gcc/patches/4.8.3/disable-atomics.m68k b/toolchain/gcc/patches/4.8.3/disable-atomics.m68k new file mode 100644 index 000000000..4ab553218 --- /dev/null +++ b/toolchain/gcc/patches/4.8.3/disable-atomics.m68k @@ -0,0 +1,12 @@ +diff -Nur gcc-4.8.3.orig/libgcc/config.host gcc-4.8.3/libgcc/config.host +--- gcc-4.8.3.orig/libgcc/config.host 2014-03-20 17:12:30.000000000 +0100 ++++ gcc-4.8.3/libgcc/config.host 2014-07-26 13:15:06.359463368 +0200 +@@ -689,7 +689,7 @@ + m68k*-*-openbsd*) + ;; + m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc +- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" ++ tmake_file="$tmake_file m68k/t-floatlib" + md_unwind_header=m68k/linux-unwind.h + ;; + m68k-*-linux*) # Motorola m68k's running GNU/Linux |