diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in index 8d16e8c2f5..90aae907ba 100644 --- a/package/uclibc/Config.in +++ b/package/uclibc/Config.in @@ -185,7 +185,7 @@ config BR2_UCLIBC_ARM_TYPE config BR2_UCLIBC_ARM_BX bool depends on BR2_UCLIBC_TARGET_ARCH = "arm" - default y if !BR2_fa265 && !BR2_strongarm + default y if (BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2) config BR2_UCLIBC_MIPS_ABI string diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index d5ea7a4b76..044de21d96 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -74,6 +74,11 @@ define UCLIBC_ARM_ABI_CONFIG $(call UCLIBC_OPT_SET,CONFIG_ARM_EABI,y,$(@D)) endef +# Thumb build is broken with threads, build in ARM mode +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),yy) +UCLIBC_EXTRA_CFLAGS += -marm +endif + ifeq ($(BR2_UCLIBC_ARM_BX),y) define UCLIBC_ARM_BX_CONFIG $(call UCLIBC_OPT_SET,USE_BX,y,$(@D)) @@ -348,7 +353,7 @@ endif UCLIBC_MAKE_FLAGS = \ ARCH="$(UCLIBC_TARGET_ARCH)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ - UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \ + UCLIBC_EXTRA_CFLAGS="$(UCLIBC_EXTRA_CFLAGS) $(TARGET_ABI)" \ HOSTCC="$(HOSTCC)" define UCLIBC_SETUP_DOT_CONFIG