From 6759034dcde9e062c9be12283439149b607f2c8f Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Tue, 31 Jan 2017 17:21:13 +0100 Subject: Remove linking with libatomic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rhel machines on ci do not have it. Change-Id: I4cbb6d9d0826a23f8065a9eebba7ba27856e44d4 Reviewed-by: Michael BrĂ¼ning Reviewed-by: Allan Sandfeld Jensen --- chromium/base/BUILD.gn | 2 +- chromium/base/memory/madv_free_discardable_memory_posix.cc | 4 ++++ chromium/base/metrics/persistent_memory_allocator.cc | 2 ++ chromium/base/profiler/metadata_recorder.cc | 2 ++ chromium/base/task/thread_pool/thread_group.cc | 2 ++ chromium/build/config/linux/BUILD.gn | 2 +- .../services/tracing/public/cpp/perfetto/trace_event_data_source.cc | 2 ++ 7 files changed, 14 insertions(+), 2 deletions(-) diff --git a/chromium/base/BUILD.gn b/chromium/base/BUILD.gn index 6f993be10f6..8dde7e9caae 100644 --- a/chromium/base/BUILD.gn +++ b/chromium/base/BUILD.gn @@ -1394,7 +1394,7 @@ component("base") { # building inside the cros_sdk environment - use host_toolchain as a # more robust check for this. if (!use_sysroot && - (is_android || ((is_linux || is_chromeos) && !is_chromecast)) && + (is_android || ((is_linux || is_chromeos) && !is_chromecast && !use_qt)) && host_toolchain != "//build/toolchain/cros:host") { libs += [ "atomic" ] } diff --git a/chromium/base/memory/madv_free_discardable_memory_posix.cc b/chromium/base/memory/madv_free_discardable_memory_posix.cc index 56e51a5f7be..b5d0f772088 100644 --- a/chromium/base/memory/madv_free_discardable_memory_posix.cc +++ b/chromium/base/memory/madv_free_discardable_memory_posix.cc @@ -165,7 +165,9 @@ bool MadvFreeDiscardableMemoryPosix::LockPage(size_t page_index) { // the same byte-level representation. static_assert(sizeof(intptr_t) == sizeof(std::atomic), "Incompatible layout of std::atomic."); +#ifndef TOOLKIT_QT DCHECK(std::atomic{}.is_lock_free()); +#endif std::atomic* page_as_atomic = reinterpret_cast*>( static_cast(data_) + page_index * base::GetPageSize()); @@ -187,7 +189,9 @@ bool MadvFreeDiscardableMemoryPosix::LockPage(size_t page_index) { } void MadvFreeDiscardableMemoryPosix::UnlockPage(size_t page_index) { +#ifndef TOOLKIT_QT DCHECK(std::atomic{}.is_lock_free()); +#endif std::atomic* page_as_atomic = reinterpret_cast*>( diff --git a/chromium/base/metrics/persistent_memory_allocator.cc b/chromium/base/metrics/persistent_memory_allocator.cc index f11d7aa3b3c..7098bd0896b 100644 --- a/chromium/base/metrics/persistent_memory_allocator.cc +++ b/chromium/base/metrics/persistent_memory_allocator.cc @@ -350,11 +350,13 @@ PersistentMemoryAllocator::PersistentMemoryAllocator(Memory memory, // Ensure that memory segment is of acceptable size. CHECK(IsMemoryAcceptable(memory.base, size, page_size, readonly)); +#ifndef TOOLKIT_QT // These atomics operate inter-process and so must be lock-free. DCHECK(SharedMetadata().freeptr.is_lock_free()); DCHECK(SharedMetadata().flags.is_lock_free()); DCHECK(BlockHeader().next.is_lock_free()); CHECK(corrupt_.is_lock_free()); +#endif if (shared_meta()->cookie != kGlobalCookie) { if (readonly) { diff --git a/chromium/base/profiler/metadata_recorder.cc b/chromium/base/profiler/metadata_recorder.cc index d4c857f2f30..4ff8a4652c1 100644 --- a/chromium/base/profiler/metadata_recorder.cc +++ b/chromium/base/profiler/metadata_recorder.cc @@ -29,8 +29,10 @@ MetadataRecorder::ItemInternal::~ItemInternal() = default; MetadataRecorder::MetadataRecorder() { // Ensure that we have necessary atomic support. +#ifndef TOOLKIT_QT DCHECK(items_[0].is_active.is_lock_free()); DCHECK(items_[0].value.is_lock_free()); +#endif } MetadataRecorder::~MetadataRecorder() = default; diff --git a/chromium/base/task/thread_pool/thread_group.cc b/chromium/base/task/thread_pool/thread_group.cc index 4832a40b2f6..ab523bf2c69 100644 --- a/chromium/base/task/thread_pool/thread_group.cc +++ b/chromium/base/task/thread_pool/thread_group.cc @@ -265,7 +265,9 @@ void ThreadGroup::InvalidateAndHandoffAllTaskSourcesToOtherThreadGroup( } bool ThreadGroup::ShouldYield(TaskSourceSortKey sort_key) { +#ifndef TOOLKIT_QT DCHECK(TS_UNCHECKED_READ(max_allowed_sort_key_).is_lock_free()); +#endif if (!task_tracker_->CanRunPriority(sort_key.priority())) return true; diff --git a/chromium/build/config/linux/BUILD.gn b/chromium/build/config/linux/BUILD.gn index 47704248bfa..80b27451d1e 100644 --- a/chromium/build/config/linux/BUILD.gn +++ b/chromium/build/config/linux/BUILD.gn @@ -30,7 +30,7 @@ config("runtime_library") { if ((!(is_chromeos_ash || is_chromeos_lacros) || default_toolchain != "//build/toolchain/cros:target") && - (!use_custom_libcxx || current_cpu == "mipsel")) { + (!use_custom_libcxx || current_cpu == "mipsel") && !use_qt) { libs = [ "atomic" ] } } 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 624da1b0306..1146a23e720 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 @@ -537,9 +537,11 @@ TraceEventDataSource::TraceEventDataSource() // all platforms. process_creation_time_ticks_ = TRACE_TIME_TICKS_NOW(); +#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; } -- cgit v1.2.1