зеркало из https://github.com/mozilla/gecko-dev.git
43 строки
1.9 KiB
Diff
43 строки
1.9 KiB
Diff
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
|
|
index 220bc8f9835..4f7ce485777 100644
|
|
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
|
|
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
|
|
@@ -1143,7 +1143,7 @@ void Darwin::addProfileRTLibs(const ArgList &Args,
|
|
// runtime's functionality.
|
|
if (hasExportSymbolDirective(Args)) {
|
|
if (ForGCOV) {
|
|
- addExportedSymbol(CmdArgs, "___gcov_flush");
|
|
+ addExportedSymbol(CmdArgs, "___custom_llvm_gcov_flush");
|
|
addExportedSymbol(CmdArgs, "_flush_fn_list");
|
|
addExportedSymbol(CmdArgs, "_writeout_fn_list");
|
|
} else {
|
|
diff --git a/compiler-rt/lib/profile/GCDAProfiling.c b/compiler-rt/lib/profile/GCDAProfiling.c
|
|
index 498c05900bf..b7257db10e7 100644
|
|
--- a/compiler-rt/lib/profile/GCDAProfiling.c
|
|
+++ b/compiler-rt/lib/profile/GCDAProfiling.c
|
|
@@ -619,7 +619,7 @@ void llvm_register_flush_function(fn_ptr fn) {
|
|
fn_list_insert(&flush_fn_list, fn);
|
|
}
|
|
|
|
-void __gcov_flush() {
|
|
+void __custom_llvm_gcov_flush() {
|
|
struct fn_node* curr = flush_fn_list.head;
|
|
|
|
while (curr) {
|
|
diff --git a/compiler-rt/test/tsan/pthread_atfork_deadlock2.c b/compiler-rt/test/tsan/pthread_atfork_deadlock2.c
|
|
new file mode 100644
|
|
index 00000000000..e69de29bb2d
|
|
diff --git a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
|
|
index bf3e4ed3e31..37bdcfaeab8 100644
|
|
--- a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
|
|
+++ b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
|
|
@@ -656,7 +656,7 @@ void GCOVProfiler::AddFlushBeforeForkAndExec() {
|
|
for (auto I : ForkAndExecs) {
|
|
IRBuilder<> Builder(I);
|
|
FunctionType *FTy = FunctionType::get(Builder.getVoidTy(), {}, false);
|
|
- FunctionCallee GCOVFlush = M->getOrInsertFunction("__gcov_flush", FTy);
|
|
+ FunctionCallee GCOVFlush = M->getOrInsertFunction("__custom_llvm_gcov_flush", FTy);
|
|
Builder.CreateCall(GCOVFlush);
|
|
I->getParent()->splitBasicBlock(I);
|
|
}
|