diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 0fee5e0..17cf3f5 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -247,6 +247,7 @@
     ":platform_thread_types",
     ":stringutils",
     ":timeutils",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/abseil-cpp/absl/meta:type_traits",
     "//third_party/abseil-cpp/absl/strings",
   ]
diff --git a/rtc_base/logging.cc b/rtc_base/logging.cc
index a4aea28..71e0f4f 100644
--- a/rtc_base/logging.cc
+++ b/rtc_base/logging.cc
@@ -35,6 +35,7 @@
 #include <cstdarg>
 #include <vector>
 
+#include "absl/base/attributes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/critical_section.h"
 #include "rtc_base/logging.h"
@@ -67,7 +68,7 @@
 }
 
 // Global lock for log subsystem, only needed to serialize access to streams_.
-CriticalSection g_log_crit;
+ABSL_CONST_INIT GlobalLock g_log_crit;
 }  // namespace
 
 // Inefficient default implementation, override is recommended.
@@ -199,7 +200,7 @@
 #endif
   }
 
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   for (auto& kv : streams_) {
     if (severity_ >= kv.second) {
 #if defined(WEBRTC_ANDROID)
@@ -248,7 +249,7 @@
 
 void LogMessage::LogToDebug(LoggingSeverity min_sev) {
   g_dbg_sev = min_sev;
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   UpdateMinLogSeverity();
 }
 
@@ -257,7 +258,7 @@
 }
 
 int LogMessage::GetLogToStream(LogSink* stream) {
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   LoggingSeverity sev = LS_NONE;
   for (auto& kv : streams_) {
     if (!stream || stream == kv.first) {
@@ -268,13 +269,13 @@
 }
 
 void LogMessage::AddLogToStream(LogSink* stream, LoggingSeverity min_sev) {
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   streams_.push_back(std::make_pair(stream, min_sev));
   UpdateMinLogSeverity();
 }
 
 void LogMessage::RemoveLogToStream(LogSink* stream) {
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   for (StreamList::iterator it = streams_.begin(); it != streams_.end(); ++it) {
     if (stream == it->first) {
       streams_.erase(it);
@@ -443,7 +444,7 @@
   // TODO(tommi): We're grabbing this lock for every LogMessage instance that
   // is going to be logged. This introduces unnecessary synchronization for
   // a feature that's mostly used for testing.
-  CritScope cs(&g_log_crit);
+  GlobalLockScope cs(&g_log_crit);
   if (streams_.size() > 0)
     return false;
 
