From: Alexey Brodkin Date: Wed, 19 Apr 2017 17:48:57 +0000 (+0300) Subject: uclibc: arc: Disable usage of atomic ops if hardware has no LLSC X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=64c67e07fa40e1af1a9dbba907a0117765b16c16;p=buildroot.git uclibc: arc: Disable usage of atomic ops if hardware has no LLSC Since uClibc-ng v1.0.20 we can force libc to either use llock/scond instructions for atomic ops or if those are missing use kernel-assisted emulation. By default atomics are used so we disable that feature in libc if we build for a target without LLSC. This allows us to build and use NPTL on ARC750 for example which was not possible before. Signed-off-by: Alexey Brodkin Cc: Thomas Petazzoni Cc: Peter Korsgaard Signed-off-by: Thomas Petazzoni --- diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index f47b3ec3bf..bbf389e327 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -101,6 +101,12 @@ define UCLIBC_ARC_PAGE_SIZE_CONFIG $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_PAGE_SIZE),$(@D)/.config) endef +ifeq ($(BR2_ARC_ATOMIC_EXT),) +define UCLIBC_ARC_ATOMICS_CONFIG + $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_HAS_ATOMICS,$(@D)/.config) +endef +endif + endif # arc # @@ -395,6 +401,7 @@ define UCLIBC_KCONFIG_FIXUP_CMDS $(UCLIBC_BINFMT_CONFIG) $(UCLIBC_ARC_TYPE_CONFIG) $(UCLIBC_ARC_PAGE_SIZE_CONFIG) + $(UCLIBC_ARC_ATOMICS_CONFIG) $(UCLIBC_ARM_ABI_CONFIG) $(UCLIBC_ARM_BINFMT_FLAT) $(UCLIBC_ARM_NO_CONTEXT_FUNCS)