diff mbox series

[10/45] fmt: upgrade 12.1.0 -> 12.2.0

Message ID 20260706171701.70536-10-alex.kanavin@gmail.com
State New
Headers show
Series [01/45] selftest/locales: opt out of ptests in DISTRO_FEATURES | expand

Commit Message

Alexander Kanavin July 6, 2026, 5:16 p.m. UTC
From: Alexander Kanavin <alex@linutronix.de>

License-Update: clarify presence of fmt exception:
https://github.com/fmtlib/fmt/commit/91d1aced0a846161135310249664506b4a56e196

Backport a patch to address 32 bit x86 fails (which do not have a native int128 type).

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 ...ix-fallback-uint128-bitwise-not-4813.patch | 42 +++++++++++++++++++
 ...01-Workaround-an-ABI-issue-in-spdlog.patch |  8 ++--
 .../fmt/{fmt_12.1.0.bb => fmt_12.2.0.bb}      | 10 +++--
 3 files changed, 52 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-devtools/fmt/fmt/0001-Fix-fallback-uint128-bitwise-not-4813.patch
 rename meta/recipes-devtools/fmt/{fmt_12.1.0.bb => fmt_12.2.0.bb} (60%)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/fmt/fmt/0001-Fix-fallback-uint128-bitwise-not-4813.patch b/meta/recipes-devtools/fmt/fmt/0001-Fix-fallback-uint128-bitwise-not-4813.patch
new file mode 100644
index 0000000000..ef5c6e9f82
--- /dev/null
+++ b/meta/recipes-devtools/fmt/fmt/0001-Fix-fallback-uint128-bitwise-not-4813.patch
@@ -0,0 +1,42 @@ 
+From d838c8c7923730afb751350ecac2b169256f1445 Mon Sep 17 00:00:00 2001
+From: Vinay Kumar <vkslog69@gmail.com>
+Date: Thu, 18 Jun 2026 12:22:12 +0530
+Subject: [PATCH] Fix fallback uint128 bitwise not (#4813)
+
+Upstream-Status: Backport [https://github.com/fmtlib/fmt/commit/588b3a0f8f6a8bcf2a959cae882d5b2703e86737]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ include/fmt/format.h | 3 +++
+ test/format-test.cc  | 5 +++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/include/fmt/format.h b/include/fmt/format.h
+index f33c8b87..ca95f6df 100644
+--- a/include/fmt/format.h
++++ b/include/fmt/format.h
+@@ -326,6 +326,9 @@ class uint128 {
+       -> uint128 {
+     return {lhs.hi_ & rhs.hi_, lhs.lo_ & rhs.lo_};
+   }
++  friend constexpr auto operator~(const uint128& n) -> uint128 {
++    return {~n.hi_, ~n.lo_};
++  }
+   friend FMT_CONSTEXPR auto operator+(const uint128& lhs, const uint128& rhs)
+       -> uint128 {
+     auto result = uint128(lhs);
+diff --git a/test/format-test.cc b/test/format-test.cc
+index 61a53c72..7e48b751 100644
+--- a/test/format-test.cc
++++ b/test/format-test.cc
+@@ -81,6 +81,11 @@ TEST(uint128_test, minus) {
+   EXPECT_EQ(n - 2, 40);
+ }
+ 
++TEST(uint128_test, bitwise_not) {
++  auto n = ~uint128(0x123456789abcdef0, 0x0fedcba987654321);
++  EXPECT_EQ(n, uint128(0xedcba9876543210f, 0xf0123456789abcde));
++}
++
+ TEST(uint128_test, plus_assign) {
+   auto n = uint128(32);
+   n += uint128(10);
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 442506f834..afae644d49 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 32f4a4a634c99d4e00cc6149786a9180ad651f76 Mon Sep 17 00:00:00 2001
+From 6ee6b54766c50ae8df9478efd91075543e89f66e 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 4a653007..82f80efd 100644
+index 5044befd..f33c8b87 100644
 --- a/include/fmt/format.h
 +++ b/include/fmt/format.h
-@@ -793,7 +793,9 @@ enum { inline_buffer_size = 500 };
+@@ -774,7 +774,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 4a653007..82f80efd 100644
  class basic_memory_buffer : public detail::buffer<T> {
   private:
    T store_[SIZE];
-@@ -2746,7 +2748,7 @@ class bigint {
+@@ -2769,7 +2771,7 @@ class bigint {
    }
  
   public:
diff --git a/meta/recipes-devtools/fmt/fmt_12.1.0.bb b/meta/recipes-devtools/fmt/fmt_12.2.0.bb
similarity index 60%
rename from meta/recipes-devtools/fmt/fmt_12.1.0.bb
rename to meta/recipes-devtools/fmt/fmt_12.2.0.bb
index 22cab6f138..ca8fcb66ec 100644
--- a/meta/recipes-devtools/fmt/fmt_12.1.0.bb
+++ b/meta/recipes-devtools/fmt/fmt_12.2.0.bb
@@ -1,14 +1,16 @@ 
 SUMMARY = "open-source formatting library for C++"
 DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
 HOMEPAGE = "https://fmt.dev"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
+LICENSE = "MIT-with-fmt-exception"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec080902ed8f82f5a97ed13e8042634 \
+                    file://doc/LICENSE-exception;md5=b9257785fc4f3803a4b71b76c1412729"
 
-SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https;tag=${PV} \
+SRC_URI = "git://github.com/fmtlib/fmt;branch=main;protocol=https;tag=${PV} \
            file://0001-Workaround-an-ABI-issue-in-spdlog.patch \
            file://run-ptest \
+           file://0001-Fix-fallback-uint128-bitwise-not-4813.patch \
            "
-SRCREV = "407c905e45ad75fc29bf0f9bb7c5c2fd3475976f"
+SRCREV = "1be298e1bd68957e4cd352e1f676f00e07dcfb57"
 
 inherit cmake ptest