toolchain: Add config option for atomic intrinsics
GCC has several builtin functions that implement atomic operations. Those functions are architecture specific and may not be implemented by the specific toolchain. In case of GCC for ARC those functions rely on LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't support those instructions but software tries to use them, then application will be aborted with Illegal instruction exception. To avoid confusion user should first specify that their CPU supports atomic extension, which will allow selection of packages that use builtin atomic functions. Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
21205fced5
commit
cbffd50561
@ -1,3 +1,8 @@
|
||||
# Choise of atomic instructions presence
|
||||
config BR2_ARC_ATOMIC_EXT
|
||||
bool "Atomic extension (LLOCK/SCOND instructions)"
|
||||
select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
|
||||
config BR2_ARCH
|
||||
default "arc" if BR2_arcle
|
||||
default "arceb" if BR2_arceb
|
||||
|
@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
|
||||
TARGET_ABI += -mlongcalls -mtext-section-literals
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
|
||||
TARGET_ABI += -matomic
|
||||
endif
|
||||
|
||||
STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
|
||||
STAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR)
|
||||
|
||||
|
@ -44,6 +44,10 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
config BR2_TOOLCHAIN_HAS_SSP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
bool
|
||||
default y if !BR2_arc
|
||||
|
||||
config BR2_ENABLE_LOCALE_PURGE
|
||||
bool "Purge unwanted locales"
|
||||
help
|
||||
|
Loading…
Reference in New Issue
Block a user