diff options
Diffstat (limited to 'recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch')
-rw-r--r-- | recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch b/recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch new file mode 100644 index 0000000..d552d9c --- /dev/null +++ b/recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From b6594af3414070fae4d2fd66a1b92a31c5fd3234 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 18 Nov 2019 17:00:29 -0800 | ||
4 | Subject: [PATCH] Check for atomic<double> intrinsics | ||
5 | |||
6 | On some architectures e.g. x86/32bit gcc decides to inline calls to | ||
7 | double atomic variables but clang does not and defers it to libatomic | ||
8 | therefore detect if clang can use built-ins for atomic<double> if not | ||
9 | then link libatomic, this helps building clangd for x86 on linux systems | ||
10 | with gcc runtime | ||
11 | |||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | llvm/cmake/modules/CheckAtomic.cmake | 3 ++- | ||
15 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/llvm/cmake/modules/CheckAtomic.cmake b/llvm/cmake/modules/CheckAtomic.cmake | ||
18 | index 29f3bdd57f0..6460842cf63 100644 | ||
19 | --- a/llvm/cmake/modules/CheckAtomic.cmake | ||
20 | +++ b/llvm/cmake/modules/CheckAtomic.cmake | ||
21 | @@ -26,9 +26,10 @@ function(check_working_cxx_atomics64 varname) | ||
22 | #include <atomic> | ||
23 | #include <cstdint> | ||
24 | std::atomic<uint64_t> x (0); | ||
25 | +std::atomic<double> y (0); | ||
26 | int main() { | ||
27 | uint64_t i = x.load(std::memory_order_relaxed); | ||
28 | - return 0; | ||
29 | + return int(y); | ||
30 | } | ||
31 | " ${varname}) | ||
32 | set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) | ||