diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-04-03 15:09:33 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-04-03 19:07:17 +0000 |
commit | 6b151acc9f31574c7b739433c538b90b989c9a23 (patch) | |
tree | c80fe2a8fd88095cde3a515be482d2e5dc7929df | |
parent | 4bec2092ce5875fc765ae562b866706b87d3aae6 (diff) | |
download | qtwebengine-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.cc | 4 | ||||
-rw-r--r-- | chromium/services/tracing/public/cpp/perfetto/trace_event_data_source.cc | 2 |
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_); } |