Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] uclibc: arc: Disable usage of atomic ops if hardware has no LLSC
@ 2017-04-19 17:48 Alexey Brodkin
  2017-05-04 20:54 ` Thomas Petazzoni
  0 siblings, 1 reply; 2+ messages in thread
From: Alexey Brodkin @ 2017-04-19 17:48 UTC (permalink / raw)
  To: buildroot

Since uClibc-ng v1.0.20 we may force libc to either use llock/scond
instructions for atomic ops or if those are missing use kernel-assisted
emulation. By defult atomics are used so we disable that feature in libc
if we build for 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>
---
 package/uclibc/uclibc.mk | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 45bb6dede..ce7f23f25 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
 
+ifneq ($(BR2_ARC_ATOMIC_EXT),y)
+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)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-05-04 20:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-19 17:48 [Buildroot] [PATCH] uclibc: arc: Disable usage of atomic ops if hardware has no LLSC Alexey Brodkin
2017-05-04 20:54 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox