summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2017-04-19 20:48:57 +0300
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-05-04 22:51:58 +0200
commit64c67e07fa40e1af1a9dbba907a0117765b16c16 (patch)
treedd3b167e14069f73ba4d62464b98dcda222553eb
parenta497a9fd6cdb518572282b1478279f476f870fb7 (diff)
downloadbuildroot-64c67e07fa40e1af1a9dbba907a0117765b16c16.tar.gz
buildroot-64c67e07fa40e1af1a9dbba907a0117765b16c16.zip
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 <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/uclibc/uclibc.mk7
1 files changed, 7 insertions, 0 deletions
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)
OpenPOWER on IntegriCloud