Move over to ABSL logging and flags.

Removes gperftools too since that wants gflags.

Here come the fireworks.

Change-Id: I79cb7bcf60f1047fbfa28bfffc21a0fd692e4b1c
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/third_party/abseil/abseil.patch b/third_party/abseil/abseil.patch
index 36b37dc..135fba9 100644
--- a/third_party/abseil/abseil.patch
+++ b/third_party/abseil/abseil.patch
@@ -1,5 +1,18 @@
+diff --git a/absl/base/attributes.h b/absl/base/attributes.h
+index d4f67a12..e10f3957 100644
+--- a/absl/base/attributes.h
++++ b/absl/base/attributes.h
+@@ -196,7 +196,7 @@
+ //
+ // Tells the compiler that a given function never returns.
+ #if ABSL_HAVE_ATTRIBUTE(noreturn) || (defined(__GNUC__) && !defined(__clang__))
+-#define ABSL_ATTRIBUTE_NORETURN __attribute__((noreturn))
++#define ABSL_ATTRIBUTE_NORETURN [[noreturn]]
+ #elif defined(_MSC_VER)
+ #define ABSL_ATTRIBUTE_NORETURN __declspec(noreturn)
+ #else
 diff --git a/absl/copts/GENERATED_AbseilCopts.cmake b/absl/copts/GENERATED_AbseilCopts.cmake
