summaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/binutils/binutils.mk2
-rw-r--r--toolchain/gcc/Config.in2
-rw-r--r--toolchain/gcc/gcc-uclibc-4.x.mk130
-rw-r--r--toolchain/uClibc/uClibc-snapshot.config116
-rw-r--r--toolchain/uClibc/uclibc.mk15
5 files changed, 201 insertions, 64 deletions
diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk
index e44707c57..ddf9f3901 100644
--- a/toolchain/binutils/binutils.mk
+++ b/toolchain/binutils/binutils.mk
@@ -91,7 +91,7 @@ $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ld: $(BINUTILS_DIR1)/binutils/obj
# tooldir=/usr build_tooldir=/usr install
#rm -f $(STAGING_DIR)/usr/bin/{ar,as,ld,nm,objdump,ranlib,strip}
-binutils: uclibc-configured $(BINUTILS_HOST_PREREQ) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ld
+binutils: $(BINUTILS_HOST_PREREQ) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ld
binutils-source: $(DL_DIR)/$(BINUTILS_SOURCE)
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index cbdc02699..c3c699c11 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -118,7 +118,7 @@ config BR2_GCC_SHARED_LIBGCC
config BR2_GCC_ENABLE_TLS
bool "Enable compiler tls support"
default y
- depends on !BR2_GCC_VERSION_4_4_X
+ depends on BR2_PTHREADS_NATIVE
help
Enable the compiler to generate code for accessing
thread local storage variables
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index b87270f8f..d140db167 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -201,6 +201,8 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
--with-gnu-ld \
--disable-shared \
--disable-libssp \
+ --without-headers \
+ --with-newlib \
$(GCC_TLS) \
$(GCC_WITH_HOST_GMP) \
$(GCC_WITH_HOST_MPFR) \
@@ -218,7 +220,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
$(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
# gcc >= 4.3.0 have to also build all-target-libgcc
ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
- $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc all-target-libgcc
+ $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
else
$(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
endif
@@ -228,13 +230,13 @@ gcc_initial=$(GCC_BUILD_DIR1)/.installed
$(gcc_initial) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
# gcc >= 4.3.0 have to also install install-target-libgcc
ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
- PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc install-target-libgcc
+ PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
else
PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
endif
touch $(gcc_initial)
-gcc_initial: uclibc-configured binutils $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
+gcc_initial: binutils $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
gcc_initial-clean:
rm -rf $(GCC_BUILD_DIR1)
@@ -244,7 +246,77 @@ gcc_initial-dirclean:
#############################################################
#
-# second pass compiler build. Build the compiler targeting
+# build the second pass gcc compiler
+#
+#############################################################
+GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
+
+
+# The --without-headers option stopped working with gcc 3.0 and has never been
+# fixed, so we need to actually have working C library header files prior to
+# the step or libgcc will not build...
+
+$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
+ mkdir -p $(GCC_BUILD_DIR2)
+ (cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
+ $(HOST_CONFIGURE_OPTS) \
+ $(GCC_DIR)/configure $(QUIET) \
+ --prefix=$(STAGING_DIR)/usr \
+ --build=$(GNU_HOST_NAME) \
+ --host=$(GNU_HOST_NAME) \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --enable-languages=c \
+ $(BR2_CONFIGURE_DEVEL_SYSROOT) \
+ --disable-__cxa_atexit \
+ --enable-target-optspace \
+ --with-gnu-ld \
+ --enable-shared \
+ --disable-libssp \
+ $(GCC_TLS) \
+ $(GCC_WITH_HOST_GMP) \
+ $(GCC_WITH_HOST_MPFR) \
+ $(DISABLE_NLS) \
+ $(THREADS) \
+ $(MULTILIB) \
+ $(GCC_DECIMAL_FLOAT) \
+ $(SOFT_FLOAT_CONFIG_OPTION) \
+ $(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \
+ $(EXTRA_GCC_CONFIG_OPTIONS) \
+ $(EXTRA_GCC2_CONFIG_OPTIONS) \
+ $(QUIET) \
+ )
+ touch $@
+
+$(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
+ # gcc >= 4.3.0 have to also build all-target-libgcc
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+ $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc all-target-libgcc
+else
+ $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc
+endif
+ touch $@
+
+gcc_intermediate=$(GCC_BUILD_DIR2)/.installed
+$(gcc_intermediate): $(GCC_BUILD_DIR2)/.compiled
+ # gcc >= 4.3.0 have to also install install-target-libgcc
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+ PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc install-target-libgcc
+else
+ PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc
+endif
+ touch $(gcc_intermediate)
+
+gcc_intermediate: uclibc-configured $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
+
+gcc_intermediate-clean:
+ rm -rf $(GCC_BUILD_DIR2)
+
+gcc_intermediate-dirclean:
+ rm -rf $(GCC_BUILD_DIR2) $(GCC_DIR)
+
+#############################################################
+#
+# third pass compiler build. Build the compiler targeting
# the newly built shared uClibc library.
#
#############################################################
@@ -255,9 +327,9 @@ gcc_initial-dirclean:
# affect gcc-target. However, I haven't tested gcc-target yet so no
# guarantees. mjn3
-GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
-$(GCC_BUILD_DIR2)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
- mkdir -p $(GCC_BUILD_DIR2)
+GCC_BUILD_DIR3:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
+$(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
+ mkdir -p $(GCC_BUILD_DIR3)
# Important! Required for limits.h to be fixed.
ln -snf ../include/ $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include
-rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
@@ -265,7 +337,9 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
ln -snf ../../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
$(if $(BR2_ARCH_IS_64),mkdir -p $(STAGING_DIR)/lib64)
$(if $(BR2_ARCH_IS_64),ln -snf ../../lib64 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib64)
- (cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
+ #-rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
+ #ln -snf ../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
+ (cd $(GCC_BUILD_DIR3); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
$(GCC_SRC_DIR)/configure $(QUIET) \
--prefix=$(STAGING_DIR)/usr \
@@ -294,13 +368,13 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
)
touch $@
-$(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
- $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all
+$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+ $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR3) all
touch $@
-$(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled
+$(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
PATH=$(TARGET_PATH) $(MAKE) \
- -C $(GCC_BUILD_DIR2) install
+ -C $(GCC_BUILD_DIR3) install
if [ -d "$(STAGING_DIR)/lib64" ]; then \
if [ ! -e "$(STAGING_DIR)/lib" ]; then \
mkdir -p "$(STAGING_DIR)/lib"; \
@@ -335,7 +409,7 @@ endif
mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
touch $@
-$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed
+$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
# These are in /lib, so...
rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
@@ -362,36 +436,36 @@ endif
touch $@
cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
-cross_compiler gcc: uclibc-configured binutils gcc_initial \
- $(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR2)/.installed \
+cross_compiler gcc: gcc_intermediate \
+ $(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR3)/.installed \
$(STAMP_DIR)/gcc_libs_target_installed \
$(GCC_TARGETS)
gcc-source: $(DL_DIR)/$(GCC_SOURCE)
gcc-clean:
- rm -rf $(GCC_BUILD_DIR2)
+ rm -rf $(GCC_BUILD_DIR3)
for prog in cpp gcc gcc-[0-9]* protoize unprotoize gcov gccbug cc; do \
rm -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-$$prog; \
rm -f $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-$$prog; \
done
gcc-dirclean: gcc_initial-dirclean
- rm -rf $(GCC_BUILD_DIR2)
+ rm -rf $(GCC_BUILD_DIR3)
#############################################################
#
# Next build target gcc compiler
#
#############################################################
-GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
+GCC_BUILD_DIR4:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
-$(GCC_BUILD_DIR3)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ)
+$(GCC_BUILD_DIR4)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ)
mkdir -p $(GCC_BUILD_DIR3)
touch $@
-$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
- (cd $(GCC_BUILD_DIR3); rm -rf config.cache; \
+$(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
+ (cd $(GCC_BUILD_DIR4); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
CFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
@@ -423,13 +497,13 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
$(DISABLE_LARGEFILE) \
$(EXTRA_GCC_CONFIG_OPTIONS) \
$(EXTRA_TARGET_GCC_CONFIG_OPTIONS) \
- $(EXTRA_GCC3_CONFIG_OPTIONS) \
+ $(EXTRA_GCC4_CONFIG_OPTIONS) \
)
touch $@
-$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+$(GCC_BUILD_DIR4)/.compiled: $(GCC_BUILD_DIR4)/.configured
PATH=$(TARGET_PATH) \
- $(MAKE) -C $(GCC_BUILD_DIR3) all
+ $(MAKE) -C $(GCC_BUILD_DIR4) all
touch $@
GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)
@@ -439,9 +513,9 @@ else
GCC_INCLUDE_DIR:=include-fixed
endif
-$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
+$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
PATH=$(TARGET_PATH) DESTDIR=$(TARGET_DIR) \
- $(MAKE1) -C $(GCC_BUILD_DIR3) install
+ $(MAKE1) -C $(GCC_BUILD_DIR4) install
# Remove broken specs file (cross compile flag is set).
rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs
@@ -467,8 +541,8 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc
gcc_target-clean:
- rm -rf $(GCC_BUILD_DIR3)
+ rm -rf $(GCC_BUILD_DIR4)
rm -f $(TARGET_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)*
gcc_target-dirclean:
- rm -rf $(GCC_BUILD_DIR3)
+ rm -rf $(GCC_BUILD_DIR4)
diff --git a/toolchain/uClibc/uClibc-snapshot.config b/toolchain/uClibc/uClibc-snapshot.config
index cb203a039..8ee737ba9 100644
--- a/toolchain/uClibc/uClibc-snapshot.config
+++ b/toolchain/uClibc/uClibc-snapshot.config
@@ -1,5 +1,7 @@
#
# Automatically generated make config: don't edit
+# Version: 0.9.32-git
+# Fri Jul 9 22:31:59 2010
#
# TARGET_alpha is not set
# TARGET_arm is not set
@@ -26,14 +28,34 @@
# TARGET_vax is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
-TARGET_SUBARCH=""
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_CORTEX_M3 is not set
+# CONFIG_ARM_CORTEX_M1 is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+
+USE_BX=y
+
+TARGET_SUBARCH=""
#
# Target Architecture Features and Options
#
TARGET_ARCH="none"
FORCE_OPTIONS_FOR_ARCH=y
-
#
# Using ELF file format
#
@@ -41,15 +63,12 @@ FORCE_OPTIONS_FOR_ARCH=y
# ARCH_BIG_ENDIAN is not set
# ARCH_WANTS_LITTLE_ENDIAN is not set
# ARCH_WANTS_BIG_ENDIAN is not set
-
-#
-# Using Little Endian
-#
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 is not set
KERNEL_HEADERS="/usr/src/linux/include"
HAVE_DOT_CONFIG=y
@@ -59,22 +78,26 @@ HAVE_DOT_CONFIG=y
#
# HAVE_NO_PIC is not set
DOPIC=y
-# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_SHARED is not set
# ARCH_HAS_NO_LDSO is not set
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
+# LDSO_CACHE_SUPPORT is not set
+LDSO_PRELOAD_ENV_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
# UCLIBC_STATIC_LDCONFIG is not set
LDSO_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=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=y
UCLIBC_HAS_THREADS=y
# PTHREADS_DEBUG_SUPPORT is not set
-LINUXTHREADS_OLD=y
+UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
# MALLOC_SIMPLE is not set
@@ -82,17 +105,23 @@ MALLOC_STANDARD=y
MALLOC_GLIBC_COMPAT=y
UCLIBC_DYNAMIC_ATEXIT=y
# COMPAT_ATEXIT is not set
-# UCLIBC_SUSV3_LEGACY is not set
+UCLIBC_SUSV3_LEGACY=y
# UCLIBC_SUSV3_LEGACY_MACROS is not set
+# UCLIBC_SUSV4_LEGACY is not set
+# UCLIBC_HAS_STUBS is not set
UCLIBC_HAS_SHADOW=y
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
-# UNIX98PTY_ONLY is not set
+UCLIBC_HAS_PTY=y
ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+# UCLIBC_HAS_LIBUTIL is not set
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
@@ -101,30 +130,59 @@ UCLIBC_PWD_BUFFER_SIZE=256
UCLIBC_GRP_BUFFER_SIZE=256
#
-# Networking Support
+# Support various families of functions
#
+UCLIBC_LINUX_MODULE_24=y
+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=y
+UCLIBC_HAS_PROFILING=y
+UCLIBC_HAS_CRYPT_IMPL=y
+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 is not set
+UCLIBC_USE_NETLINK=y
+# UCLIBC_SUPPORT_AI_ADDRCONFIG is not set
# UCLIBC_HAS_BSD_RES_CLOSE is not set
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+# UCLIBC_HAS_LIBRESOLV_STUB is not set
+# UCLIBC_HAS_LIBNSL_STUB is not set
#
# String and Stdio Support
#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
+# UCLIBC_HAS_STRING_GENERIC_OPT is not set
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 is not set
-# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+UCLIBC_HAS_CTYPE_ENFORCED=y
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+# UCLIBC_BUILD_ALL_LOCALE is not set
+UCLIBC_BUILD_MINIMAL_LOCALE=y
+# UCLIBC_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_BUILD_MINIMAL_LOCALES="en_US"
+UCLIBC_HAS_XLOCALE=y
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-# USE_OLD_VFPRINTF is not set
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
@@ -138,8 +196,8 @@ 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_GETC_MACRO is not set
+# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
@@ -150,26 +208,27 @@ UCLIBC_HAS_ERRNO_MESSAGES=y
UCLIBC_HAS_SIGNUM_MESSAGES=y
# UCLIBC_HAS_SYS_SIGLIST is not set
UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
+# UCLIBC_HAS_GNU_GETSUBOPT is not set
#
# Big and Tall
#
UCLIBC_HAS_REGEX=y
-UCLIBC_HAS_REGEX_OLD=y
+# UCLIBC_HAS_REGEX_OLD is not set
UCLIBC_HAS_FNMATCH=y
-UCLIBC_HAS_FNMATCH_OLD=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
# UCLIBC_HAS_WORDEXP is not set
-UCLIBC_HAS_FTW=y
+# UCLIBC_HAS_NFTW is not set
UCLIBC_HAS_GLOB=y
UCLIBC_HAS_GNU_GLOB=y
#
# Library Installation Options
#
-SHARED_LIB_LOADER_PREFIX="/lib"
RUNTIME_PREFIX="/"
DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
#
# Security options
@@ -180,7 +239,7 @@ DEVEL_PREFIX="/usr/"
# UCLIBC_HAS_SSP is not set
UCLIBC_BUILD_RELRO=y
UCLIBC_BUILD_NOW=y
-# UCLIBC_BUILD_NOEXECSTACK is not set
+UCLIBC_BUILD_NOEXECSTACK=y
#
# uClibc development/debugging options
@@ -198,4 +257,3 @@ WARNINGS="-Wall"
# EXTRA_WARNINGS is not set
# DOMULTI is not set
# UCLIBC_MJN3_ONLY is not set
-
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index ce1396a97..016f32372 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -16,11 +16,12 @@ UCLIBC_VERSION:=$(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
+UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc
else
UCLIBC_SITE:=http://www.uclibc.org/downloads
+UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
endif
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
UCLIBC_PATCH_DIR:=toolchain/uClibc/
UCLIBC_SOURCE:=uClibc-$(UCLIBC_VERSION).tar.bz2
@@ -407,6 +408,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
DEVEL_PREFIX=/usr/ \
RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
HOSTCC="$(HOSTCC)" headers \
+ lib/crt1.o lib/crti.o lib/crtn.o \
$(if $(BR2_UCLIBC_VERSION_0_9_28_3),install_dev,install_headers)
# Install the kernel headers to the first stage gcc include dir
# if necessary
@@ -414,9 +416,12 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
cp -pLR $(LINUX_HEADERS_DIR)/include/* \
$(TOOLCHAIN_DIR)/uClibc_dev/usr/include/; \
fi
+ $(TARGET_CROSS)gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/libc.so
+ $(TARGET_CROSS)gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/libm.so
+ cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/
touch $@
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_initial) $(LIBFLOAT_TARGET)
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate) $(LIBFLOAT_TARGET)
$(MAKE1) -C $(UCLIBC_DIR) \
ARCH="$(UCLIBC_TARGET_ARCH)" \
PREFIX= \
@@ -501,7 +506,7 @@ UCLIBC_TARGETS+=uclibc-test
endif
endif
-uclibc: $(cross_compiler) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
+uclibc: $(gcc_intermediate) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
@@ -514,7 +519,7 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
uclibc-update: uclibc-config
cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
-uclibc-configured: kernel-headers $(UCLIBC_DIR)/.configured
+uclibc-configured: gcc_initial kernel-headers $(UCLIBC_DIR)/.configured
uclibc-configured-source: uclibc-source
@@ -540,7 +545,7 @@ $(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
$(INSTALL) $(UCLIBC_DIR)/.config $(TARGET_DIR)/root/uClibc
-uclibc-test: uclibc $(TARGET_DIR)/root/uClibc/test/unistd/errno
+uclibc-test: $(STAGING_DIR)/usr/lib/libc.a $(TARGET_DIR)/root/uClibc/test/unistd/errno
uclibc-test-source: uclibc-source