Merge "Revert "Override fusesoc's request for >= 0.8.0, because 0.9.0 is broken""
diff --git a/WORKSPACE b/WORKSPACE
index 9eb984c..f81dd25 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -114,6 +114,6 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
 http_file(
     name = "hyperdebug_firmware",
-    urls = ["https://storage.googleapis.com/aoa-recovery-test-images/hyperdebug_v2.0.20491-956ccf530.bin"],
-    sha256 = "e9c93d2935b9b6a571b547f20fe6177c48a909535d87533b7a0c64fb049bd643",
+    urls = ["https://github.com/lowRISC/hyperdebug-firmware/releases/download/20240621_01/hyperdebug-firmware.tar.gz"],
+    sha256 = "649a8cd6d183bc3fb286ea5895c752cfec3aa29b9990f44bb9e7621c0414c7de",
 )
diff --git a/sw/device/lib/base/memory.h b/sw/device/lib/base/memory.h
index c4a1682..d895dd5 100644
--- a/sw/device/lib/base/memory.h
+++ b/sw/device/lib/base/memory.h
@@ -18,7 +18,7 @@
 #include <stdint.h>
 
 // NB: --mabi=cheriot-baremetal generates direct C calls & unmangled symbols
-#ifdef _CHERIOT_BAREMETAL_
+#ifdef __CHERIOT_BAREMETAL__
 #undef  __cheri_libcall
 #define __cheri_libcall
 #endif
diff --git a/sw/device/lib/runtime/log.h b/sw/device/lib/runtime/log.h
index e5b98df..c9cd78b 100644
--- a/sw/device/lib/runtime/log.h
+++ b/sw/device/lib/runtime/log.h
@@ -108,7 +108,15 @@
  *               string literal.
  * @param ... format parameters matching the format string.
  */
-#define LOG(severity, format, ...)                               \
+#if __has_feature(capabilities)
+#define LOG(severity, format, ...) \
+  LOG_TO_SECTION(".rodata.fields", severity, format, ##__VA_ARGS__)
+#else
+#define LOG(severity, format, ...) \
+  LOG_TO_SECTION(".logs.fields", severity, format, ##__VA_ARGS__)
+#endif
+
+#define LOG_TO_SECTION(elf_section, severity, format, ...)       \
   do {                                                           \
     if (kDeviceLogBypassUartAddress != 0) {                      \
       /* clang-format off */                                     \
@@ -116,7 +124,7 @@
        * the linker will dutifully discard.
        * Unfortunately, clang-format really mangles these
        * declarations, so we format them manually. */            \
-      __attribute__((section(".logs.fields")))                   \
+      __attribute__((section(elf_section)))                      \
       static const log_fields_t kLogFields =                     \
           LOG_MAKE_FIELDS_(severity, format, ##__VA_ARGS__);     \
       base_log_internal_dv(&kLogFields,                          \
diff --git a/third_party/google/repos.bzl b/third_party/google/repos.bzl
index 0b9220f..72bd803 100644
--- a/third_party/google/repos.bzl
+++ b/third_party/google/repos.bzl
@@ -30,9 +30,9 @@
     http_archive_or_local(
         name = "com_google_absl",
         local = absl,
-        sha256 = "1da554cf5670fc119ef5afbeb31d10d51e7554df9dced2967663e679b8d852ed",
-        strip_prefix = "abseil-cpp-e854df09dfcb35056c1d42420028648ee0ebebaf",
-        url = "https://github.com/abseil/abseil-cpp/archive/e854df09dfcb35056c1d42420028648ee0ebebaf.tar.gz",
+        sha256 = "59d2976af9d6ecf001a81a35749a6e551a335b949d34918cfade07737b9d93c5",
+        strip_prefix = "abseil-cpp-20230802.0",
+        url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz",
     )
 
     http_archive_or_local(