diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 8698951ad2..88d0dde561 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2020,11 +2020,11 @@ (define-public bloomberg-bde-tools
       (license license:asl2.0))))
 
 (define-public bloomberg-bde
-  (let ((commit "b6bcc0e24a5862bf77aea7edd831dedf50e21d64"))
+  (let ((commit "77a0f39d538c20ae28bece9a81cac99a9e1df95d"))
     (package
       (name "bloomberg-bde")
       ;; Recent releases are not tagged so commit must be used for checkout.
-      (version "3.98.0.0")
+      (version "3.118.0.1")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -2033,7 +2033,7 @@ (define-public bloomberg-bde
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0y3lipi1lj9qazgc935851r2qsx5aq3vvc4y52jq57riyz8wg3ma"))
+                  "0nw5clkc9yipd03kijh4c8lxi9zkxfxcjhszl1xzwvgz8xmpampf"))
                 (patches
                  (search-patches
                   "bloomberg-bde-cmake-module-path.patch"))
@@ -2050,26 +2050,28 @@ (define-public bloomberg-bde
                      (list "groups/bal/ball/ball_asyncfileobserver.t.cpp"
                            "groups/bal/ball/ball_fileobserver2.t.cpp"
                            "groups/bal/ball/ball_recordstringformatter.t.cpp"
+                           "groups/bal/balst/balst_stacktraceresolver_filehelper.t.cpp"
                            "groups/bal/balst/balst_stacktraceutil.t.cpp"
                            "groups/bdl/bdlmt/bdlmt_eventscheduler.t.cpp"
                            "groups/bdl/bdlmt/bdlmt_timereventscheduler.t.cpp"
                            "groups/bdl/bdls/bdls_filesystemutil.t.cpp"
+                           "groups/bsl/bslh/bslh_hash.t.cpp"
                            "groups/bsl/bslh/bslh_hashpair.t.cpp"
                            "groups/bsl/bsls/bsls_platform.t.cpp"
                            "groups/bsl/bsls/bsls_stackaddressutil.t.cpp"
                            "groups/bsl/bsls/bsls_stopwatch.t.cpp"
+                           "groups/bsl/bsls/bsls_timeutil.t.cpp"
+                           "groups/bsl/bslstl/bslstl_deque.1.t.cpp"
+                           "groups/bsl/bslstl/bslstl_deque.2.t.cpp"
+                           "groups/bsl/bslstl/bslstl_deque.3.t.cpp"
                            "groups/bsl/bslstl/bslstl_function_invokerutil.t.cpp"))
                     #t))))
       (build-system cmake-build-system)
       (arguments
        `(#:parallel-tests? #f           ; Test parallelism may fail inconsistently.
          ;; Set UFID to build shared libraries. Flag descriptions can be found at
-         ;; https://bloomberg.github.io/bde-tools/reference/bde_repo.html#ufid
-         #:configure-flags ,(match %current-system
-            ((or "i686-linux" "armhf-linux")
-             ''("-DUFID=opt_dbg_exc_mt_32_shr_cpp17"))
-            (_
-             ''("-DUFID=opt_dbg_exc_mt_64_shr_cpp17")))
+         ;; https://bloomberg.github.io/bde-tools/bbs/reference/bbs_build_configuration.html#ufid
+         #:configure-flags '("-DUFID=opt_dbg_exc_mt_64_shr_cpp20")
          #:phases
          (modify-phases %standard-phases
            ;; Explicitly build tests separate from the main build.
@@ -2089,6 +2091,8 @@ (define-public bloomberg-bde
 concepts (like dates and times), and building blocks for developing
 multi-threaded applications and network applications.")
       (home-page "https://github.com/bloomberg/bde")
+      ;; Out-of-memory on i686-linux, compile errors with non-x86.
+      (supported-systems '("x86_64-linux"))
       (license license:asl2.0))))
 
 (define-public gulrak-filesystem
diff --git a/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch b/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
index b08ca5eac0..7743863cf8 100644
--- a/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
+++ b/gnu/packages/patches/bloomberg-bde-cmake-module-path.patch
@@ -4,13 +4,11 @@ locating the bloomberg-bde-tools CMake modules.
 
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -1,8 +1,6 @@
- cmake_minimum_required(VERSION 3.15)
+@@ -14,6 +14,7 @@ else()
+     if (NOT CMAKE_MODULE_PATH)
+         message(FATAL "Please specify path to BDE cmake modules.")
+     endif()
++    string(REPLACE ":" "cmake/;" CMAKE_MODULE_PATH "$ENV{CMAKE_PREFIX_PATH}cmake/")
  
--if (NOT CMAKE_MODULE_PATH)
--    message(FATAL "Please specify path to BDE cmake modules.")
--endif()
-+string(REPLACE ":" "cmake/;" CMAKE_MODULE_PATH "$ENV{CMAKE_PREFIX_PATH}cmake/")
- 
- get_filename_component(repoName ${CMAKE_CURRENT_LIST_DIR} NAME)
+     include(bde_workspace)
  
