summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/vars.mk6
-rw-r--r--package/boost/Makefile2
-rw-r--r--package/mkimage/Makefile3
-rw-r--r--package/mkimage/src/image.h1
-rw-r--r--package/mkimage/src/mkimage.c1
-rw-r--r--package/openssl/Makefile3
-rw-r--r--target/arch.lst1
-rw-r--r--target/config/Config.in.cpu2
-rw-r--r--target/config/Config.in.kernel1
-rw-r--r--target/config/Config.in.libc.choice1
-rw-r--r--target/config/Config.in.qemuopts2
-rw-r--r--target/config/Config.in.target6
-rw-r--r--target/xtensa/Config.in9
-rw-r--r--target/xtensa/Makefile69
-rw-r--r--target/xtensa/kernel/qemu-xtensa8
-rw-r--r--target/xtensa/overlay/xtensa_dc232b.tarbin0 -> 747520 bytes
-rw-r--r--target/xtensa/systems/qemu-xtensa10
-rw-r--r--target/xtensa/systems/toolchain-xtensa9
-rw-r--r--target/xtensa/target.mk4
-rw-r--r--target/xtensa/uclibc.config243
-rw-r--r--toolchain/binutils/Makefile4
-rw-r--r--toolchain/gcc/Makefile11
-rw-r--r--toolchain/gcc/patches/4.8.3/musl-stubs.patch35
-rw-r--r--toolchain/uclibc/Makefile1
-rw-r--r--toolchain/uclibc/patches/uclibc-git-20140613.patch (renamed from toolchain/uclibc/patches/uclibc-git-20140602.patch)241
-rw-r--r--toolchain/uclibc/patches/xxx-xtensa-nptl.patch3515
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
new file mode 100644
index 000000000..77080e07b
--- /dev/null
+++ b/target/xtensa/overlay/xtensa_dc232b.tar
Binary files differ
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