summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch')
-rwxr-xr-xrecipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/recipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch b/recipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch
new file mode 100755
index 0000000..35e65d3
--- /dev/null
+++ b/recipes-devtools/clang/clang/0001-compiler-rt-Fix-realpath-already-defined-error.patch
@@ -0,0 +1,54 @@
1From dde0be40b3628caa4abbb7ca367bc753f7b7e7a6 Mon Sep 17 00:00:00 2001
2From: Alexander Thoma <a.thoma@rational-online.com>
3Date: Wed, 22 Sep 2021 07:46:29 +0200
4Subject: [PATCH] compiler-rt Fix realpath already defined error
5
6---
7 compiler-rt/lib/tsan/dd/dd_interceptors.cpp | 10 +++++-----
8 1 file changed, 5 insertions(+), 5 deletions(-)
9
10diff --git a/compiler-rt/lib/tsan/dd/dd_interceptors.cpp b/compiler-rt/lib/tsan/dd/dd_interceptors.cpp
11index 35a0beb19196..ed819339f3cb 100644
12--- a/compiler-rt/lib/tsan/dd/dd_interceptors.cpp
13+++ b/compiler-rt/lib/tsan/dd/dd_interceptors.cpp
14@@ -6,11 +6,11 @@
15 //
16 //===----------------------------------------------------------------------===//
17
18+#include <pthread.h>
19 #include "dd_rtl.h"
20 #include "interception/interception.h"
21 #include "sanitizer_common/sanitizer_procmaps.h"
22-#include <pthread.h>
23-#include <stdlib.h>
24+#include "sanitizer_common/sanitizer_allocator_internal.h"
25
26 using namespace __dsan;
27
28@@ -163,12 +163,12 @@ static pthread_cond_t *init_cond(pthread_cond_t *c, bool force = false) {
29 uptr cond = atomic_load(p, memory_order_acquire);
30 if (!force && cond != 0)
31 return (pthread_cond_t*)cond;
32- void *newcond = malloc(sizeof(pthread_cond_t));
33+ void *newcond = InternalAlloc(sizeof(pthread_cond_t));
34 internal_memset(newcond, 0, sizeof(pthread_cond_t));
35 if (atomic_compare_exchange_strong(p, &cond, (uptr)newcond,
36 memory_order_acq_rel))
37 return (pthread_cond_t*)newcond;
38- free(newcond);
39+ InternalFree(newcond);
40 return (pthread_cond_t*)cond;
41 }
42
43@@ -216,7 +216,7 @@ INTERCEPTOR(int, pthread_cond_destroy, pthread_cond_t *c) {
44 InitThread();
45 pthread_cond_t *cond = init_cond(c);
46 int res = REAL(pthread_cond_destroy)(cond);
47- free(cond);
48+ InternalFree(cond);
49 atomic_store((atomic_uintptr_t*)c, 0, memory_order_relaxed);
50 return res;
51 }
52--
532.25.1
54