diff options
-rw-r--r-- | toolchain/uClibc/uClibc.config | 17 | ||||
-rw-r--r-- | toolchain/uClibc/uclibc.mk | 52 |
2 files changed, 54 insertions, 15 deletions
diff --git a/toolchain/uClibc/uClibc.config b/toolchain/uClibc/uClibc.config index d72fcb3ab..0a2ba841c 100644 --- a/toolchain/uClibc/uClibc.config +++ b/toolchain/uClibc/uClibc.config @@ -8,6 +8,7 @@ # 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_m68k is not set @@ -27,6 +28,8 @@ # HAVE_ELF=y TARGET_ARCH="none" +# ARCH_LITTLE_ENDIAN is not set +# ARCH_BIG_ENDIAN is not set # ARCH_HAS_NO_MMU is not set UCLIBC_HAS_FLOATS=y HAS_FPU=y @@ -53,9 +56,10 @@ LDSO_RUNPATH=n # DL_FINI_CRT_COMPAT is not set UCLIBC_CTOR_DTOR=y # HAS_NO_THREADS is not set -UCLIBC_HAS_THREADS=y -PTHREADS_DEBUG_SUPPORT=y -LINUXTHREADS_OLD=y +# UCLIBC_HAS_THREADS is not set +# PTHREADS_DEBUG_SUPPORT is not set +# UCLIBC_HAS_THREADS_NATIVE is not set +# LINUXTHREADS_OLD is not set UCLIBC_HAS_LFS=y # UCLIBC_STATIC_LDCONFIG is not set # MALLOC is not set @@ -125,6 +129,7 @@ UCLIBC_HAS_GNU_GETOPT=y # Big and Tall # UCLIBC_HAS_REGEX=y +UCLIBC_HAS_REGEX_OLD=y # UCLIBC_HAS_WORDEXP is not set UCLIBC_HAS_FTW=y UCLIBC_HAS_GLOB=y @@ -140,6 +145,11 @@ DEVEL_PREFIX="/usr/" # uClibc security related options # # UCLIBC_SECURITY is not set +UCLIBC_BUILD_PIE=n +UCLIBC_HAS_SSP=n +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y # # uClibc development/debugging options @@ -151,4 +161,5 @@ CROSS_COMPILER_PREFIX="" # SUPPORT_LD_DEBUG is not set # SUPPORT_LD_DEBUG_EARLY is not set WARNINGS="-Wall" +# DOMULTI is not set # UCLIBC_MJN3_ONLY is not set diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index eb0ceff12..f129ce7a2 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -37,32 +37,51 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ -e 's/mipsel.*/mips/' \ -e 's/cris.*/cris/' \ ) - +# just handle the ones that can be big or little +UCLIBC_TARGET_ENDIAN:=$(shell echo $(ARCH) | sed \ + -e 's/armeb/BIG/' \ + -e 's/arm/LITTLE/' \ + -e 's/mipsel/LITTLE/' \ + -e 's/mips/BIG/' \ +) +ifneq ($(UCLIBC_TARGET_ENDIAN),LITTLE) +ifneq ($(UCLIBC_TARGET_ENDIAN),BIG) +UCLIBC_TARGET_ENDIAN:= +endif +endif +ifeq ($(UCLIBC_TARGET_ENDIAN),LITTLE) +UCLIBC_NOT_TARGET_ENDIAN:=BIG +else +UCLIBC_NOT_TARGET_ENDIAN:=LITTLE +endif $(DL_DIR)/$(UCLIBC_SOURCE): mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE) +uclibc-unpacked: $(UCLIBC_DIR)/.unpacked $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) mkdir -p $(TOOL_BUILD_DIR) bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - toolchain/patch-kernel.sh $(UCLIBC_DIR) toolchain/uClibc/ \*.patch touch $(UCLIBC_DIR)/.unpacked +uclibc-configured: $(UCLIBC_DIR)/.configured $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked cp $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.config - $(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' $(UCLIBC_DIR)/.config - $(SED) 's,^.*TARGET_$(UCLIBC_TARGET_ARCH).*,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \ - $(UCLIBC_DIR)/.config - $(SED) 's,^TARGET_ARCH.*,TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' $(UCLIBC_DIR)/.config - $(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ + $(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \ + -e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \ + -e 's,^TARGET_ARCH="none",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \ + -e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ + -e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \ + -e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \ + -e 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \ $(UCLIBC_DIR)/.config - $(SED) 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \ - $(UCLIBC_DIR)/.config - $(SED) 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \ - $(UCLIBC_DIR)/.config - $(SED) 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \ +ifneq ($(UCLIBC_TARGET_ENDIAN),) + $(SED) '/^# ARCH_$(UCLIBC_TARGET_ENDIAN)_ENDIAN /s,# ,,;s, is not set,=y,g' \ + -e '/^# ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN /s,# ,,;s, is not set,=n,' \ $(UCLIBC_DIR)/.config +endif ifeq ($(BR2_LARGEFILE),y) $(SED) 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.config else @@ -72,9 +91,18 @@ endif ifeq ($(BR2_SOFT_FLOAT),y) $(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.config endif +ifneq ($(BR2_PTHREADS_NONE),y) + $(SED) 's,# UCLIBC_HAS_THREADS is not set,UCLIBC_HAS_THREADS=y,g' $(UCLIBC_DIR)/.config + $(SED) 's,# PTHREADS_DEBUG_SUPPORT is not set,PTHREADS_DEBUG_SUPPORT=y,g' $(UCLIBC_DIR)/.config +endif +ifeq ($(BR2_PTHREADS),y) + $(SED) 's,# LINUXTHREADS is not set,LINUXTHREADS=y,g' $(UCLIBC_DIR)/.config +endif +ifeq ($(BR2_PTHREADS_OLD),y) + $(SED) 's,# LINUXTHREADS_OLD is not set,LINUXTHREADS_OLD=y,g' $(UCLIBC_DIR)/.config +endif ifeq ($(BR2_PTHREADS_NATIVE),y) $(SED) 's,# UCLIBC_HAS_THREADS_NATIVE is not set,UCLIBC_HAS_THREADS_NATIVE=y,g' $(UCLIBC_DIR)/.config - $(SED) 's,# UCLIBC_HAS_THREADS is not set,UCLIBC_HAS_THREADS=y,g' $(UCLIBC_DIR)/.config endif mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/include mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/lib |