summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2020-04-03 15:09:33 +0200
committerKirill Burtsev <kirill.burtsev@qt.io>2020-04-03 19:07:17 +0000
commit6b151acc9f31574c7b739433c538b90b989c9a23 (patch)
treec80fe2a8fd88095cde3a515be482d2e5dc7929df
parent4bec2092ce5875fc765ae562b866706b87d3aae6 (diff)
downloadqtwebengine-chromium-6b151acc9f31574c7b739433c538b90b989c9a23.tar.gz
FIXUP: Fix clang and embedded gcc builds
Work around an issues causing a dependency on libatomic because clang doesn't have internal atomic handling, which lead to runtime error: 'undefined symbol: __atomic_is_lock_free' Change-Id: I29bb222242a5bfce790980753b26b86ebed3c6b3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/base/memory/madv_free_discardable_memory_posix.cc4
-rw-r--r--chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc2
2 files changed, 6 insertions, 0 deletions
diff --git a/chromium/base/memory/madv_free_discardable_memory_posix.cc b/chromium/base/memory/madv_free_discardable_memory_posix.cc
index 7b3ee21713f..1e25711d8f7 100644
--- a/chromium/base/memory/madv_free_discardable_memory_posix.cc
+++ b/chromium/base/memory/madv_free_discardable_memory_posix.cc
@@ -145,7 +145,9 @@ bool MadvFreeDiscardableMemoryPosix::LockPage(size_t page_index) {
// the same byte-level representation.
static_assert(sizeof(intptr_t) == sizeof(std::atomic<intptr_t>),
"Incompatible layout of std::atomic.");
+#ifndef TOOLKIT_QT
DCHECK(std::atomic<intptr_t>{}.is_lock_free());
+#endif
std::atomic<intptr_t>* page_as_atomic =
reinterpret_cast<std::atomic<intptr_t>*>(
static_cast<uint8_t*>(data_) + page_index * base::GetPageSize());
@@ -167,7 +169,9 @@ bool MadvFreeDiscardableMemoryPosix::LockPage(size_t page_index) {
}
void MadvFreeDiscardableMemoryPosix::UnlockPage(size_t page_index) {
+#ifndef TOOLKIT_QT
DCHECK(std::atomic<intptr_t>{}.is_lock_free());
+#endif
std::atomic<intptr_t>* page_as_atomic =
reinterpret_cast<std::atomic<intptr_t>*>(
diff --git a/chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc b/chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc
index 4adaa8ebcba..de66ba74ebe 100644
--- a/chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc
+++ b/chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc
@@ -441,9 +441,11 @@ TraceEventDataSource::TraceEventDataSource()
: DataSourceBase(mojom::kTraceEventDataSourceName),
disable_interning_(base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kPerfettoDisableInterning)) {
+#ifndef TOOLKIT_QT
DCHECK(session_flags_.is_lock_free())
<< "SessionFlags are not atomic! We rely on efficient lock-free look-up "
"of the session flags when emitting a trace event.";
+#endif
g_trace_event_data_source_for_testing = this;
DETACH_FROM_SEQUENCE(perfetto_sequence_checker_);
}