diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index 0fcd64c2d6..d2bd62c63b 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -32,7 +32,7 @@ endif UCLIBC_CAT:=$(BZCAT) -UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ +UCLIBC_TARGET_ARCH:=$(shell $(SHELL) -c "echo $(ARCH) | sed -e s'/-.*//' \ -e 's/i.86/i386/' \ -e 's/sparc.*/sparc/' \ -e 's/arm.*/arm/g' \ @@ -44,14 +44,14 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ -e 's/mipsel.*/mips/' \ -e 's/cris.*/cris/' \ -e 's/nios2.*/nios2/' \ -) +") # just handle the ones that can be big or little -UCLIBC_TARGET_ENDIAN:=$(shell echo $(ARCH) | sed \ +UCLIBC_TARGET_ENDIAN:=$(shell $(SHELL) -c "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:= @@ -122,6 +122,14 @@ ifneq ($(UCLIBC_TARGET_ENDIAN),) -e '/^# ARCH_WANTS_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN /{s,# ,,;s, is not set,=n,g}' \ $(UCLIBC_DIR)/.config endif +ifneq ($(UCLIBC_TARGET_ENDIAN),) + # The above doesn't work for me, so redo + $(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \ + -e 's/.*\(ARCH_WANTS_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \ + -e 's/.*\(ARCH_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \ + -e 's/.*\(ARCH_WANTS_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \ + $(UCLIBC_DIR)/.config +endif ifeq ($(BR2_LARGEFILE),y) $(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.config else