diff options
26 files changed, 4135 insertions, 53 deletions
diff --git a/mk/vars.mk b/mk/vars.mk index 46a95c533..d976add95 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -134,7 +134,11 @@ endif ifeq ($(ADK_LINUX_MICROBLAZE),y) TARGET_CFLAGS+= -mxl-barrel-shift -TARGET_CXX_FLAGS+= -mxl-barrel-shift +TARGET_CXXFLAGS+= -mxl-barrel-shift +endif +ifeq ($(ADK_LINUX_XTENSA),y) +TARGET_CFLAGS+= -mlongcalls -mtext-section-literals +TARGET_CXXFLAGS+= -mlongcalls -mtext-section-literals endif ifneq ($(ADK_DEBUG),) diff --git a/package/boost/Makefile b/package/boost/Makefile index 96945fc91..4ce0f3703 100644 --- a/package/boost/Makefile +++ b/package/boost/Makefile @@ -14,7 +14,7 @@ PKG_URL:= http://www.boost.org/ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/} PKG_OPTS:= dev -PKG_ARCH_DEPENDS:= !m68k +PKG_ARCH_DEPENDS:= !m68k !xtensa DISTFILES:= boost_1_55_0.tar.gz WRKDIST= ${WRKDIR}/${PKG_NAME}_1_55_0 diff --git a/package/mkimage/Makefile b/package/mkimage/Makefile index 3c3dd30f7..8e6fa6bdd 100644 --- a/package/mkimage/Makefile +++ b/package/mkimage/Makefile @@ -22,7 +22,8 @@ $(eval $(call HOST_template,MKIMAGE,mkimage,$(PKG_VERSION)-${PKG_RELEASE})) HOST_STYLE:= manual host-build: - $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o ${WRKBUILD}/mkimage ${WRKBUILD}/mkimage.c ${WRKBUILD}/crc32.c + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o ${WRKBUILD}/mkimage \ + ${WRKBUILD}/mkimage.c ${WRKBUILD}/crc32.c mkimage-hostinstall: ${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/bin diff --git a/package/mkimage/src/image.h b/package/mkimage/src/image.h index cb62cde5b..d64d81ebc 100644 --- a/package/mkimage/src/image.h +++ b/package/mkimage/src/image.h @@ -77,6 +77,7 @@ #define IH_CPU_NIOS2 15 /* Nios-II */ #define IH_CPU_BLACKFIN 16 /* Blackfin */ #define IH_CPU_AVR32 17 /* AVR32 */ +#define IH_CPU_XTENSA 18 /* XTENSA */ /* * Image Types diff --git a/package/mkimage/src/mkimage.c b/package/mkimage/src/mkimage.c index 7c0432bad..23d4a3fb2 100644 --- a/package/mkimage/src/mkimage.c +++ b/package/mkimage/src/mkimage.c @@ -98,6 +98,7 @@ table_entry_t arch_name[] = { { IH_CPU_SPARC64, "sparc64", "SPARC 64 Bit", }, { IH_CPU_BLACKFIN, "blackfin", "Blackfin", }, { IH_CPU_AVR32, "avr32", "AVR32", }, + { IH_CPU_XTENSA, "xtensa", "XTENSA", }, { -1, "", "", }, }; diff --git a/package/openssl/Makefile b/package/openssl/Makefile index 720363a5f..f82b2cbb1 100644 --- a/package/openssl/Makefile +++ b/package/openssl/Makefile @@ -46,6 +46,9 @@ endif ifeq ($(ADK_LINUX_MICROBLAZE),y) TARGET_CFLAGS:= $(subst g3,g,$(TARGET_CFLAGS)) endif +ifeq ($(ADK_LINUX_XTENSA),y) +TARGET_CFLAGS:= $(subst g3,g,$(TARGET_CFLAGS)) +endif ifeq ($(ADK_LINUX_X86_64),y) CONFIG:= linux-embedded-x86_64 diff --git a/target/arch.lst b/target/arch.lst index e55da90c9..1166d9621 100644 --- a/target/arch.lst +++ b/target/arch.lst @@ -11,3 +11,4 @@ sparc64 sh x86 x86_64 +xtensa diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu index 56678b639..f757eb080 100644 --- a/target/config/Config.in.cpu +++ b/target/config/Config.in.cpu @@ -130,4 +130,4 @@ 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 "xtensa" if ADK_LINUX_XTENSA diff --git a/target/config/Config.in.kernel b/target/config/Config.in.kernel index e767ba2c5..b88482486 100644 --- a/target/config/Config.in.kernel +++ b/target/config/Config.in.kernel @@ -47,6 +47,7 @@ config ADK_TARGET_KERNEL_MINICONFIG default "qemu-sparc64" if ADK_TARGET_SYSTEM_QEMU_SPARC64 default "qemu-x86" if ADK_TARGET_SYSTEM_QEMU_X86 default "qemu-x86_64" if ADK_TARGET_SYSTEM_QEMU_X86_64 + default "qemu-xtensa" if ADK_TARGET_SYSTEM_QEMU_XTENSA 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 9b31d1e7b..f62c94db5 100644 --- a/target/config/Config.in.libc.choice +++ b/target/config/Config.in.libc.choice @@ -9,6 +9,7 @@ config ADK_TARGET_LIB_GLIBC prompt "GNU C library" boolean select ADK_glibc + depends on !ADK_LINUX_XTENSA help http://www.gnu.org/libc diff --git a/target/config/Config.in.qemuopts b/target/config/Config.in.qemuopts index 0091c7c7d..f3f30bbb2 100644 --- a/target/config/Config.in.qemuopts +++ b/target/config/Config.in.qemuopts @@ -29,7 +29,7 @@ endchoice choice prompt "Qemu Emulation with storage device" -depends on ADK_TARGET_QEMU +depends on ADK_TARGET_QEMU && !ADK_TARGET_SYSTEM_QEMU_XTENSA default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_ARCHIVE default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_SQUASHFS default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_JFFS2 diff --git a/target/config/Config.in.target b/target/config/Config.in.target index 6994dc3cc..188fe6043 100644 --- a/target/config/Config.in.target +++ b/target/config/Config.in.target @@ -58,6 +58,7 @@ config ADK_TARGET_CMDLINE default "console=ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_SPARC64 default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64 + default "console=ttyS0,38400" if ADK_TARGET_SYSTEM_QEMU_XTENSA default "" choice @@ -76,9 +77,9 @@ config ADK_TARGET_ROOTFS_INITRAMFS ADK_LINUX_PPC || \ ADK_LINUX_SPARC || \ ADK_LINUX_X86 || \ - ADK_LINUX_X86_64 || \ - ADK_LINUX_NATIVE + ADK_LINUX_X86_64 depends on !ADK_TARGET_VBOX + depends on !ADK_TARGET_SYSTEM_QEMU_XTENSA depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532 select ADK_KERNEL_BLK_DEV_INITRD @@ -183,6 +184,7 @@ config ADK_TARGET_ROOTFS_ISO config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE boolean "Archive usable for initramfs creation" depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532 + depends on !ADK_TARGET_SYSTEM_QEMU_XTENSA help Use this option if your planning to create a initramfs, useful for adk-test-framework. diff --git a/target/xtensa/Config.in b/target/xtensa/Config.in new file mode 100644 index 000000000..511328716 --- /dev/null +++ b/target/xtensa/Config.in @@ -0,0 +1,9 @@ +choice +depends on ADK_LINUX_XTENSA && !ADK_CHOOSE_TARGET_ARCH +prompt "Target system" + +config ADK_CHOOSE_TARGET_SYSTEM_XTENSA + boolean "Choose target system" + +source "target/xtensa/Config.in.systems" +endchoice diff --git a/target/xtensa/Makefile b/target/xtensa/Makefile new file mode 100644 index 000000000..9aecd3403 --- /dev/null +++ b/target/xtensa/Makefile @@ -0,0 +1,69 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk +include $(TOPDIR)/mk/kernel.mk +include $(TOPDIR)/mk/modules.mk +include $(TOPDIR)/mk/kernel-build.mk +include $(TOPDIR)/mk/image.mk + +KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/Image.elf + +QEMU_ARGS:=-M lx60 -cpu dc232b -monitor null +QEMU_ARGS+=${ADK_QEMU_ARGS} + +# 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}' + @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}' +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) -initrd ${FW_DIR}/${INITRAMFS}' +endif +endif +ifeq ($(ADK_TARGET_FS),initramfsarchive) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)" +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 + +# image creation and kernel install +kernel-strip: + $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL) + +kernel-install: kernel-strip + @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL} + +# filesystem specific targets +ifeq ($(ADK_TARGET_FS),archive) +imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp +endif +ifeq ($(ADK_TARGET_FS),initramfs) +imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp +endif +ifeq ($(ADK_TARGET_FS),initramfsarchive) +imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp +endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +imageinstall: createinitramfs targethelp +endif diff --git a/target/xtensa/kernel/qemu-xtensa b/target/xtensa/kernel/qemu-xtensa new file mode 100644 index 000000000..a34ea1db0 --- /dev/null +++ b/target/xtensa/kernel/qemu-xtensa @@ -0,0 +1,8 @@ +CONFIG_XTENSA=y +CONFIG_XTENSA_VARIANT_DC232B=y +CONFIG_XTENSA_UNALIGNED_USER=y +CONFIG_MATH_EMULATION=y +CONFIG_XTENSA_PLATFORM_XTFPGA=y +CONFIG_SERIAL_CONSOLE=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y diff --git a/target/xtensa/overlay/xtensa_dc232b.tar b/target/xtensa/overlay/xtensa_dc232b.tar Binary files differnew file mode 100644 index 000000000..77080e07b --- /dev/null +++ b/target/xtensa/overlay/xtensa_dc232b.tar diff --git a/target/xtensa/systems/qemu-xtensa b/target/xtensa/systems/qemu-xtensa new file mode 100644 index 000000000..b40750069 --- /dev/null +++ b/target/xtensa/systems/qemu-xtensa @@ -0,0 +1,10 @@ +config ADK_TARGET_SYSTEM_QEMU_XTENSA + bool "Qemu Emulator" + select ADK_xtensa + select ADK_qemu_xtensa + select ADK_TARGET_QEMU + select ADK_TARGET_KERNEL_ZIMAGE + select ADK_HOST_NEED_MKIMAGE + help + Support for Qemu Emulator XTENSA architecture. + diff --git a/target/xtensa/systems/toolchain-xtensa b/target/xtensa/systems/toolchain-xtensa new file mode 100644 index 000000000..725e5d23f --- /dev/null +++ b/target/xtensa/systems/toolchain-xtensa @@ -0,0 +1,9 @@ +config ADK_TARGET_SYSTEM_TOOLCHAIN_XTENSA + bool "Toolchain only" + select ADK_xtensa + select ADK_toolchain_xtensa + select ADK_TARGET_TOOLCHAIN + select ADK_TARGET_PACKAGE_TXZ + help + XTENSA toolchain. + diff --git a/target/xtensa/target.mk b/target/xtensa/target.mk new file mode 100644 index 000000000..709b5aa5e --- /dev/null +++ b/target/xtensa/target.mk @@ -0,0 +1,4 @@ +include $(TOPDIR)/mk/kernel-ver.mk +ARCH:= xtensa +CPU_ARCH:= $(ADK_TARGET_CPU_ARCH) +TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS) diff --git a/target/xtensa/uclibc.config b/target/xtensa/uclibc.config new file mode 100644 index 000000000..ff0229e01 --- /dev/null +++ b/target/xtensa/uclibc.config @@ -0,0 +1,243 @@ +# +# Automatically generated file; DO NOT EDIT. +# uClibc 0.9.34-git C Library Configuration +# +# TARGET_alpha is not set +# TARGET_arc is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_c6x is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_metag is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set +TARGET_xtensa=y + +# +# Target Architecture Features and Options +# +TARGET_ARCH="xtensa" +FORCE_OPTIONS_FOR_ARCH=y +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_HAS_DEPRECATED_SYSCALLS=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +# DO_XSI_MATH is not set +UCLIBC_HAS_FENV=yes +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 is not set +# 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 is not set +LDSO_RUNPATH=y +LDSO_SAFE_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +LDSO_NO_CLEANUP=y +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +# LINUXTHREADS_OLD is not set +# LINUXTHREADS_NEW is not set +UCLIBC_HAS_THREADS_NATIVE=yes +UCLIBC_HAS_THREADS=y +# PTHREADS_DEBUG_SUPPORT 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 +COMPAT_ATEXIT=y +# UCLIBC_SUSV2_LEGACY is not set +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_MODULE_26=y +# UCLIBC_LINUX_MODULE_24 is not set +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +# UCLIBC_HAS_XATTR is not set +# 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_HAS_RPC=y +UCLIBC_HAS_FULL_RPC=y +UCLIBC_HAS_REENTRANT_RPC=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_REGEX_OLD is not set +UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set +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=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# Development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +DODEBUG=y +# 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 +# UCLIBC_MJN3_ONLY is not set diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index 80565bc17..9edf001cd 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -40,6 +40,10 @@ endif $(WRKBUILD)/.headers: $(WRKBUILD)/.configured: +ifeq ($(ADK_LINUX_XTENSA),y) + tar xf $(TOPDIR)/target/xtensa/overlay/xtensa_dc232b.tar \ + --strip-components=1 -C $(WRKSRC) binutils +endif (cd $(WRKBUILD); \ $(WRKBUILD)/configure \ --prefix=$(TOOLCHAIN_DIR)/usr \ diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index f6033d208..5c1f14c0b 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -10,6 +10,10 @@ ifeq ($(ADK_TARGET_LIB_MUSL),y) TARGET_CXXFLAGS:= $(filter-out -fstack-protector-all,$(TARGET_CXXFLAGS)) endif +ifneq ($(ADK_LINUX_XTENSA),y) +GCC_FINAL_CONFOPTS+= --enable-cxx-flags='$(TARGET_CXXFLAGS)' +endif + GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \ --with-bugurl="http://www.openadk.org/" \ --build=$(GNU_HOST_NAME) \ @@ -131,6 +135,10 @@ GCC_BUILD_DIR_INITIAL:= $(WRKBUILD)-initial GCC_BUILD_DIR_FINAL:= $(WRKBUILD)-final $(GCC_BUILD_DIR_MINIMAL)/.configured: +ifeq ($(ADK_LINUX_XTENSA),y) + tar xf $(TOPDIR)/target/xtensa/overlay/xtensa_dc232b.tar \ + --strip-components=1 -C $(WRKSRC) gcc +endif mkdir -p $(GCC_BUILD_DIR_MINIMAL) # these symlinks are very important, do not remove rm -rf $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/sys-include @@ -198,8 +206,7 @@ $(GCC_BUILD_DIR_FINAL)/.configured: --enable-languages=$(LANGUAGES) \ --with-build-sysroot='$${prefix}/${STAGING_HOST2TARGET}' \ --with-sysroot='$${prefix}/${STAGING_HOST2TARGET}' \ - --enable-shared='libstdc++' \ - --enable-cxx-flags='$(TARGET_CXXFLAGS)' + --enable-shared='libstdc++' touch $@ $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured diff --git a/toolchain/gcc/patches/4.8.3/musl-stubs.patch b/toolchain/gcc/patches/4.8.3/musl-stubs.patch index 35050fd9c..779bcd3fb 100644 --- a/toolchain/gcc/patches/4.8.3/musl-stubs.patch +++ b/toolchain/gcc/patches/4.8.3/musl-stubs.patch @@ -1,6 +1,6 @@ -diff -Nur gcc-4.8.2.orig/gcc/config/m68k/linux.h gcc-4.8.2/gcc/config/m68k/linux.h ---- gcc-4.8.2.orig/gcc/config/m68k/linux.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2/gcc/config/m68k/linux.h 2014-02-24 10:19:00.214399704 +0100 +diff -Nur gcc-4.8.3.orig/gcc/config/m68k/linux.h gcc-4.8.3/gcc/config/m68k/linux.h +--- gcc-4.8.3.orig/gcc/config/m68k/linux.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.3/gcc/config/m68k/linux.h 2014-06-01 08:57:42.139913658 +0200 @@ -72,6 +72,7 @@ done. */ @@ -9,9 +9,9 @@ diff -Nur gcc-4.8.2.orig/gcc/config/m68k/linux.h gcc-4.8.2/gcc/config/m68k/linux #undef LINK_SPEC #define LINK_SPEC "-m m68kelf %{shared} \ -diff -Nur gcc-4.8.2.orig/gcc/config/mips/linux64.h gcc-4.8.2/gcc/config/mips/linux64.h ---- gcc-4.8.2.orig/gcc/config/mips/linux64.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2/gcc/config/mips/linux64.h 2014-02-24 10:19:47.238583895 +0100 +diff -Nur gcc-4.8.3.orig/gcc/config/mips/linux64.h gcc-4.8.3/gcc/config/mips/linux64.h +--- gcc-4.8.3.orig/gcc/config/mips/linux64.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.3/gcc/config/mips/linux64.h 2014-06-01 08:57:42.139913658 +0200 @@ -27,6 +27,9 @@ #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1" #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0" @@ -23,9 +23,9 @@ diff -Nur gcc-4.8.2.orig/gcc/config/mips/linux64.h gcc-4.8.2/gcc/config/mips/lin CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \ - BIONIC_DYNAMIC_LINKERN32) + BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32) -diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux64.h gcc-4.8.2/gcc/config/sparc/linux64.h ---- gcc-4.8.2.orig/gcc/config/sparc/linux64.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2/gcc/config/sparc/linux64.h 2014-02-24 10:20:49.414827006 +0100 +diff -Nur gcc-4.8.3.orig/gcc/config/sparc/linux64.h gcc-4.8.3/gcc/config/sparc/linux64.h +--- gcc-4.8.3.orig/gcc/config/sparc/linux64.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.3/gcc/config/sparc/linux64.h 2014-06-01 08:57:42.139913658 +0200 @@ -94,6 +94,9 @@ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" @@ -36,9 +36,9 @@ diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux64.h gcc-4.8.2/gcc/config/sparc/l #ifdef SPARC_BI_ARCH -diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux.h gcc-4.8.2/gcc/config/sparc/linux.h ---- gcc-4.8.2.orig/gcc/config/sparc/linux.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.2/gcc/config/sparc/linux.h 2014-02-24 10:21:14.342924339 +0100 +diff -Nur gcc-4.8.3.orig/gcc/config/sparc/linux.h gcc-4.8.3/gcc/config/sparc/linux.h +--- gcc-4.8.3.orig/gcc/config/sparc/linux.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.3/gcc/config/sparc/linux.h 2014-06-01 08:57:42.139913658 +0200 @@ -84,6 +84,7 @@ done. */ @@ -47,3 +47,14 @@ diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux.h gcc-4.8.2/gcc/config/sparc/lin #undef LINK_SPEC #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ +diff -Nur gcc-4.8.3.orig/gcc/config/xtensa/linux.h gcc-4.8.3/gcc/config/xtensa/linux.h +--- gcc-4.8.3.orig/gcc/config/xtensa/linux.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.3/gcc/config/xtensa/linux.h 2014-06-01 08:58:39.740070402 +0200 +@@ -45,6 +45,7 @@ + %{mno-longcalls:--no-longcalls}" + + #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-xtensa.so.1" + + #undef LINK_SPEC + #define LINK_SPEC \ diff --git a/toolchain/uclibc/Makefile b/toolchain/uclibc/Makefile index 7184d6220..7346b965e 100644 --- a/toolchain/uclibc/Makefile +++ b/toolchain/uclibc/Makefile @@ -9,6 +9,7 @@ include Makefile.inc include ${TOPDIR}/mk/buildhlp.mk TARGET_CFLAGS:=$(filter-out -flto,$(TARGET_CFLAGS)) +TARGET_CFLAGS:=$(filter-out -mtext-section-literals,$(TARGET_CFLAGS)) ifeq (${ADK_MAKE_PARALLEL},y) UCLIBC_MAKEOPTS+= -j${ADK_MAKE_JOBS} diff --git a/toolchain/uclibc/patches/uclibc-git-20140602.patch b/toolchain/uclibc/patches/uclibc-git-20140613.patch index 28b5f0c82..725bf8cda 100644 --- a/toolchain/uclibc/patches/uclibc-git-20140602.patch +++ b/toolchain/uclibc/patches/uclibc-git-20140613.patch @@ -33284,8 +33284,16 @@ diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/aeabi_read_tp.S uClibc-git/ldso/ldso/arm diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h uClibc-git/ldso/ldso/arm/dl-startup.h --- uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h 2012-05-15 09:20:09.000000000 +0200 -+++ uClibc-git/ldso/ldso/arm/dl-startup.h 2014-06-02 17:40:33.926711497 +0200 -@@ -14,6 +14,7 @@ ++++ uClibc-git/ldso/ldso/arm/dl-startup.h 2014-06-13 18:29:20.810293291 +0200 +@@ -7,13 +7,14 @@ + */ + + #include <features.h> +-#include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + #if !defined(__thumb__) + __asm__( " .text\n" " .globl _start\n" " .type _start,%function\n" @@ -33325,8 +33333,16 @@ diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c uClibc-git/ldso/ldso/arm/elf { diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/resolve.S uClibc-git/ldso/ldso/arm/resolve.S --- uClibc-0.9.33.2/ldso/ldso/arm/resolve.S 2012-05-15 09:20:09.000000000 +0200 -+++ uClibc-git/ldso/ldso/arm/resolve.S 2014-06-02 17:40:33.926711497 +0200 -@@ -101,7 +101,7 @@ ++++ uClibc-git/ldso/ldso/arm/resolve.S 2014-06-13 18:29:20.834293397 +0200 +@@ -92,6 +92,7 @@ + + #include <sys/syscall.h> + #include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + #include <features.h> + +@@ -101,7 +102,7 @@ .text .align 4 @ 16 byte boundary and there are 32 bytes below (arm case) @@ -47267,10 +47283,32 @@ diff -Nur uClibc-0.9.33.2/libc/string/arc/strlen.S uClibc-git/libc/string/arc/st + sub_s.ne r1,r1,r1 +END(strlen) +libc_hidden_def(strlen) +diff -Nur uClibc-0.9.33.2/libc/string/arm/memcmp.S uClibc-git/libc/string/arm/memcmp.S +--- uClibc-0.9.33.2/libc/string/arm/memcmp.S 2012-05-15 09:20:09.000000000 +0200 ++++ uClibc-git/libc/string/arm/memcmp.S 2014-06-13 18:29:20.834293397 +0200 +@@ -31,6 +31,7 @@ + + #include <features.h> + #include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + .text + .global memcmp +diff -Nur uClibc-0.9.33.2/libc/string/arm/_memcpy.S uClibc-git/libc/string/arm/_memcpy.S +--- uClibc-0.9.33.2/libc/string/arm/_memcpy.S 2012-05-15 09:20:09.000000000 +0200 ++++ uClibc-git/libc/string/arm/_memcpy.S 2014-06-13 18:29:20.834293397 +0200 +@@ -40,6 +40,7 @@ + #include <features.h> + #include <endian.h> + #include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + #if !defined(THUMB1_ONLY) + /* diff -Nur uClibc-0.9.33.2/libc/string/arm/memset.S uClibc-git/libc/string/arm/memset.S --- uClibc-0.9.33.2/libc/string/arm/memset.S 2012-05-15 09:20:09.000000000 +0200 -+++ uClibc-git/libc/string/arm/memset.S 2014-06-02 17:40:34.182712914 +0200 -@@ -13,9 +13,8 @@ ++++ uClibc-git/libc/string/arm/memset.S 2014-06-13 18:29:20.834293397 +0200 +@@ -13,13 +13,13 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public @@ -47282,10 +47320,26 @@ diff -Nur uClibc-0.9.33.2/libc/string/arm/memset.S uClibc-git/libc/string/arm/me #include <features.h> #include <sys/syscall.h> + #include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + .text + .global memset +diff -Nur uClibc-0.9.33.2/libc/string/arm/strcmp.S uClibc-git/libc/string/arm/strcmp.S +--- uClibc-0.9.33.2/libc/string/arm/strcmp.S 2012-05-15 09:20:09.000000000 +0200 ++++ uClibc-git/libc/string/arm/strcmp.S 2014-06-13 18:29:20.838293415 +0200 +@@ -31,6 +31,7 @@ + + #include <features.h> + #include <bits/arm_asm.h> ++#include <bits/arm_bx.h> + + .text + .global strcmp diff -Nur uClibc-0.9.33.2/libc/string/arm/strlen.S uClibc-git/libc/string/arm/strlen.S --- uClibc-0.9.33.2/libc/string/arm/strlen.S 2012-05-15 09:20:09.000000000 +0200 -+++ uClibc-git/libc/string/arm/strlen.S 2014-06-02 17:40:34.182712914 +0200 -@@ -13,9 +13,8 @@ ++++ uClibc-git/libc/string/arm/strlen.S 2014-06-13 18:29:20.838293415 +0200 +@@ -13,14 +13,14 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public @@ -47297,6 +47351,12 @@ diff -Nur uClibc-0.9.33.2/libc/string/arm/strlen.S uClibc-git/libc/string/arm/st |