From b4e83061e3ebd3dd012c4b41cc04daf3043a1ce0 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 3 Dec 2013 11:56:55 +0100 Subject: [PATCH] arm: Clear reservations Recent GCC versions use atomic operations based on load/store exclusive in the C++ library. --- cpukit/score/cpu/arm/cpu_asm.S | 2 +- cpukit/score/cpu/arm/rtems/score/arm.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cpukit/score/cpu/arm/cpu_asm.S b/cpukit/score/cpu/arm/cpu_asm.S index 0a91836fe5..7fb4062d50 100644 --- a/cpukit/score/cpu/arm/cpu_asm.S +++ b/cpukit/score/cpu/arm/cpu_asm.S @@ -64,7 +64,7 @@ DEFINE_FUNCTION_ARM(_CPU_Context_switch) /* Start restoring context */ _restore: -#ifdef RTEMS_SMP +#ifdef ARM_MULTILIB_HAS_LOAD_STORE_EXCLUSIVE clrex #endif diff --git a/cpukit/score/cpu/arm/rtems/score/arm.h b/cpukit/score/cpu/arm/rtems/score/arm.h index 0a3e7247f8..608f753d11 100644 --- a/cpukit/score/cpu/arm/rtems/score/arm.h +++ b/cpukit/score/cpu/arm/rtems/score/arm.h @@ -41,6 +41,7 @@ extern "C" { || defined(__ARM_ARCH_7R__) \ || defined(__ARM_ARCH_7M__) #define ARM_MULTILIB_HAS_WFI + #define ARM_MULTILIB_HAS_LOAD_STORE_EXCLUSIVE #endif #if defined(__ARM_NEON__)