From 716a0246f695f74154cf594d3af3739e030c1986 Mon Sep 17 00:00:00 2001
From: Upgrade Helper <uh@not.set>
Date: Wed, 15 Oct 2025 08:20:17 +0000
Subject: [PATCH] fmt: upgrade 11.2.0 -> 12.0.0

---
 ...compilation-on-clang-21-libc-21-4477.patch | 46 -------------------
 ...01-Workaround-an-ABI-issue-in-spdlog.patch |  8 ++--
 .../fmt/{fmt_11.2.0.bb => fmt_12.0.0.bb}      |  5 +-
 3 files changed, 6 insertions(+), 53 deletions(-)
 delete mode 100644 meta/recipes-devtools/fmt/fmt/0001-Fix-compilation-on-clang-21-libc-21-4477.patch
 rename meta/recipes-devtools/fmt/{fmt_11.2.0.bb => fmt_12.0.0.bb} (79%)

diff --git a/meta/recipes-devtools/fmt/fmt/0001-Fix-compilation-on-clang-21-libc-21-4477.patch b/meta/recipes-devtools/fmt/fmt/0001-Fix-compilation-on-clang-21-libc-21-4477.patch
deleted file mode 100644
index 911fa90a40..0000000000
--- a/meta/recipes-devtools/fmt/fmt/0001-Fix-compilation-on-clang-21-libc-21-4477.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From f4345467fce7edbc6b36c3fa1cf197a67be617e2 Mon Sep 17 00:00:00 2001
-From: Remy Jette <remy@remyjette.com>
-Date: Sat, 21 Jun 2025 07:28:14 -0700
-Subject: [PATCH] Fix compilation on clang-21 / libc++-21 (#4477)
-
-`<cstdlib>` was not being included, so malloc and free were only declared
-via transitive includes. Some includes changed in the latest libc++-21
-build which broke fmt.
-
-Also changed `malloc`/`free` to `std::malloc` and `std::free`, as
-putting those symbols in the global namespace is optional for the
-implementation when including `<cstdlib>`.
-
-Upstream-Status: Backport [https://github.com/fmtlib/fmt/pull/4477]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/fmt/format.h | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-Index: fmt-11.2.0/include/fmt/format.h
-===================================================================
---- fmt-11.2.0.orig/include/fmt/format.h
-+++ fmt-11.2.0/include/fmt/format.h
-@@ -44,6 +44,7 @@
- #  include <cmath>    // std::signbit
- #  include <cstddef>  // std::byte
- #  include <cstdint>  // uint32_t
-+#  include <cstdlib>  // std::malloc, std::free
- #  include <cstring>  // std::memcpy
- #  include <limits>   // std::numeric_limits
- #  include <new>      // std::bad_alloc
-@@ -744,12 +745,12 @@ template <typename T> struct allocator {
- 
-   T* allocate(size_t n) {
-     FMT_ASSERT(n <= max_value<size_t>() / sizeof(T), "");
--    T* p = static_cast<T*>(malloc(n * sizeof(T)));
-+    T* p = static_cast<T*>(std::malloc(n * sizeof(T)));
-     if (!p) FMT_THROW(std::bad_alloc());
-     return p;
-   }
- 
--  void deallocate(T* p, size_t) { free(p); }
-+  void deallocate(T* p, size_t) { std::free(p); }
- };
- 
- }  // namespace detail
diff --git a/meta/recipes-devtools/fmt/fmt/0001-Workaround-an-ABI-issue-in-spdlog.patch b/meta/recipes-devtools/fmt/fmt/0001-Workaround-an-ABI-issue-in-spdlog.patch
index 3fe85d51ee..4c16f276d7 100644
--- a/meta/recipes-devtools/fmt/fmt/0001-Workaround-an-ABI-issue-in-spdlog.patch
+++ b/meta/recipes-devtools/fmt/fmt/0001-Workaround-an-ABI-issue-in-spdlog.patch
@@ -1,4 +1,4 @@
-From 5a5637c306c617ddb3726c76d3f7490a2dc0a5cd Mon Sep 17 00:00:00 2001
+From 87c2e1c02a463f0e9b9bf15d6575d81cc81ddf08 Mon Sep 17 00:00:00 2001
 From: Victor Zverovich <viz@meta.com>
 Date: Sat, 22 Mar 2025 06:57:04 -0700
 Subject: [PATCH] Workaround an ABI issue in spdlog
@@ -10,10 +10,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/include/fmt/format.h b/include/fmt/format.h
-index 287e7163..61cb2825 100644
+index c3a1bda0..1a1fd9d0 100644
 --- a/include/fmt/format.h
 +++ b/include/fmt/format.h
-@@ -774,7 +774,9 @@ enum { inline_buffer_size = 500 };
+@@ -781,7 +781,9 @@ enum { inline_buffer_size = 500 };
   * converted to `std::string` with `to_string(out)`.
   */
  template <typename T, size_t SIZE = inline_buffer_size,
@@ -24,7 +24,7 @@ index 287e7163..61cb2825 100644
  class basic_memory_buffer : public detail::buffer<T> {
   private:
    T store_[SIZE];
-@@ -2594,7 +2596,7 @@ class bigint {
+@@ -2734,7 +2736,7 @@ class bigint {
    }
  
   public:
diff --git a/meta/recipes-devtools/fmt/fmt_11.2.0.bb b/meta/recipes-devtools/fmt/fmt_12.0.0.bb
similarity index 79%
rename from meta/recipes-devtools/fmt/fmt_11.2.0.bb
rename to meta/recipes-devtools/fmt/fmt_12.0.0.bb
index fd5dc0c4ab..54e1bd8f3a 100644
--- a/meta/recipes-devtools/fmt/fmt_11.2.0.bb
+++ b/meta/recipes-devtools/fmt/fmt_12.0.0.bb
@@ -4,11 +4,10 @@ HOMEPAGE = "https://fmt.dev"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
 
-SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https;tag=${PV}\
+SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https;tag=${PV} \
            file://0001-Workaround-an-ABI-issue-in-spdlog.patch \
-           file://0001-Fix-compilation-on-clang-21-libc-21-4477.patch \
            "
-SRCREV = "40626af88bd7df9a5fb80be7b25ac85b122d6c21"
+SRCREV = "e424e3f2e607da02742f73db84873b8084fc714c"
 
 inherit cmake
 
-- 
2.47.1