-index 04e7b444..81884a6d 100644
+index 430916f7..ebc876f2 100644
 --- a/absl/copts/GENERATED_AbseilCopts.cmake
 +++ b/absl/copts/GENERATED_AbseilCopts.cmake
 @@ -49,6 +49,13 @@ list(APPEND ABSL_GCC_FLAGS
@@ -30,7 +43,7 @@
      "-Wvarargs"
      "-Wvla"
      "-Wwrite-strings"
-@@ -95,8 +109,8 @@ list(APPEND ABSL_LLVM_FLAGS
+@@ -96,8 +110,8 @@ list(APPEND ABSL_LLVM_FLAGS
      "-Woverlength-strings"
      "-Wpointer-arith"
      "-Wself-assign"
@@ -40,7 +53,7 @@
      "-Wsign-conversion"
      "-Wstring-conversion"
      "-Wtautological-overlap-compare"
-@@ -114,6 +128,12 @@ list(APPEND ABSL_LLVM_FLAGS
+@@ -115,6 +129,12 @@ list(APPEND ABSL_LLVM_FLAGS
      "-Wno-implicit-int-float-conversion"
      "-Wno-unknown-warning-option"
      "-DNOMINMAX"
@@ -51,9 +64,9 @@
 +    "-Wno-shorten-64-to-32"
 +    "-Wno-stringop-overflow"
  )
-
+ 
  list(APPEND ABSL_LLVM_TEST_FLAGS
-@@ -133,7 +153,7 @@ list(APPEND ABSL_LLVM_TEST_FLAGS
+@@ -134,7 +154,7 @@ list(APPEND ABSL_LLVM_TEST_FLAGS
      "-Woverlength-strings"
      "-Wpointer-arith"
      "-Wself-assign"
@@ -62,7 +75,7 @@
      "-Wstring-conversion"
      "-Wtautological-overlap-compare"
      "-Wtautological-unsigned-zero-compare"
-@@ -150,6 +170,12 @@ list(APPEND ABSL_LLVM_TEST_FLAGS
+@@ -151,6 +171,12 @@ list(APPEND ABSL_LLVM_TEST_FLAGS
      "-Wno-implicit-int-float-conversion"
      "-Wno-unknown-warning-option"
      "-DNOMINMAX"
@@ -76,7 +89,7 @@
      "-Wno-implicit-int-conversion"
      "-Wno-missing-prototypes"
 diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
-index 84f4bffc..21f487a1 100644
+index 011d8a98..beb94fa7 100644
 --- a/absl/copts/GENERATED_copts.bzl
 +++ b/absl/copts/GENERATED_copts.bzl
 @@ -50,6 +50,13 @@ ABSL_GCC_FLAGS = [
@@ -107,7 +120,7 @@
      "-Wvarargs",
      "-Wvla",
      "-Wwrite-strings",
-@@ -96,8 +110,8 @@ ABSL_LLVM_FLAGS = [
+@@ -97,8 +111,8 @@ ABSL_LLVM_FLAGS = [
      "-Woverlength-strings",
      "-Wpointer-arith",
      "-Wself-assign",
@@ -117,7 +130,7 @@
      "-Wsign-conversion",
      "-Wstring-conversion",
      "-Wtautological-overlap-compare",
-@@ -115,6 +129,12 @@ ABSL_LLVM_FLAGS = [
+@@ -116,6 +130,12 @@ ABSL_LLVM_FLAGS = [
      "-Wno-implicit-int-float-conversion",
      "-Wno-unknown-warning-option",
      "-DNOMINMAX",
@@ -128,9 +141,9 @@
 +    "-Wno-shorten-64-to-32",
 +    "-Wno-stringop-overflow",
  ]
-
+ 
  ABSL_LLVM_TEST_FLAGS = [
-@@ -134,7 +154,7 @@ ABSL_LLVM_TEST_FLAGS = [
+@@ -135,7 +155,7 @@ ABSL_LLVM_TEST_FLAGS = [
      "-Woverlength-strings",
      "-Wpointer-arith",
      "-Wself-assign",
@@ -139,7 +152,7 @@
      "-Wstring-conversion",
      "-Wtautological-overlap-compare",
      "-Wtautological-unsigned-zero-compare",
-@@ -151,6 +171,12 @@ ABSL_LLVM_TEST_FLAGS = [
+@@ -152,6 +172,12 @@ ABSL_LLVM_TEST_FLAGS = [
      "-Wno-implicit-int-float-conversion",
      "-Wno-unknown-warning-option",
      "-DNOMINMAX",
@@ -152,8 +165,28 @@
      "-Wno-deprecated-declarations",
      "-Wno-implicit-int-conversion",
      "-Wno-missing-prototypes",
+diff --git a/absl/copts/configure_copts.bzl b/absl/copts/configure_copts.bzl
+index ca5f26da..d9303c6b 100644
+--- a/absl/copts/configure_copts.bzl
++++ b/absl/copts/configure_copts.bzl
+@@ -46,13 +46,8 @@ ABSL_DEFAULT_LINKOPTS = select({
+ # environment to build an accelerated RandenHwAes library.
+ ABSL_RANDOM_RANDEN_COPTS = select({
+     # APPLE
+-    ":cpu_darwin_x86_64": ABSL_RANDOM_HWAES_X64_FLAGS,
+-    ":cpu_darwin": ABSL_RANDOM_HWAES_X64_FLAGS,
+-    ":cpu_x64_windows_msvc": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
+-    ":cpu_x64_windows": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
+-    ":cpu_k8": ABSL_RANDOM_HWAES_X64_FLAGS,
+-    ":cpu_ppc": ["-mcrypto"],
+-    ":cpu_aarch64": ABSL_RANDOM_HWAES_ARM64_FLAGS,
++    "@platforms//cpu:x86_64": ABSL_RANDOM_HWAES_X64_FLAGS,
++    "@platforms//cpu:aarch64": ABSL_RANDOM_HWAES_ARM64_FLAGS,
+ 
+     # Supported by default or unsupported.
+     "//conditions:default": [],
 diff --git a/absl/copts/copts.py b/absl/copts/copts.py
-index 06eeb67b..d2a3e74f 100644
+index e6e11949..ea3e9e9a 100644
 --- a/absl/copts/copts.py
 +++ b/absl/copts/copts.py
 @@ -23,6 +23,13 @@ ABSL_GCC_FLAGS = [
@@ -170,7 +203,7 @@
      "-Wvarargs",
      "-Wvla",  # variable-length array
      "-Wwrite-strings",
-@@ -56,8 +63,8 @@ ABSL_LLVM_FLAGS = [
+@@ -57,8 +64,8 @@ ABSL_LLVM_FLAGS = [
      "-Woverlength-strings",
      "-Wpointer-arith",
      "-Wself-assign",
@@ -180,7 +213,7 @@
      "-Wsign-conversion",
      "-Wstring-conversion",
      "-Wtautological-overlap-compare",
-@@ -80,6 +87,12 @@ ABSL_LLVM_FLAGS = [
+@@ -81,6 +88,12 @@ ABSL_LLVM_FLAGS = [
      "-Wno-unknown-warning-option",
      # Don't define min and max macros (Build on Windows using clang)
      "-DNOMINMAX",
@@ -191,13 +224,89 @@
 +    "-Wno-shorten-64-to-32",
 +    "-Wno-stringop-overflow",
  ]
-
+ 
  ABSL_LLVM_TEST_ADDITIONAL_FLAGS = [
+diff --git a/absl/log/internal/check_op.cc b/absl/log/internal/check_op.cc
+index f4b67647..09d65386 100644
+--- a/absl/log/internal/check_op.cc
++++ b/absl/log/internal/check_op.cc
+@@ -28,6 +28,17 @@
+ #include "absl/base/config.h"
+ #include "absl/strings/str_cat.h"
+ 
++namespace aos {
++void FatalUnsetRealtimePriority() __attribute__((weak));
++}
++
++static void MaybeUnsetRealtime() {
++  if (&aos::FatalUnsetRealtimePriority != nullptr) {
++    aos::FatalUnsetRealtimePriority();
++  }
++}
++
++
+ namespace absl {
+ ABSL_NAMESPACE_BEGIN
+ namespace log_internal {
+@@ -50,6 +61,7 @@ ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const void*);
+ #undef ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING
+ 
+ CheckOpMessageBuilder::CheckOpMessageBuilder(const char* exprtext) {
++  MaybeUnsetRealtime();
+   stream_ << exprtext << " (";
+ }
+ 
+diff --git a/absl/log/internal/log_message.cc b/absl/log/internal/log_message.cc
+index 10ac2453..30a4909c 100644
+--- a/absl/log/internal/log_message.cc
++++ b/absl/log/internal/log_message.cc
+@@ -60,6 +60,16 @@ extern "C" ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(
+   // Default - Do nothing
+ }
+ 
++namespace aos {
++void FatalUnsetRealtimePriority() __attribute__((weak));
++}
++
++static void MaybeUnsetRealtime() {
++  if (&aos::FatalUnsetRealtimePriority != nullptr) {
++    aos::FatalUnsetRealtimePriority();
++  }
++}
++
+ namespace absl {
+ ABSL_NAMESPACE_BEGIN
+ namespace log_internal {
+@@ -215,15 +225,21 @@ void LogMessage::LogMessageData::FinalizeEncodingAndFormat() {
+   }
+   auto chars_written =
+       static_cast<size_t>(string_remaining.data() - string_buf.data());
+-    string_buf[chars_written++] = '\n';
++  string_buf[chars_written++] = '\n';
+   string_buf[chars_written++] = '\0';
+   entry.text_message_with_prefix_and_newline_and_nul_ =
+       absl::MakeSpan(string_buf).subspan(0, chars_written);
+ }
+ 
+ LogMessage::LogMessage(const char* file, int line, absl::LogSeverity severity)
+-    : data_(absl::make_unique<LogMessageData>(file, line, severity,
+-                                              absl::Now())) {
++    : data_([&]() {
++        if (severity == absl::LogSeverity::kFatal &&
++            absl::log_internal::ExitOnDFatal()) {
++          MaybeUnsetRealtime();
++        }
++        return absl::make_unique<LogMessageData>(file, line, severity,
++                                                 absl::Now());
++      }()) {
+   data_->first_fatal = false;
+   data_->is_perror = false;
+   data_->fail_quietly = false;
 diff --git a/absl/random/internal/BUILD.bazel b/absl/random/internal/BUILD.bazel
-index 81ca669b..e839860e 100644
+index 71a742ee..4809b2d0 100644
 --- a/absl/random/internal/BUILD.bazel
 +++ b/absl/random/internal/BUILD.bazel
-@@ -665,6 +665,7 @@ cc_test(
+@@ -692,6 +692,7 @@ cc_test(
  cc_library(
      name = "nanobenchmark",
      srcs = ["nanobenchmark.cc"],
@@ -206,10 +315,10 @@
      textual_hdrs = ["nanobenchmark.h"],
      deps = [
 diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel
-index ed330f26..5f1c44b6 100644
+index 8e8371b3..b34d1487 100644
 --- a/absl/strings/BUILD.bazel
 +++ b/absl/strings/BUILD.bazel
-@@ -653,6 +653,7 @@ cc_test(
+@@ -788,6 +788,7 @@ cc_test(
      srcs = [
          "internal/cordz_info_statistics_test.cc",
      ],
@@ -218,13 +327,13 @@
          ":cord",
          ":cord_internal",
 diff --git a/absl/time/internal/cctz/BUILD.bazel b/absl/time/internal/cctz/BUILD.bazel
-index edeabd81..49674f5f 100644
+index 0b43bb12..920c8b9c 100644
 --- a/absl/time/internal/cctz/BUILD.bazel
 +++ b/absl/time/internal/cctz/BUILD.bazel
-@@ -16,6 +16,13 @@ package(features = ["-parse_headers"])
-
+@@ -20,6 +20,13 @@ package(features = [
+ 
  licenses(["notice"])
-
+ 
 +load(
 +    "//absl:copts/configure_copts.bzl",
 +    "ABSL_DEFAULT_COPTS",
@@ -233,9 +342,9 @@
 +)
 +
  ### libraries
-
+ 
  cc_library(
-@@ -24,6 +31,8 @@ cc_library(
+@@ -28,6 +35,8 @@ cc_library(
      hdrs = [
          "include/cctz/civil_time.h",
      ],
@@ -244,23 +353,3 @@
      textual_hdrs = ["include/cctz/civil_time_detail.h"],
      visibility = ["//visibility:public"],
      deps = ["//absl/base:config"],
-diff --git a/absl/copts/configure_copts.bzl b/absl/copts/configure_copts.bzl
-index ca5f26da..0b10dc0b 100644
---- a/absl/copts/configure_copts.bzl
-+++ b/absl/copts/configure_copts.bzl
-@@ -46,13 +46,8 @@ ABSL_DEFAULT_LINKOPTS = select({
- # environment to build an accelerated RandenHwAes library.
- ABSL_RANDOM_RANDEN_COPTS = select({
-     # APPLE
--    ":cpu_darwin_x86_64": ABSL_RANDOM_HWAES_X64_FLAGS,
--    ":cpu_darwin": ABSL_RANDOM_HWAES_X64_FLAGS,
--    ":cpu_x64_windows_msvc": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
--    ":cpu_x64_windows": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
--    ":cpu_k8": ABSL_RANDOM_HWAES_X64_FLAGS,
--    ":cpu_ppc": ["-mcrypto"],
--    ":cpu_aarch64": ABSL_RANDOM_HWAES_ARM64_FLAGS,
-+    "@platforms//cpu:x86_64": ABSL_RANDOM_HWAES_X64_FLAGS,
-+    "@platforms//cpu:aarch64": ABSL_RANDOM_HWAES_ARM64_FLAGS,
-
-     # Supported by default or unsupported.
-     "//conditions:default": [],