From ae0b80fcdc554ce3f67af69bb7f71c75efd9597c Mon Sep 17 00:00:00 2001 From: Android Tools Maintainers Date: Fri, 27 Jan 2023 05:43:52 +0000 Subject: [PATCH] Fix incompatibility between and Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932 Bug: https://reviews.llvm.org/D45470 This 2 headers combined will cause errors for both GCC and Clang. This patch makes sure only one of them is present at any time. Gbp-Pq: Topic system/core Gbp-Pq: Name stdatomic.patch --- system/core/libcutils/include/cutils/atomic.h | 16 ++++++++++++++++ system/core/libcutils/include/cutils/trace.h | 7 +++++++ system/core/liblog/logger.h | 6 ++++++ 3 files changed, 29 insertions(+) diff --git a/system/core/libcutils/include/cutils/atomic.h b/system/core/libcutils/include/cutils/atomic.h index 0c88bfed..43cc5b3a 100644 --- a/system/core/libcutils/include/cutils/atomic.h +++ b/system/core/libcutils/include/cutils/atomic.h @@ -19,7 +19,23 @@ #include #include +#ifdef __cplusplus +#include +using std::atomic_compare_exchange_strong_explicit; +using std::atomic_fetch_add_explicit; +using std::atomic_fetch_or_explicit; +using std::atomic_fetch_sub_explicit; +using std::atomic_int_least32_t; +using std::atomic_load_explicit; +using std::atomic_store_explicit; +using std::atomic_thread_fence; +using std::memory_order::memory_order_acquire; +using std::memory_order::memory_order_relaxed; +using std::memory_order::memory_order_release; +using std::memory_order::memory_order_seq_cst; +#else #include +#endif #ifndef ANDROID_ATOMIC_INLINE #define ANDROID_ATOMIC_INLINE static inline diff --git a/system/core/libcutils/include/cutils/trace.h b/system/core/libcutils/include/cutils/trace.h index e12c32cf..4e8b6497 100644 --- a/system/core/libcutils/include/cutils/trace.h +++ b/system/core/libcutils/include/cutils/trace.h @@ -18,7 +18,14 @@ #define _LIBS_CUTILS_TRACE_H #include +#ifdef __cplusplus +#include +using std::atomic_bool; +using std::atomic_load_explicit; +using std::memory_order_acquire; +#else #include +#endif #include #include #include diff --git a/system/core/liblog/logger.h b/system/core/liblog/logger.h index ddff19dd..554e45e5 100644 --- a/system/core/liblog/logger.h +++ b/system/core/liblog/logger.h @@ -16,7 +16,13 @@ #pragma once +#ifdef __cplusplus +#include +using std::atomic_int; +using std::atomic_uintptr_t; +#else #include +#endif #include #include -- 2.30.2