Closed tobias-schuele closed 7 years ago
@sebhub: Did you compile #90 on 32 or 64 bit system?
In "base_c/include/embb/base/c/internal/atomic/atomic.h" we have now:
#if defined EMBB_PLATFORM_ARCH_CXX11
typedef std::atomic_uint_least8_t EMBB_BASE_BASIC_TYPE_ATOMIC_1;
typedef std::atomic_uint_least16_t EMBB_BASE_BASIC_TYPE_ATOMIC_2;
typedef std::atomic_uint_least32_t EMBB_BASE_BASIC_TYPE_ATOMIC_4;
typedef std::atomic_uint_least64_t EMBB_BASE_BASIC_TYPE_ATOMIC_8;
#elif defined EMBB_PLATFORM_ARCH_C11
typedef atomic_uint_least8_t EMBB_BASE_BASIC_TYPE_ATOMIC_1;
typedef atomic_uint_least16_t EMBB_BASE_BASIC_TYPE_ATOMIC_2;
typedef atomic_uint_least32_t EMBB_BASE_BASIC_TYPE_ATOMIC_4;
typedef atomic_uint_least64_t EMBB_BASE_BASIC_TYPE_ATOMIC_8;
#else
typedef EMBB_BASE_BASIC_TYPE_SIZE_1 EMBB_BASE_BASIC_TYPE_ATOMIC_1;
typedef EMBB_BASE_BASIC_TYPE_SIZE_2 EMBB_BASE_BASIC_TYPE_ATOMIC_2;
typedef EMBB_BASE_BASIC_TYPE_SIZE_4 EMBB_BASE_BASIC_TYPE_ATOMIC_4;
#ifdef EMBB_64_BIT_ATOMIC_AVAILABLE
typedef EMBB_BASE_BASIC_TYPE_SIZE_8 EMBB_BASE_BASIC_TYPE_ATOMIC_8;
#endif
#endif
Should we define the EMBB_BASE_BASIC_TYPE_ATOMIC_8 unconditionally or
// Specialization for double-words
template<> struct AtomicTraits<8> {
typedef EMBB_BASE_BASIC_TYPE_SIZE_8 NativeType;
typedef EMBB_BASE_BASIC_TYPE_ATOMIC_8 AtomicType;
};
conditionally depending on EMBB_64_BIT_ATOMIC_AVAILABLE?
This error is gone. Verified on Wandboard and with crosscompilation.