From 291ba02693e4a0dcda1fd83c266758d4e2a6b0ba Mon Sep 17 00:00:00 2001 From: dm4 Date: Thu, 27 Apr 2023 06:09:18 +0000 Subject: [PATCH 01/30] Resolves: 2176824 - rebuild Signed-off-by: dm4 From 25da2d77291fa24a5347ff9452df385c42b22752 Mon Sep 17 00:00:00 2001 From: dm4 Date: Thu, 27 Apr 2023 14:47:00 +0000 Subject: [PATCH 02/30] Rebuild 0.12.0 From ae2836370476024ec2862dc250e9f3a24b7bbeb0 Mon Sep 17 00:00:00 2001 From: dm4 Date: Mon, 10 Jul 2023 07:37:45 +0000 Subject: [PATCH 03/30] Update release and changelog Signed-off-by: dm4 --- wasmedge.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wasmedge.spec b/wasmedge.spec index 7ec4fbd..24e590b 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -5,7 +5,7 @@ Name: wasmedge Version: %{version} -Release: %autorelease +Release: 1%{?dist} Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 License: ASL 2.0 and CC0 @@ -105,4 +105,5 @@ cd .. %{_libdir}/lib%{name}.so %changelog -%autochangelog +* Mon Jul 10 2023 dm4 - 0.13.1 +- Release 0.13.1 From 123cb5329345cdf4bfc7361220464ab5265c19c2 Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 21 Jul 2023 09:25:36 +0000 Subject: [PATCH 04/30] Update changelog Signed-off-by: dm4 --- wasmedge.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wasmedge.spec b/wasmedge.spec index 7763a74..c3b3999 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -105,5 +105,7 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Fri Jul 21 2023 dm4 - 0.13.2 +- Release 0.13.2 * Mon Jul 10 2023 dm4 - 0.13.1 - Release 0.13.1 From 3dada955a50391ab45dfe27853ef473ad0b05dda Mon Sep 17 00:00:00 2001 From: dm4 Date: Mon, 2 Oct 2023 06:33:02 +0000 Subject: [PATCH 05/30] Use llvm instead of llvm16 for epel9 Signed-off-by: dm4 --- wasmedge.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/wasmedge.spec b/wasmedge.spec index 62d3b4f..788ed74 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -15,12 +15,12 @@ Patch0: wasmedge-0.13.4-ggml.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git -BuildRequires: lld16-devel -BuildRequires: llvm16-devel +BuildRequires: lld-devel +BuildRequires: llvm-devel BuildRequires: ninja-build BuildRequires: spdlog-devel -Requires: lld16-libs -Requires: llvm16 +Requires: lld +Requires: llvm Requires: spdlog # Currently wasmedge could only be built on specific arches ExclusiveArch: x86_64 aarch64 @@ -59,11 +59,11 @@ This package contains necessary header files for %{reponame} development. [ -f VERSION ] || echo -n %{version} > VERSION %build -%cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DLLVM_DIR=/usr/lib64/llvm16/lib/cmake/llvm +%cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF %cmake_build mkdir rt cd rt -%cmake -S .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DWASMEDGE_BUILD_AOT_RUNTIME=OFF -DLLVM_DIR=/usr/lib64/llvm16/lib/cmake/llvm +%cmake -S .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DWASMEDGE_BUILD_AOT_RUNTIME=OFF %cmake_build %install From 37caa1eb0a8701d355ea30d7925055a2e75bc1a4 Mon Sep 17 00:00:00 2001 From: dm4 Date: Tue, 14 Nov 2023 10:18:36 +0000 Subject: [PATCH 06/30] Update changelog Signed-off-by: dm4 --- wasmedge.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wasmedge.spec b/wasmedge.spec index 4635e6c..d415fbf 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -104,6 +104,8 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Tue Nov 14 2023 dm4 - 0.13.5 +- Release 0.13.5 * Fri Jul 21 2023 dm4 - 0.13.2 - Release 0.13.2 * Mon Jul 10 2023 dm4 - 0.13.1 From a7ab1b1a39154917b4015b408db7b86a6aaeb215 Mon Sep 17 00:00:00 2001 From: dm4 Date: Thu, 30 May 2024 12:53:59 +0000 Subject: [PATCH 07/30] Update changelog Signed-off-by: dm4 --- wasmedge.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wasmedge.spec b/wasmedge.spec index c1ea903..1047a15 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -104,6 +104,8 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Thu May 30 2024 dm4 - 0.14.0 +- Release 0.14.0 * Tue Nov 14 2023 dm4 - 0.13.5 - Release 0.13.5 * Fri Jul 21 2023 dm4 - 0.13.2 From 454c01e6dbe6b182e9ccc6d2414d5b9f0228b239 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 15 Jul 2024 21:49:01 +0800 Subject: [PATCH 08/30] Rebuilt for fmt 11 --- ...ude-spdlog-fmt-ranges.h-for-fmt-join.patch | 44 +++++++++++++++++++ wasmedge.spec | 3 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch diff --git a/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch b/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch new file mode 100644 index 0000000..9ca8356 --- /dev/null +++ b/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch @@ -0,0 +1,44 @@ +From 678a226d58b656a21cd5c540fb222d86c0ef4479 Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Mon, 15 Jul 2024 22:48:28 +0800 +Subject: [PATCH] [Common] include spdlog/fmt/ranges.h for fmt::join() + +fmt::join() was moved into fmt/ranges.h, which is in turn included +by spdlog/fmt/ranges.h or spdlog/fmt/bundled/ranges.h, so let's +include either of them. + +this should address the build failure like: + +``` +/builddir/build/BUILD/wasmedge-0.14.0-build/wasmedge/lib/common/errinfo.cpp: In member function fmt::v11::context::iterator fmt::v11::formatter::format(const WasmEdge::ErrInfo::InfoMismatch&, fmt::v11::format_context&) const: +/builddir/build/BUILD/wasmedge-0.14.0-build/wasmedge/lib/common/errinfo.cpp:165:25: error: join is not a member of fmt + 165 | fmt::join(Info.ExpParams, " , "sv), + | ^~~~ +``` + +Signed-off-by: Kefu Chai +--- + lib/common/errinfo.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/common/errinfo.cpp b/lib/common/errinfo.cpp +index 188a1836..f1b75974 100644 +--- a/lib/common/errinfo.cpp ++++ b/lib/common/errinfo.cpp +@@ -5,6 +5,13 @@ + #include "common/errcode.h" + #include "common/hexstr.h" + ++#include ++#if __has_include() ++# include ++#else ++# include ++#endif ++ + using namespace std::literals; + + fmt::format_context::iterator +-- +2.45.2 + diff --git a/wasmedge.spec b/wasmedge.spec index 24d42a4..79620e9 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -11,6 +11,7 @@ Summary: High performance WebAssembly Virtual Machine License: ASL 2.0 and CC0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz +Patch0: 0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -54,7 +55,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} +%autosetup -p1 -n %{name} [ -f VERSION ] || echo -n %{version} > VERSION %build From 4306cab7086b259cdfd2feb67e04ad15b6db9457 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:08:02 +0000 Subject: [PATCH 09/30] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From ba35a54773813d3a82635410dea081dab110b925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Wed, 7 Aug 2024 10:20:12 +0200 Subject: [PATCH 10/30] convert license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- wasmedge.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wasmedge.spec b/wasmedge.spec index 79620e9..7715bbe 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -8,7 +8,8 @@ Version: %{version} Release: %autorelease Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 -License: ASL 2.0 and CC0 +# Automatically converted from old format: ASL 2.0 and CC0 - review is highly recommended. +License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz Patch0: 0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch From f2e7034a8d8952176dc428b2261a3146419062c7 Mon Sep 17 00:00:00 2001 From: dm4 Date: Wed, 23 Oct 2024 08:58:12 +0000 Subject: [PATCH 11/30] Release 0.14.1 Signed-off-by: dm4 --- .gitignore | 1 + ...ude-spdlog-fmt-ranges.h-for-fmt-join.patch | 44 ------------------- sources | 1 + wasmedge.spec | 17 ++++--- 4 files changed, 10 insertions(+), 53 deletions(-) delete mode 100644 0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch diff --git a/.gitignore b/.gitignore index c2b8f64..8db76ff 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /WasmEdge-0.13.4-src.tar.gz /WasmEdge-0.13.5-src.tar.gz /WasmEdge-0.14.0-src.tar.gz +/WasmEdge-0.14.1-src.tar.gz diff --git a/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch b/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch deleted file mode 100644 index 9ca8356..0000000 --- a/0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 678a226d58b656a21cd5c540fb222d86c0ef4479 Mon Sep 17 00:00:00 2001 -From: Kefu Chai -Date: Mon, 15 Jul 2024 22:48:28 +0800 -Subject: [PATCH] [Common] include spdlog/fmt/ranges.h for fmt::join() - -fmt::join() was moved into fmt/ranges.h, which is in turn included -by spdlog/fmt/ranges.h or spdlog/fmt/bundled/ranges.h, so let's -include either of them. - -this should address the build failure like: - -``` -/builddir/build/BUILD/wasmedge-0.14.0-build/wasmedge/lib/common/errinfo.cpp: In member function fmt::v11::context::iterator fmt::v11::formatter::format(const WasmEdge::ErrInfo::InfoMismatch&, fmt::v11::format_context&) const: -/builddir/build/BUILD/wasmedge-0.14.0-build/wasmedge/lib/common/errinfo.cpp:165:25: error: join is not a member of fmt - 165 | fmt::join(Info.ExpParams, " , "sv), - | ^~~~ -``` - -Signed-off-by: Kefu Chai ---- - lib/common/errinfo.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/lib/common/errinfo.cpp b/lib/common/errinfo.cpp -index 188a1836..f1b75974 100644 ---- a/lib/common/errinfo.cpp -+++ b/lib/common/errinfo.cpp -@@ -5,6 +5,13 @@ - #include "common/errcode.h" - #include "common/hexstr.h" - -+#include -+#if __has_include() -+# include -+#else -+# include -+#endif -+ - using namespace std::literals; - - fmt::format_context::iterator --- -2.45.2 - diff --git a/sources b/sources index b22ae72..cb688b1 100644 --- a/sources +++ b/sources @@ -10,3 +10,4 @@ SHA512 (WasmEdge-0.13.3-src.tar.gz) = b8b2e1974fd2ca5bfa0b10311812b69a2a0d2b9864 SHA512 (WasmEdge-0.13.4-src.tar.gz) = ec9b7d1d5eddeb263e4fd00b11e0cac8e11e73a00db0a53ef01ade13518841823274d5ad85be005a82cf8c58a5bec7a8ad6e54358abe4a784439692afbe43fcf SHA512 (WasmEdge-0.13.5-src.tar.gz) = 9d3ece45897d2c9bb3848662fc4ab36c2e0f178450b00f7ea7d183b7162d150d1306e1781b2542463993bab2ec6732def8d63be20ec192b18d93d98c537fb48a SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a885054f0830284bc71d559ab5263eefbbc564d88280b3907d5e3145ffeff87830eb13ad1f3fc4a599e4340 +SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 diff --git a/wasmedge.spec b/wasmedge.spec index 7715bbe..b62eade 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.14.0 +%global version 0.14.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.0 @@ -12,16 +12,15 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -Patch0: 0001-Common-include-spdlog-fmt-ranges.h-for-fmt-join.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git -BuildRequires: lld-devel -BuildRequires: llvm-devel +BuildRequires: lld18-devel +BuildRequires: llvm18-devel BuildRequires: ninja-build BuildRequires: spdlog-devel -Requires: lld -Requires: llvm +Requires: lld18 +Requires: llvm18 Requires: spdlog # Currently wasmedge could only be built on specific arches ExclusiveArch: x86_64 aarch64 @@ -56,15 +55,15 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -p1 -n %{name} +%autosetup -n %{name} [ -f VERSION ] || echo -n %{version} > VERSION %build -%cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF +%cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DLLVM_DIR=/usr/lib64/llvm18/lib/cmake/llvm %cmake_build mkdir rt cd rt -%cmake -S .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DWASMEDGE_BUILD_AOT_RUNTIME=OFF +%cmake -S .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF -DWASMEDGE_BUILD_TESTS=OFF -DWASMEDGE_BUILD_AOT_RUNTIME=OFF -DLLVM_DIR=/usr/lib64/llvm18/lib/cmake/llvm %cmake_build %install From 0ef2e38044f27421eef9193d6622493ef0af0637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 26 Nov 2024 10:25:08 +0100 Subject: [PATCH 12/30] Rebuilt for spdlog 1.15.0 From 3154e026f6c04fa178ba113142eeb960f0261090 Mon Sep 17 00:00:00 2001 From: Carl George Date: Tue, 26 Nov 2024 17:05:19 -0600 Subject: [PATCH 13/30] Rebuilt for LLVM 18 --- wasmedge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wasmedge.spec b/wasmedge.spec index 1047a15..98088ab 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -5,7 +5,7 @@ Name: wasmedge Version: %{version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 License: ASL 2.0 and CC0 @@ -104,6 +104,9 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Tue Nov 26 2024 Carl George - 0.14.0-2 +- Rebuilt for LLVM 18 + * Thu May 30 2024 dm4 - 0.14.0 - Release 0.14.0 * Tue Nov 14 2023 dm4 - 0.13.5 From e0d670ba2909c388514d5e520e6a335fc2d289f0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:46:01 +0000 Subject: [PATCH 14/30] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 930412cde4c3e4336dd8047e505c7f806fbd22c7 Mon Sep 17 00:00:00 2001 From: dm4 Date: Thu, 6 Feb 2025 08:10:28 +0000 Subject: [PATCH 15/30] Apply a patch to suppress deprecated warnings Signed-off-by: dm4 --- ...-deprecated-warning-in-ciso646-heade.patch | 31 +++++++++++++++++++ wasmedge.spec | 4 ++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch diff --git a/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch b/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch new file mode 100644 index 0000000..14802d3 --- /dev/null +++ b/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch @@ -0,0 +1,31 @@ +From 05c0693bb02e83f342af08ed27747be3bc761668 Mon Sep 17 00:00:00 2001 +From: Shen-Ta Hsieh +Date: Tue, 21 Jan 2025 13:19:23 +0800 +Subject: [PATCH] [LLVM] Ignore c++17 deprecated warning in header + +Signed-off-by: Shen-Ta Hsieh +--- + lib/llvm/llvm.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h +index b5e19745..9b08d97b 100644 +--- a/lib/llvm/llvm.h ++++ b/lib/llvm/llvm.h +@@ -2,6 +2,13 @@ + // SPDX-FileCopyrightText: 2019-2024 Second State INC + #pragma once + ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wcpp" ++#include ++#pragma GCC diagnostic pop ++#endif ++ + #include "common/errcode.h" + #include "common/span.h" + #include +-- +2.34.1 + diff --git a/wasmedge.spec b/wasmedge.spec index b62eade..27a3c76 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -12,6 +12,8 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz +# Patch from https://github.com/WasmEdge/WasmEdge/commit/05c0693bb02e83f342af08ed27747be3bc761668 +Patch0: 0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -55,7 +57,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} +%autosetup -n %{name} -p1 [ -f VERSION ] || echo -n %{version} > VERSION %build From 61b62f9e70ec510edc2a63f4e8d621c7a45269e1 Mon Sep 17 00:00:00 2001 From: Carl George Date: Fri, 18 Jul 2025 01:36:48 -0500 Subject: [PATCH 16/30] Rebuild for LLVM 19 In order to build wasmedge against LLVM 19 (now the default in RHEL 9), we must add a patch from upstream to remove some unused and deprecated functions. Resolves: rhbz#2381863 --- 0001-LLVM-Support-LLVM-19-3809.patch | 33 ++++++++++++++++++++++++++++ wasmedge.spec | 10 +++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 0001-LLVM-Support-LLVM-19-3809.patch diff --git a/0001-LLVM-Support-LLVM-19-3809.patch b/0001-LLVM-Support-LLVM-19-3809.patch new file mode 100644 index 0000000..6c937a5 --- /dev/null +++ b/0001-LLVM-Support-LLVM-19-3809.patch @@ -0,0 +1,33 @@ +From 0ada5daa015f9d4de831b84526693dbd1b7a1951 Mon Sep 17 00:00:00 2001 +From: "Shen-Ta Hsieh(BestSteve)" +Date: Tue, 1 Oct 2024 16:05:58 +0800 +Subject: [PATCH] [LLVM] Support LLVM 19 (#3809) + +* Remove unused and deprecated llvm-c functions + +Signed-off-by: Shen-Ta Hsieh +(cherry picked from commit 4e0f9f1118e278b41e9a02b0e7f42735955815f4) +--- + lib/llvm/llvm.h | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h +index 31ac95d4..5b278849 100644 +--- a/lib/llvm/llvm.h ++++ b/lib/llvm/llvm.h +@@ -1228,12 +1228,6 @@ public: + Value createNeg(Value V, const char *Name = "") noexcept { + return LLVMBuildNeg(Ref, V.unwrap(), Name); + } +- Value createNSWNeg(Value V, const char *Name = "") noexcept { +- return LLVMBuildNSWNeg(Ref, V.unwrap(), Name); +- } +- Value createNUWNeg(Value V, const char *Name = "") noexcept { +- return LLVMBuildNUWNeg(Ref, V.unwrap(), Name); +- } + Value createFNeg(Value V, const char *Name = "") noexcept { + return LLVMBuildFNeg(Ref, V.unwrap(), Name); + } +-- +2.50.1 + diff --git a/wasmedge.spec b/wasmedge.spec index 98088ab..3ca6347 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -5,12 +5,14 @@ Name: wasmedge Version: %{version} -Release: 2%{?dist} +Release: 3%{?dist} Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 License: ASL 2.0 and CC0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz +# https://github.com/WasmEdge/WasmEdge/pull/3809 +Patch0: 0001-LLVM-Support-LLVM-19-3809.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -54,7 +56,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} +%autosetup -p 1 -n %{name} [ -f VERSION ] || echo -n %{version} > VERSION %build @@ -104,6 +106,10 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Fri Jul 18 2025 Carl George - 0.14.0-3 +- Add upstream patch for LLVM 19 support +- Rebuild for LLVM 19 rhbz#2381863 + * Tue Nov 26 2024 Carl George - 0.14.0-2 - Rebuilt for LLVM 18 From 3af298da15b86f01ca453093c8220bc51f867091 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:17:42 +0000 Subject: [PATCH 17/30] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 59ca94a3ed38e0f995a8e559fbe3296c24edd95e Mon Sep 17 00:00:00 2001 From: dm4 Date: Tue, 16 Sep 2025 08:00:06 +0000 Subject: [PATCH 18/30] Release 0.15.0 Signed-off-by: dm4 --- .gitignore | 1 + sources | 1 + wasmedge.spec | 6 ++---- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 8db76ff..2010a24 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /WasmEdge-0.13.5-src.tar.gz /WasmEdge-0.14.0-src.tar.gz /WasmEdge-0.14.1-src.tar.gz +/WasmEdge-0.15.0-src.tar.gz diff --git a/sources b/sources index cb688b1..87a5719 100644 --- a/sources +++ b/sources @@ -11,3 +11,4 @@ SHA512 (WasmEdge-0.13.4-src.tar.gz) = ec9b7d1d5eddeb263e4fd00b11e0cac8e11e73a00d SHA512 (WasmEdge-0.13.5-src.tar.gz) = 9d3ece45897d2c9bb3848662fc4ab36c2e0f178450b00f7ea7d183b7162d150d1306e1781b2542463993bab2ec6732def8d63be20ec192b18d93d98c537fb48a SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a885054f0830284bc71d559ab5263eefbbc564d88280b3907d5e3145ffeff87830eb13ad1f3fc4a599e4340 SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 +SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd diff --git a/wasmedge.spec b/wasmedge.spec index 27a3c76..d566576 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.14.1 +%global version 0.15.0 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.0 @@ -12,8 +12,6 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Patch from https://github.com/WasmEdge/WasmEdge/commit/05c0693bb02e83f342af08ed27747be3bc761668 -Patch0: 0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -57,7 +55,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} -p1 +%autosetup -n %{name} [ -f VERSION ] || echo -n %{version} > VERSION %build From 07fa8c112727de9684f3e9ef147e7773cfb70bf5 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Mon, 15 Dec 2025 13:25:37 +0100 Subject: [PATCH 19/30] enable RISC-V 64-bit port --- wasmedge.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wasmedge.spec b/wasmedge.spec index d566576..4385c9a 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -23,7 +23,7 @@ Requires: lld18 Requires: llvm18 Requires: spdlog # Currently wasmedge could only be built on specific arches -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 riscv64 Provides: %{reponame} = %{version}-%{release} Provides: bundled(blake3) = 1.2.0 Provides: bundled(wasi-cpp-header) = 0.0.1 From 77dbafb03f89f1bd098a4823b34d93fdc46aa00b Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 2 Jan 2026 07:48:31 +0000 Subject: [PATCH 20/30] Remove the unused patch file Signed-off-by: dm4 --- ...-deprecated-warning-in-ciso646-heade.patch | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch diff --git a/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch b/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch deleted file mode 100644 index 14802d3..0000000 --- a/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 05c0693bb02e83f342af08ed27747be3bc761668 Mon Sep 17 00:00:00 2001 -From: Shen-Ta Hsieh -Date: Tue, 21 Jan 2025 13:19:23 +0800 -Subject: [PATCH] [LLVM] Ignore c++17 deprecated warning in header - -Signed-off-by: Shen-Ta Hsieh ---- - lib/llvm/llvm.h | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h -index b5e19745..9b08d97b 100644 ---- a/lib/llvm/llvm.h -+++ b/lib/llvm/llvm.h -@@ -2,6 +2,13 @@ - // SPDX-FileCopyrightText: 2019-2024 Second State INC - #pragma once - -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wcpp" -+#include -+#pragma GCC diagnostic pop -+#endif -+ - #include "common/errcode.h" - #include "common/span.h" - #include --- -2.34.1 - From 03061a817a0ac3ff9ac1e64ae3e9a5a51fa8e641 Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 2 Jan 2026 07:50:30 +0000 Subject: [PATCH 21/30] Backport fix for CVE-2025-22921 Signed-off-by: dm4 --- ...ne-the-overflow-detection-when-wrapp.patch | 52 +++++++++++++++++++ wasmedge.spec | 4 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch new file mode 100644 index 0000000..c332c3e --- /dev/null +++ b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch @@ -0,0 +1,52 @@ +From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 +From: YiYing He +Date: Wed, 17 Dec 2025 20:27:38 +0800 +Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping + memory instance + +Signed-off-by: YiYing He +--- + include/runtime/instance/memory.h | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h +index ce511a7b..9d849598 100644 +--- a/include/runtime/instance/memory.h ++++ b/include/runtime/instance/memory.h +@@ -241,14 +241,28 @@ public: + return reinterpret_cast(&DataPtr[Offset]); + } + +- /// Get array of object at specific offset of memory. ++ /// Get array of object with count at specific offset of memory. + template +- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { +- uint32_t ByteSize = static_cast(sizeof(T) * Size); +- if (unlikely(!checkAccessBound(Offset, ByteSize))) { ++ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { ++ uint32_t Size; ++#if defined(_MSC_VER) && !defined(__clang__) // MSVC ++ // Should extend for memory64 proposal. ++ uint64_t Num = ++ static_cast(sizeof(T)) * static_cast(Count); ++ if ((Num >> 32) != 0) { ++ return Span(); ++ } ++ Size = static_cast(Num); ++#else ++ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, ++ &Size))) { ++ return Span(); ++ } ++#endif ++ if (unlikely(!checkAccessBound(Offset, Size))) { + return Span(); + } +- return Span(reinterpret_cast(&DataPtr[Offset]), Size); ++ return Span(reinterpret_cast(&DataPtr[Offset]), Count); + } + + /// Get array of object at specific offset of memory. +-- +2.43.0 + diff --git a/wasmedge.spec b/wasmedge.spec index 4385c9a..7521160 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -12,6 +12,8 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz +# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 +Patch0: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -55,7 +57,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} +%autosetup -n %{name} -p1 [ -f VERSION ] || echo -n %{version} > VERSION %build From 13c66b86ec834acac63000935998f78afae5b0af Mon Sep 17 00:00:00 2001 From: dm4 Date: Mon, 5 Jan 2026 08:09:32 +0000 Subject: [PATCH 22/30] Backport fix for CVE-2025-22921 Resolves: rhbz#2426611 Signed-off-by: dm4 --- ...MXTypeKind-is-removed-in-LLVM20-4064.patch | 28 ++++ ...eat-aot-add-support-for-llvm-21-4361.patch | 135 ++++++++++++++++++ ...ne-the-overflow-detection-when-wrapp.patch | 52 +++++++ wasmedge.spec | 11 +- 4 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch create mode 100644 0001-feat-aot-add-support-for-llvm-21-4361.patch create mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch b/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch new file mode 100644 index 0000000..5a95793 --- /dev/null +++ b/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch @@ -0,0 +1,28 @@ +From b63e201d46452453ee7c2acf07967cd292d7e3da Mon Sep 17 00:00:00 2001 +From: hydai +Date: Wed, 19 Mar 2025 12:57:06 +0800 +Subject: [PATCH] [LLVM] LLVMX86_MMXTypeKind is removed in LLVM20 (#4064) + +Signed-off-by: hydai +--- + lib/llvm/llvm.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h +index 9b08d97b..7b0bb53e 100644 +--- a/lib/llvm/llvm.h ++++ b/lib/llvm/llvm.h +@@ -556,8 +556,10 @@ public: + return 128; + case LLVMPPC_FP128TypeKind: + return 128; ++#if LLVM_VERSION_MAJOR < 20 + case LLVMX86_MMXTypeKind: + return 64; ++#endif + case LLVMIntegerTypeKind: + return getIntegerBitWidth(); + case LLVMVectorTypeKind: +-- +2.43.0 + diff --git a/0001-feat-aot-add-support-for-llvm-21-4361.patch b/0001-feat-aot-add-support-for-llvm-21-4361.patch new file mode 100644 index 0000000..0dc039f --- /dev/null +++ b/0001-feat-aot-add-support-for-llvm-21-4361.patch @@ -0,0 +1,135 @@ +From b11791e4312445e3fd2d6c56acc9c2e36e12ef34 Mon Sep 17 00:00:00 2001 +From: "Shen-Ta Hsieh(BestSteve)" +Date: Thu, 11 Sep 2025 18:58:16 +0800 +Subject: [PATCH] feat(aot): add support for llvm 21 (#4361) + +Signed-off-by: Shen-Ta Hsieh +--- + lib/llvm/codegen.cpp | 2 +- + lib/llvm/compiler.cpp | 2 +- + lib/llvm/data.h | 15 +++++++++++++-- + lib/llvm/jit.cpp | 4 ++-- + lib/llvm/llvm.h | 15 +++++++++++---- + 5 files changed, 28 insertions(+), 10 deletions(-) + +diff --git a/lib/llvm/codegen.cpp b/lib/llvm/codegen.cpp +index 43b33cc7..2de0bdab 100644 +--- a/lib/llvm/codegen.cpp ++++ b/lib/llvm/codegen.cpp +@@ -505,7 +505,7 @@ namespace WasmEdge::LLVM { + + Expect CodeGen::codegen(Span WasmData, Data D, + std::filesystem::path OutputPath) noexcept { +- auto LLContext = D.extract().LLContext(); ++ auto LLContext = D.extract().getLLContext(); + auto &LLModule = D.extract().LLModule; + auto &TM = D.extract().TM; + std::filesystem::path LLPath(OutputPath); +diff --git a/lib/llvm/compiler.cpp b/lib/llvm/compiler.cpp +index ff564ff3..2441c8df 100644 +--- a/lib/llvm/compiler.cpp ++++ b/lib/llvm/compiler.cpp +@@ -5826,7 +5826,7 @@ Expect Compiler::compile(const AST::Module &Module) noexcept { + LLVM::Core::init(); + + LLVM::Data D; +- auto LLContext = D.extract().LLContext(); ++ auto LLContext = D.extract().getLLContext(); + auto &LLModule = D.extract().LLModule; + LLModule.setTarget(LLVM::getDefaultTargetTriple().unwrap()); + LLModule.addFlag(LLVMModuleFlagBehaviorError, "PIC Level"sv, 2); +diff --git a/lib/llvm/data.h b/lib/llvm/data.h +index 9ab1a525..c79585c0 100644 +--- a/lib/llvm/data.h ++++ b/lib/llvm/data.h +@@ -6,9 +6,20 @@ + #include "llvm/data.h" + + struct WasmEdge::LLVM::Data::DataContext { ++#if LLVM_VERSION_MAJOR >= 21 ++ LLVM::Context LLContext = LLVM::Context::create(); ++ LLVM::Context getLLContext() noexcept { return LLContext; } ++ LLVM::OrcThreadSafeContext getTSContext() noexcept { ++ return LLVM::OrcThreadSafeContext(LLContext); ++ } ++#else + LLVM::OrcThreadSafeContext TSContext; ++ LLVM::Context getLLContext() noexcept { return TSContext.getContext(); } ++ LLVM::OrcThreadSafeContext getTSContext() noexcept { ++ return std::move(TSContext); ++ } ++#endif + LLVM::Module LLModule; + LLVM::TargetMachine TM; +- DataContext() noexcept : TSContext(), LLModule(LLContext(), "wasm") {} +- LLVM::Context LLContext() noexcept { return TSContext.getContext(); } ++ DataContext() noexcept : LLModule(getLLContext(), "wasm") {} + }; +diff --git a/lib/llvm/jit.cpp b/lib/llvm/jit.cpp +index 9add6b51..4bf3cc80 100644 +--- a/lib/llvm/jit.cpp ++++ b/lib/llvm/jit.cpp +@@ -73,6 +73,7 @@ Expect> JIT::load(Data D) noexcept { + } + + auto &LLModule = D.extract().LLModule; ++ auto TSContext = D.extract().getTSContext(); + + if (Conf.getCompilerConfigure().isDumpIR()) { + if (auto ErrorMessage = LLModule.printModuleToFile("wasm-jit.ll")) { +@@ -82,8 +83,7 @@ Expect> JIT::load(Data D) noexcept { + + auto MainJD = J.getMainJITDylib(); + if (auto Err = J.addLLVMIRModule( +- MainJD, +- OrcThreadSafeModule(LLModule.release(), D.extract().TSContext))) { ++ MainJD, OrcThreadSafeModule(LLModule.release(), TSContext))) { + spdlog::error("{}"sv, Err.message().string_view()); + return Unexpect(ErrCode::Value::HostFuncError); + } +diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h +index a327b850..9498a22f 100644 +--- a/lib/llvm/llvm.h ++++ b/lib/llvm/llvm.h +@@ -266,9 +266,12 @@ public: + Context(const Context &) = default; + Context &operator=(const Context &) = default; + ++ static Context create() noexcept { return Context(LLVMContextCreate()); } ++ + constexpr operator bool() const noexcept { return Ref != nullptr; } + constexpr auto &unwrap() const noexcept { return Ref; } + constexpr auto &unwrap() noexcept { return Ref; } ++ LLVMContextRef release() noexcept { return std::exchange(Ref, nullptr); } + friend void swap(Context &LHS, Context &RHS) noexcept { + using std::swap; + swap(LHS.Ref, RHS.Ref); +@@ -2062,6 +2065,14 @@ public: + swap(*this, B); + return *this; + } ++#if LLVM_VERSION_MAJOR >= 21 ++ OrcThreadSafeContext(Context &C) noexcept ++ : Ref(LLVMOrcCreateNewThreadSafeContextFromLLVMContext(C.release())) {} ++#else ++ Context getContext() noexcept { ++ return LLVMOrcThreadSafeContextGetContext(Ref); ++ } ++#endif + + OrcThreadSafeContext() noexcept : Ref(LLVMOrcCreateNewThreadSafeContext()) {} + ~OrcThreadSafeContext() noexcept { LLVMOrcDisposeThreadSafeContext(Ref); } +@@ -2078,10 +2089,6 @@ public: + swap(LHS.Ref, RHS.Ref); + } + +- Context getContext() noexcept { +- return LLVMOrcThreadSafeContextGetContext(Ref); +- } +- + private: + LLVMOrcThreadSafeContextRef Ref = nullptr; + }; +-- +2.43.0 + diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch new file mode 100644 index 0000000..c332c3e --- /dev/null +++ b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch @@ -0,0 +1,52 @@ +From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 +From: YiYing He +Date: Wed, 17 Dec 2025 20:27:38 +0800 +Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping + memory instance + +Signed-off-by: YiYing He +--- + include/runtime/instance/memory.h | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h +index ce511a7b..9d849598 100644 +--- a/include/runtime/instance/memory.h ++++ b/include/runtime/instance/memory.h +@@ -241,14 +241,28 @@ public: + return reinterpret_cast(&DataPtr[Offset]); + } + +- /// Get array of object at specific offset of memory. ++ /// Get array of object with count at specific offset of memory. + template +- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { +- uint32_t ByteSize = static_cast(sizeof(T) * Size); +- if (unlikely(!checkAccessBound(Offset, ByteSize))) { ++ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { ++ uint32_t Size; ++#if defined(_MSC_VER) && !defined(__clang__) // MSVC ++ // Should extend for memory64 proposal. ++ uint64_t Num = ++ static_cast(sizeof(T)) * static_cast(Count); ++ if ((Num >> 32) != 0) { ++ return Span(); ++ } ++ Size = static_cast(Num); ++#else ++ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, ++ &Size))) { ++ return Span(); ++ } ++#endif ++ if (unlikely(!checkAccessBound(Offset, Size))) { + return Span(); + } +- return Span(reinterpret_cast(&DataPtr[Offset]), Size); ++ return Span(reinterpret_cast(&DataPtr[Offset]), Count); + } + + /// Get array of object at specific offset of memory. +-- +2.43.0 + diff --git a/wasmedge.spec b/wasmedge.spec index 3ca6347..bbf3131 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -5,7 +5,7 @@ Name: wasmedge Version: %{version} -Release: 3%{?dist} +Release: 4%{?dist} Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 License: ASL 2.0 and CC0 @@ -13,6 +13,12 @@ URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz # https://github.com/WasmEdge/WasmEdge/pull/3809 Patch0: 0001-LLVM-Support-LLVM-19-3809.patch +# Patch from https://github.com/WasmEdge/WasmEdge/commit/b63e201d46452453ee7c2acf07967cd292d7e3da +Patch1: 0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch +# Patch from https://github.com/WasmEdge/WasmEdge/commit/b11791e4312445e3fd2d6c56acc9c2e36e12ef34 +Patch2: 0001-feat-aot-add-support-for-llvm-21-4361.patch +# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 +Patch3: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -106,6 +112,9 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Mon Jan 05 2026 dm4 - 0.14.0-4 +- Backport fix for CVE-2025-22921 + * Fri Jul 18 2025 Carl George - 0.14.0-3 - Add upstream patch for LLVM 19 support - Rebuild for LLVM 19 rhbz#2381863 From 77d3cb82a2156debec78d325788281d785b52a41 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:07:26 +0000 Subject: [PATCH 23/30] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 2deb44698f7b7a165a2e4fefadcb3a351f8921b9 Mon Sep 17 00:00:00 2001 From: hydai Date: Thu, 29 Jan 2026 10:57:10 +0000 Subject: [PATCH 24/30] Release 0.16.1 Signed-off-by: hydai --- .gitignore | 1 + ...ng-to-use-pointer-instead-of-wrapper.patch | 131 ++++++++++++++++++ ...ne-the-overflow-detection-when-wrapp.patch | 52 ------- sources | 1 + wasmedge.spec | 19 ++- 5 files changed, 149 insertions(+), 55 deletions(-) create mode 100644 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch delete mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/.gitignore b/.gitignore index 2010a24..f7f5b05 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /WasmEdge-0.14.0-src.tar.gz /WasmEdge-0.14.1-src.tar.gz /WasmEdge-0.15.0-src.tar.gz +/WasmEdge-0.16.1-src.tar.gz diff --git a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch new file mode 100644 index 0000000..bc373d6 --- /dev/null +++ b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch @@ -0,0 +1,131 @@ +From 3b9c754fbe96289452ef76951e783e5a7d7eacc7 Mon Sep 17 00:00:00 2001 +From: "Wang-Yang, Li" <7088579+LFsWang@users.noreply.github.com> +Date: Tue, 13 Jan 2026 01:24:29 +0800 +Subject: [PATCH] fix: refactor Poller context handling to use pointer instead + of wrapper (#4509) + +fix: refactor Poller context handling to use direct reference instead of wrapper + +Signed-off-by: LFsWang +--- + include/host/wasi/environ.h | 2 +- + include/host/wasi/inode.h | 2 +- + lib/host/wasi/inode-linux.cpp | 12 ++++++------ + lib/host/wasi/inode-macos.cpp | 2 +- + lib/host/wasi/inode-win.cpp | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/include/host/wasi/environ.h b/include/host/wasi/environ.h +index 83783a2b..2e2f3b97 100644 +--- a/include/host/wasi/environ.h ++++ b/include/host/wasi/environ.h +@@ -1284,7 +1284,7 @@ public: + void close(std::shared_ptr Node) noexcept { VPoller::close(Node); } + + private: +- Environ &env() noexcept { return static_cast(Ctx.get()); } ++ Environ &env() noexcept { return static_cast(*Ctx); } + }; + + inline WasiExpect +diff --git a/include/host/wasi/inode.h b/include/host/wasi/inode.h +index 758cdb03..15bad334 100644 +--- a/include/host/wasi/inode.h ++++ b/include/host/wasi/inode.h +@@ -911,7 +911,7 @@ public: + bool ok() noexcept; + + protected: +- std::reference_wrapper Ctx; ++ PollerContext *Ctx; + + private: + Span<__wasi_event_t> WasiEvents; +diff --git a/lib/host/wasi/inode-linux.cpp b/lib/host/wasi/inode-linux.cpp +index 01c0e290..e6875a19 100644 +--- a/lib/host/wasi/inode-linux.cpp ++++ b/lib/host/wasi/inode-linux.cpp +@@ -1592,7 +1592,7 @@ Poller::Poller(PollerContext &C) noexcept + ::epoll_create(32) + #endif + ), +- Ctx(C) { ++ Ctx(&C) { + #if !__GLIBC_PREREQ(2, 9) + if (auto Res = ::fcntl(Fd, F_SETFD, FD_CLOEXEC); unlikely(Res != 0)) { + FdHolder::reset(); +@@ -1623,7 +1623,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + Event.userdata = UserData; + Event.type = __WASI_EVENTTYPE_CLOCK; + +- if (auto Res = Ctx.get().acquireTimer(Clock); unlikely(!Res)) { ++ if (auto Res = Ctx->acquireTimer(Clock); unlikely(!Res)) { + Event.Valid = true; + Event.error = Res.error(); + return; +@@ -1633,7 +1633,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + + auto &Timer = Timers.back(); + if (auto Res = Timer.setTime(Timeout, Precision, Flags); unlikely(!Res)) { +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = Res.error(); +@@ -1657,7 +1657,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + if (auto Res = ::epoll_ctl(Fd, EPOLL_CTL_ADD, Timer.Fd, &EPollEvent); + unlikely(Res < 0)) { + FdDatas.erase(Iter); +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = fromErrNo(errno); +@@ -1666,7 +1666,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + + return; + } catch (std::bad_alloc &) { +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = __WASI_ERRNO_NOMEM; +@@ -1895,7 +1895,7 @@ void Poller::wait() noexcept { + // `this` as the dummy parameter. + ::epoll_ctl(Fd, EPOLL_CTL_DEL, Timer.Fd, + reinterpret_cast(this)); +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + } + + std::swap(FdDatas, OldFdDatas); +diff --git a/lib/host/wasi/inode-macos.cpp b/lib/host/wasi/inode-macos.cpp +index a622f71a..bb9e57ff 100644 +--- a/lib/host/wasi/inode-macos.cpp ++++ b/lib/host/wasi/inode-macos.cpp +@@ -1392,7 +1392,7 @@ WasiExpect INode::updateStat() const noexcept { + return {}; + } + +-Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(C) {} ++Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(&C) {} + + WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { + WasiEvents = E; +diff --git a/lib/host/wasi/inode-win.cpp b/lib/host/wasi/inode-win.cpp +index f2b2a33a..b9f2cf27 100644 +--- a/lib/host/wasi/inode-win.cpp ++++ b/lib/host/wasi/inode-win.cpp +@@ -2179,7 +2179,7 @@ WasiExpect<__wasi_filesize_t> INode::filesize() const noexcept { + + bool INode::canBrowse() const noexcept { return SavedVFSFlags & VFS::Read; } + +-Poller::Poller(PollerContext &C) noexcept : Ctx(C) {} ++Poller::Poller(PollerContext &C) noexcept : Ctx(&C) {} + + WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { + WasiEvents = E; +-- +2.52.0 + + diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch deleted file mode 100644 index c332c3e..0000000 --- a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 -From: YiYing He -Date: Wed, 17 Dec 2025 20:27:38 +0800 -Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping - memory instance - -Signed-off-by: YiYing He ---- - include/runtime/instance/memory.h | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - -diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h -index ce511a7b..9d849598 100644 ---- a/include/runtime/instance/memory.h -+++ b/include/runtime/instance/memory.h -@@ -241,14 +241,28 @@ public: - return reinterpret_cast(&DataPtr[Offset]); - } - -- /// Get array of object at specific offset of memory. -+ /// Get array of object with count at specific offset of memory. - template -- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { -- uint32_t ByteSize = static_cast(sizeof(T) * Size); -- if (unlikely(!checkAccessBound(Offset, ByteSize))) { -+ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { -+ uint32_t Size; -+#if defined(_MSC_VER) && !defined(__clang__) // MSVC -+ // Should extend for memory64 proposal. -+ uint64_t Num = -+ static_cast(sizeof(T)) * static_cast(Count); -+ if ((Num >> 32) != 0) { -+ return Span(); -+ } -+ Size = static_cast(Num); -+#else -+ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, -+ &Size))) { -+ return Span(); -+ } -+#endif -+ if (unlikely(!checkAccessBound(Offset, Size))) { - return Span(); - } -- return Span(reinterpret_cast(&DataPtr[Offset]), Size); -+ return Span(reinterpret_cast(&DataPtr[Offset]), Count); - } - - /// Get array of object at specific offset of memory. --- -2.43.0 - diff --git a/sources b/sources index 87a5719..4c29ce3 100644 --- a/sources +++ b/sources @@ -12,3 +12,4 @@ SHA512 (WasmEdge-0.13.5-src.tar.gz) = 9d3ece45897d2c9bb3848662fc4ab36c2e0f178450 SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a885054f0830284bc71d559ab5263eefbbc564d88280b3907d5e3145ffeff87830eb13ad1f3fc4a599e4340 SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd +SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 diff --git a/wasmedge.spec b/wasmedge.spec index 7521160..9a61293 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.15.0 +%global version 0.16.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.0 @@ -12,8 +12,8 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 -Patch0: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +# Patch from https://github.com/WasmEdge/WasmEdge/commit/3b9c754fbe96289452ef76951e783e5a7d7eacc7 +Patch0: 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -104,6 +104,19 @@ cd .. %{_includedir}/%{name}/int128.h %{_includedir}/%{name}/version.h %{_includedir}/%{name}/wasmedge.h +%{_includedir}/%{name}/wasmedge_ast.h +%{_includedir}/%{name}/wasmedge_basic.h +%{_includedir}/%{name}/wasmedge_compiler.h +%{_includedir}/%{name}/wasmedge_configure.h +%{_includedir}/%{name}/wasmedge_context.h +%{_includedir}/%{name}/wasmedge_deprecated.h +%{_includedir}/%{name}/wasmedge_execution.h +%{_includedir}/%{name}/wasmedge_experimental.h +%{_includedir}/%{name}/wasmedge_instance.h +%{_includedir}/%{name}/wasmedge_plugin.h +%{_includedir}/%{name}/wasmedge_tools.h +%{_includedir}/%{name}/wasmedge_value.h +%{_includedir}/%{name}/wasmedge_vm.h %{_libdir}/lib%{name}.so %changelog From cf2bc7a4928a4765d46ccc850845941430af919d Mon Sep 17 00:00:00 2001 From: hydai Date: Tue, 2 Jun 2026 03:35:51 +0000 Subject: [PATCH 25/30] Release 0.17.0 - Bump C API library version (capi_version) to 0.1.1 - Drop Patch0: Poller context refactor merged upstream in 0.17.0 (WasmEdge/WasmEdge#4509) Signed-off-by: hydai --- .gitignore | 1 + ...ng-to-use-pointer-instead-of-wrapper.patch | 131 ------------------ sources | 1 + wasmedge.spec | 6 +- 4 files changed, 4 insertions(+), 135 deletions(-) delete mode 100644 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch diff --git a/.gitignore b/.gitignore index f7f5b05..00106bd 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /WasmEdge-0.14.1-src.tar.gz /WasmEdge-0.15.0-src.tar.gz /WasmEdge-0.16.1-src.tar.gz +/WasmEdge-0.17.0-src.tar.gz diff --git a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch deleted file mode 100644 index bc373d6..0000000 --- a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 3b9c754fbe96289452ef76951e783e5a7d7eacc7 Mon Sep 17 00:00:00 2001 -From: "Wang-Yang, Li" <7088579+LFsWang@users.noreply.github.com> -Date: Tue, 13 Jan 2026 01:24:29 +0800 -Subject: [PATCH] fix: refactor Poller context handling to use pointer instead - of wrapper (#4509) - -fix: refactor Poller context handling to use direct reference instead of wrapper - -Signed-off-by: LFsWang ---- - include/host/wasi/environ.h | 2 +- - include/host/wasi/inode.h | 2 +- - lib/host/wasi/inode-linux.cpp | 12 ++++++------ - lib/host/wasi/inode-macos.cpp | 2 +- - lib/host/wasi/inode-win.cpp | 2 +- - 5 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/include/host/wasi/environ.h b/include/host/wasi/environ.h -index 83783a2b..2e2f3b97 100644 ---- a/include/host/wasi/environ.h -+++ b/include/host/wasi/environ.h -@@ -1284,7 +1284,7 @@ public: - void close(std::shared_ptr Node) noexcept { VPoller::close(Node); } - - private: -- Environ &env() noexcept { return static_cast(Ctx.get()); } -+ Environ &env() noexcept { return static_cast(*Ctx); } - }; - - inline WasiExpect -diff --git a/include/host/wasi/inode.h b/include/host/wasi/inode.h -index 758cdb03..15bad334 100644 ---- a/include/host/wasi/inode.h -+++ b/include/host/wasi/inode.h -@@ -911,7 +911,7 @@ public: - bool ok() noexcept; - - protected: -- std::reference_wrapper Ctx; -+ PollerContext *Ctx; - - private: - Span<__wasi_event_t> WasiEvents; -diff --git a/lib/host/wasi/inode-linux.cpp b/lib/host/wasi/inode-linux.cpp -index 01c0e290..e6875a19 100644 ---- a/lib/host/wasi/inode-linux.cpp -+++ b/lib/host/wasi/inode-linux.cpp -@@ -1592,7 +1592,7 @@ Poller::Poller(PollerContext &C) noexcept - ::epoll_create(32) - #endif - ), -- Ctx(C) { -+ Ctx(&C) { - #if !__GLIBC_PREREQ(2, 9) - if (auto Res = ::fcntl(Fd, F_SETFD, FD_CLOEXEC); unlikely(Res != 0)) { - FdHolder::reset(); -@@ -1623,7 +1623,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - Event.userdata = UserData; - Event.type = __WASI_EVENTTYPE_CLOCK; - -- if (auto Res = Ctx.get().acquireTimer(Clock); unlikely(!Res)) { -+ if (auto Res = Ctx->acquireTimer(Clock); unlikely(!Res)) { - Event.Valid = true; - Event.error = Res.error(); - return; -@@ -1633,7 +1633,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - - auto &Timer = Timers.back(); - if (auto Res = Timer.setTime(Timeout, Precision, Flags); unlikely(!Res)) { -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = Res.error(); -@@ -1657,7 +1657,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - if (auto Res = ::epoll_ctl(Fd, EPOLL_CTL_ADD, Timer.Fd, &EPollEvent); - unlikely(Res < 0)) { - FdDatas.erase(Iter); -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = fromErrNo(errno); -@@ -1666,7 +1666,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - - return; - } catch (std::bad_alloc &) { -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = __WASI_ERRNO_NOMEM; -@@ -1895,7 +1895,7 @@ void Poller::wait() noexcept { - // `this` as the dummy parameter. - ::epoll_ctl(Fd, EPOLL_CTL_DEL, Timer.Fd, - reinterpret_cast(this)); -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - } - - std::swap(FdDatas, OldFdDatas); -diff --git a/lib/host/wasi/inode-macos.cpp b/lib/host/wasi/inode-macos.cpp -index a622f71a..bb9e57ff 100644 ---- a/lib/host/wasi/inode-macos.cpp -+++ b/lib/host/wasi/inode-macos.cpp -@@ -1392,7 +1392,7 @@ WasiExpect INode::updateStat() const noexcept { - return {}; - } - --Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(C) {} -+Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(&C) {} - - WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { - WasiEvents = E; -diff --git a/lib/host/wasi/inode-win.cpp b/lib/host/wasi/inode-win.cpp -index f2b2a33a..b9f2cf27 100644 ---- a/lib/host/wasi/inode-win.cpp -+++ b/lib/host/wasi/inode-win.cpp -@@ -2179,7 +2179,7 @@ WasiExpect<__wasi_filesize_t> INode::filesize() const noexcept { - - bool INode::canBrowse() const noexcept { return SavedVFSFlags & VFS::Read; } - --Poller::Poller(PollerContext &C) noexcept : Ctx(C) {} -+Poller::Poller(PollerContext &C) noexcept : Ctx(&C) {} - - WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { - WasiEvents = E; --- -2.52.0 - - diff --git a/sources b/sources index 4c29ce3..d2f6a58 100644 --- a/sources +++ b/sources @@ -13,3 +13,4 @@ SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 +SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 diff --git a/wasmedge.spec b/wasmedge.spec index 9a61293..f5872c2 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,7 +1,7 @@ -%global version 0.16.1 +%global version 0.17.0 %global reponame WasmEdge %global capi_soname 0 -%global capi_version 0.1.0 +%global capi_version 0.1.1 Name: wasmedge Version: %{version} @@ -12,8 +12,6 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Patch from https://github.com/WasmEdge/WasmEdge/commit/3b9c754fbe96289452ef76951e783e5a7d7eacc7 -Patch0: 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git From 541592170b7484f8b374b8689e7b143de4c0ea6a Mon Sep 17 00:00:00 2001 From: hydai Date: Tue, 2 Jun 2026 07:49:39 +0000 Subject: [PATCH 26/30] Release 0.17.0 Signed-off-by: hydai --- .gitignore | 1 + 0001-Build-with-fmt-8-and-older-spdlog.patch | 55 +++++++ ...MXTypeKind-is-removed-in-LLVM20-4064.patch | 28 ---- 0001-LLVM-Support-LLVM-19-3809.patch | 33 ----- ...eat-aot-add-support-for-llvm-21-4361.patch | 135 ------------------ ...ne-the-overflow-detection-when-wrapp.patch | 52 ------- sources | 13 +- wasmedge.spec | 34 +++-- 8 files changed, 80 insertions(+), 271 deletions(-) create mode 100644 0001-Build-with-fmt-8-and-older-spdlog.patch delete mode 100644 0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch delete mode 100644 0001-LLVM-Support-LLVM-19-3809.patch delete mode 100644 0001-feat-aot-add-support-for-llvm-21-4361.patch delete mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/.gitignore b/.gitignore index c2b8f64..f3840fc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /WasmEdge-0.13.4-src.tar.gz /WasmEdge-0.13.5-src.tar.gz /WasmEdge-0.14.0-src.tar.gz +/WasmEdge-0.17.0-src.tar.gz diff --git a/0001-Build-with-fmt-8-and-older-spdlog.patch b/0001-Build-with-fmt-8-and-older-spdlog.patch new file mode 100644 index 0000000..eac4752 --- /dev/null +++ b/0001-Build-with-fmt-8-and-older-spdlog.patch @@ -0,0 +1,55 @@ +diff --git a/include/common/int128.h b/include/common/int128.h +index 40f49e727..d26ad3011 100644 +--- a/include/common/int128.h ++++ b/include/common/int128.h +@@ -555,6 +555,7 @@ using uint128_t = uint128; + #include + + FMT_BEGIN_NAMESPACE ++#if FMT_VERSION >= 90000 + namespace detail { + inline constexpr bool operator>=(detail::uint128_fallback LHS, + unsigned int RHS) { +@@ -668,6 +669,7 @@ FMT_CONSTEXPR20 inline int count_digits(detail::uint128_fallback N) { + } + + } // namespace detail ++#endif + + template struct formatter { + private: +diff --git a/lib/common/spdlog.cpp b/lib/common/spdlog.cpp +index 39ba477bb..39f6a7ff8 100644 +--- a/lib/common/spdlog.cpp ++++ b/lib/common/spdlog.cpp +@@ -9,7 +9,30 @@ + // https://github.com/gabime/spdlog/pull/3198 + #pragma clang diagnostic ignored "-Wextra-semi" + #endif ++#if __has_include() + #include ++#else ++// Fallback for spdlog without callback_sink.h (e.g. RHEL 9 / EPEL 9 spdlog 1.10). ++#include ++#include ++#include ++namespace spdlog::sinks { ++template class callback_sink final : public base_sink { ++public: ++ explicit callback_sink( ++ std::function Callback) ++ : Cb(std::move(Callback)) {} ++ ++protected: ++ void sink_it_(const details::log_msg &Msg) override { Cb(Msg); } ++ void flush_() override {} ++ ++private: ++ std::function Cb; ++}; ++using callback_sink_mt = callback_sink; ++} // namespace spdlog::sinks ++#endif + #if defined(__clang_major__) && __clang_major__ >= 10 + #pragma clang diagnostic pop + #endif diff --git a/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch b/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch deleted file mode 100644 index 5a95793..0000000 --- a/0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b63e201d46452453ee7c2acf07967cd292d7e3da Mon Sep 17 00:00:00 2001 -From: hydai -Date: Wed, 19 Mar 2025 12:57:06 +0800 -Subject: [PATCH] [LLVM] LLVMX86_MMXTypeKind is removed in LLVM20 (#4064) - -Signed-off-by: hydai ---- - lib/llvm/llvm.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h -index 9b08d97b..7b0bb53e 100644 ---- a/lib/llvm/llvm.h -+++ b/lib/llvm/llvm.h -@@ -556,8 +556,10 @@ public: - return 128; - case LLVMPPC_FP128TypeKind: - return 128; -+#if LLVM_VERSION_MAJOR < 20 - case LLVMX86_MMXTypeKind: - return 64; -+#endif - case LLVMIntegerTypeKind: - return getIntegerBitWidth(); - case LLVMVectorTypeKind: --- -2.43.0 - diff --git a/0001-LLVM-Support-LLVM-19-3809.patch b/0001-LLVM-Support-LLVM-19-3809.patch deleted file mode 100644 index 6c937a5..0000000 --- a/0001-LLVM-Support-LLVM-19-3809.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0ada5daa015f9d4de831b84526693dbd1b7a1951 Mon Sep 17 00:00:00 2001 -From: "Shen-Ta Hsieh(BestSteve)" -Date: Tue, 1 Oct 2024 16:05:58 +0800 -Subject: [PATCH] [LLVM] Support LLVM 19 (#3809) - -* Remove unused and deprecated llvm-c functions - -Signed-off-by: Shen-Ta Hsieh -(cherry picked from commit 4e0f9f1118e278b41e9a02b0e7f42735955815f4) ---- - lib/llvm/llvm.h | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h -index 31ac95d4..5b278849 100644 ---- a/lib/llvm/llvm.h -+++ b/lib/llvm/llvm.h -@@ -1228,12 +1228,6 @@ public: - Value createNeg(Value V, const char *Name = "") noexcept { - return LLVMBuildNeg(Ref, V.unwrap(), Name); - } -- Value createNSWNeg(Value V, const char *Name = "") noexcept { -- return LLVMBuildNSWNeg(Ref, V.unwrap(), Name); -- } -- Value createNUWNeg(Value V, const char *Name = "") noexcept { -- return LLVMBuildNUWNeg(Ref, V.unwrap(), Name); -- } - Value createFNeg(Value V, const char *Name = "") noexcept { - return LLVMBuildFNeg(Ref, V.unwrap(), Name); - } --- -2.50.1 - diff --git a/0001-feat-aot-add-support-for-llvm-21-4361.patch b/0001-feat-aot-add-support-for-llvm-21-4361.patch deleted file mode 100644 index 0dc039f..0000000 --- a/0001-feat-aot-add-support-for-llvm-21-4361.patch +++ /dev/null @@ -1,135 +0,0 @@ -From b11791e4312445e3fd2d6c56acc9c2e36e12ef34 Mon Sep 17 00:00:00 2001 -From: "Shen-Ta Hsieh(BestSteve)" -Date: Thu, 11 Sep 2025 18:58:16 +0800 -Subject: [PATCH] feat(aot): add support for llvm 21 (#4361) - -Signed-off-by: Shen-Ta Hsieh ---- - lib/llvm/codegen.cpp | 2 +- - lib/llvm/compiler.cpp | 2 +- - lib/llvm/data.h | 15 +++++++++++++-- - lib/llvm/jit.cpp | 4 ++-- - lib/llvm/llvm.h | 15 +++++++++++---- - 5 files changed, 28 insertions(+), 10 deletions(-) - -diff --git a/lib/llvm/codegen.cpp b/lib/llvm/codegen.cpp -index 43b33cc7..2de0bdab 100644 ---- a/lib/llvm/codegen.cpp -+++ b/lib/llvm/codegen.cpp -@@ -505,7 +505,7 @@ namespace WasmEdge::LLVM { - - Expect CodeGen::codegen(Span WasmData, Data D, - std::filesystem::path OutputPath) noexcept { -- auto LLContext = D.extract().LLContext(); -+ auto LLContext = D.extract().getLLContext(); - auto &LLModule = D.extract().LLModule; - auto &TM = D.extract().TM; - std::filesystem::path LLPath(OutputPath); -diff --git a/lib/llvm/compiler.cpp b/lib/llvm/compiler.cpp -index ff564ff3..2441c8df 100644 ---- a/lib/llvm/compiler.cpp -+++ b/lib/llvm/compiler.cpp -@@ -5826,7 +5826,7 @@ Expect Compiler::compile(const AST::Module &Module) noexcept { - LLVM::Core::init(); - - LLVM::Data D; -- auto LLContext = D.extract().LLContext(); -+ auto LLContext = D.extract().getLLContext(); - auto &LLModule = D.extract().LLModule; - LLModule.setTarget(LLVM::getDefaultTargetTriple().unwrap()); - LLModule.addFlag(LLVMModuleFlagBehaviorError, "PIC Level"sv, 2); -diff --git a/lib/llvm/data.h b/lib/llvm/data.h -index 9ab1a525..c79585c0 100644 ---- a/lib/llvm/data.h -+++ b/lib/llvm/data.h -@@ -6,9 +6,20 @@ - #include "llvm/data.h" - - struct WasmEdge::LLVM::Data::DataContext { -+#if LLVM_VERSION_MAJOR >= 21 -+ LLVM::Context LLContext = LLVM::Context::create(); -+ LLVM::Context getLLContext() noexcept { return LLContext; } -+ LLVM::OrcThreadSafeContext getTSContext() noexcept { -+ return LLVM::OrcThreadSafeContext(LLContext); -+ } -+#else - LLVM::OrcThreadSafeContext TSContext; -+ LLVM::Context getLLContext() noexcept { return TSContext.getContext(); } -+ LLVM::OrcThreadSafeContext getTSContext() noexcept { -+ return std::move(TSContext); -+ } -+#endif - LLVM::Module LLModule; - LLVM::TargetMachine TM; -- DataContext() noexcept : TSContext(), LLModule(LLContext(), "wasm") {} -- LLVM::Context LLContext() noexcept { return TSContext.getContext(); } -+ DataContext() noexcept : LLModule(getLLContext(), "wasm") {} - }; -diff --git a/lib/llvm/jit.cpp b/lib/llvm/jit.cpp -index 9add6b51..4bf3cc80 100644 ---- a/lib/llvm/jit.cpp -+++ b/lib/llvm/jit.cpp -@@ -73,6 +73,7 @@ Expect> JIT::load(Data D) noexcept { - } - - auto &LLModule = D.extract().LLModule; -+ auto TSContext = D.extract().getTSContext(); - - if (Conf.getCompilerConfigure().isDumpIR()) { - if (auto ErrorMessage = LLModule.printModuleToFile("wasm-jit.ll")) { -@@ -82,8 +83,7 @@ Expect> JIT::load(Data D) noexcept { - - auto MainJD = J.getMainJITDylib(); - if (auto Err = J.addLLVMIRModule( -- MainJD, -- OrcThreadSafeModule(LLModule.release(), D.extract().TSContext))) { -+ MainJD, OrcThreadSafeModule(LLModule.release(), TSContext))) { - spdlog::error("{}"sv, Err.message().string_view()); - return Unexpect(ErrCode::Value::HostFuncError); - } -diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h -index a327b850..9498a22f 100644 ---- a/lib/llvm/llvm.h -+++ b/lib/llvm/llvm.h -@@ -266,9 +266,12 @@ public: - Context(const Context &) = default; - Context &operator=(const Context &) = default; - -+ static Context create() noexcept { return Context(LLVMContextCreate()); } -+ - constexpr operator bool() const noexcept { return Ref != nullptr; } - constexpr auto &unwrap() const noexcept { return Ref; } - constexpr auto &unwrap() noexcept { return Ref; } -+ LLVMContextRef release() noexcept { return std::exchange(Ref, nullptr); } - friend void swap(Context &LHS, Context &RHS) noexcept { - using std::swap; - swap(LHS.Ref, RHS.Ref); -@@ -2062,6 +2065,14 @@ public: - swap(*this, B); - return *this; - } -+#if LLVM_VERSION_MAJOR >= 21 -+ OrcThreadSafeContext(Context &C) noexcept -+ : Ref(LLVMOrcCreateNewThreadSafeContextFromLLVMContext(C.release())) {} -+#else -+ Context getContext() noexcept { -+ return LLVMOrcThreadSafeContextGetContext(Ref); -+ } -+#endif - - OrcThreadSafeContext() noexcept : Ref(LLVMOrcCreateNewThreadSafeContext()) {} - ~OrcThreadSafeContext() noexcept { LLVMOrcDisposeThreadSafeContext(Ref); } -@@ -2078,10 +2089,6 @@ public: - swap(LHS.Ref, RHS.Ref); - } - -- Context getContext() noexcept { -- return LLVMOrcThreadSafeContextGetContext(Ref); -- } -- - private: - LLVMOrcThreadSafeContextRef Ref = nullptr; - }; --- -2.43.0 - diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch deleted file mode 100644 index c332c3e..0000000 --- a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 -From: YiYing He -Date: Wed, 17 Dec 2025 20:27:38 +0800 -Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping - memory instance - -Signed-off-by: YiYing He ---- - include/runtime/instance/memory.h | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - -diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h -index ce511a7b..9d849598 100644 ---- a/include/runtime/instance/memory.h -+++ b/include/runtime/instance/memory.h -@@ -241,14 +241,28 @@ public: - return reinterpret_cast(&DataPtr[Offset]); - } - -- /// Get array of object at specific offset of memory. -+ /// Get array of object with count at specific offset of memory. - template -- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { -- uint32_t ByteSize = static_cast(sizeof(T) * Size); -- if (unlikely(!checkAccessBound(Offset, ByteSize))) { -+ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { -+ uint32_t Size; -+#if defined(_MSC_VER) && !defined(__clang__) // MSVC -+ // Should extend for memory64 proposal. -+ uint64_t Num = -+ static_cast(sizeof(T)) * static_cast(Count); -+ if ((Num >> 32) != 0) { -+ return Span(); -+ } -+ Size = static_cast(Num); -+#else -+ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, -+ &Size))) { -+ return Span(); -+ } -+#endif -+ if (unlikely(!checkAccessBound(Offset, Size))) { - return Span(); - } -- return Span(reinterpret_cast(&DataPtr[Offset]), Size); -+ return Span(reinterpret_cast(&DataPtr[Offset]), Count); - } - - /// Get array of object at specific offset of memory. --- -2.43.0 - diff --git a/sources b/sources index b22ae72..8bce1f5 100644 --- a/sources +++ b/sources @@ -1,12 +1 @@ -SHA512 (WasmEdge-0.10.1-src.tar.gz) = 56375a1198e9dd20a66e4baffd2932afbd125e652bb761bf2c4de31be7edfbdc50a6aad5f6cc9b83dc5838841e60d51e7420310d366d6fb860a0c32c97ecc3d3 -SHA512 (WasmEdge-0.11.0-src.tar.gz) = 4baadceca1f522123e1e8e1cb48657e4f39ccda6cc50731c8774bea833947bc6503b787c271498e604555ca261e01b933f27e257d7b0c94c258e371cc0171e66 -SHA512 (WasmEdge-0.11.1-src.tar.gz) = d5bf0d9b906adf0f8b6bb4bb0128b896552ce62b26f6c3ef351308f7f63c1e082acfe8c056b2013957a7a1e24959ce546c40ecb593a0a0d40df03f53e17b4570 -SHA512 (WasmEdge-0.11.2-src.tar.gz) = ebe10f564fdb142075fb39eea3b6e4e784db62d1a2bfdb84158036cb044510c20b77051f1f4279d5d220146a69dc97350da9799a57a06c6aa0b8e00d8714b685 -SHA512 (WasmEdge-0.12.0-src.tar.gz) = 23a87617a9c528f3639a6ccb51a8fce4e7ba4659591559ed7bba5350eb9270cae3adcad19e547c5699d74cbed2c55ad28ab684bbd5e759d782e431e9dd93ff8e -SHA512 (WasmEdge-0.12.1-src.tar.gz) = c81ddbe9925e8ea144381f3d999f8b19bfcfae91aa63328beeee1f3c5b002ce47157eee28d5323d3a7303806975417856d5ec497d1e60f59312f9dc47756c533 -SHA512 (WasmEdge-0.13.1-src.tar.gz) = 66739e02ffb9669b2545765bcbcf49845afa4e1b9f6d11d011363c11febb0aff4465a774dddd7b513568ff99c80490d76611b74d4d8bd510df7209a73f3abcb0 -SHA512 (WasmEdge-0.13.2-src.tar.gz) = 68038e39487fca9845da77e0ced3af5e36160a0aa458ddd0540d4dbb5d47e0e8f4e12582e9b1c57b371ba13218dcceef6bc44cbd2b76aab7626b0ada963cdba4 -SHA512 (WasmEdge-0.13.3-src.tar.gz) = b8b2e1974fd2ca5bfa0b10311812b69a2a0d2b9864c3d316e3134a08e0a08392cad2b83867e20cd7feeead2afabfa8be19079e690ded7ae9e9bdef41223fd7bd -SHA512 (WasmEdge-0.13.4-src.tar.gz) = ec9b7d1d5eddeb263e4fd00b11e0cac8e11e73a00db0a53ef01ade13518841823274d5ad85be005a82cf8c58a5bec7a8ad6e54358abe4a784439692afbe43fcf -SHA512 (WasmEdge-0.13.5-src.tar.gz) = 9d3ece45897d2c9bb3848662fc4ab36c2e0f178450b00f7ea7d183b7162d150d1306e1781b2542463993bab2ec6732def8d63be20ec192b18d93d98c537fb48a -SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a885054f0830284bc71d559ab5263eefbbc564d88280b3907d5e3145ffeff87830eb13ad1f3fc4a599e4340 +SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 diff --git a/wasmedge.spec b/wasmedge.spec index bbf3131..8817fca 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,24 +1,18 @@ -%global version 0.14.0 +%global version 0.17.0 %global reponame WasmEdge %global capi_soname 0 -%global capi_version 0.1.0 +%global capi_version 0.1.1 Name: wasmedge Version: %{version} -Release: 4%{?dist} +Release: 1%{?dist} Summary: High performance WebAssembly Virtual Machine # The entire source code is ASL 2.0 except LICENSE.spdx which is CC0 License: ASL 2.0 and CC0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# https://github.com/WasmEdge/WasmEdge/pull/3809 -Patch0: 0001-LLVM-Support-LLVM-19-3809.patch -# Patch from https://github.com/WasmEdge/WasmEdge/commit/b63e201d46452453ee7c2acf07967cd292d7e3da -Patch1: 0001-LLVM-LLVMX86_MMXTypeKind-is-removed-in-LLVM20-4064.patch -# Patch from https://github.com/WasmEdge/WasmEdge/commit/b11791e4312445e3fd2d6c56acc9c2e36e12ef34 -Patch2: 0001-feat-aot-add-support-for-llvm-21-4361.patch -# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 -Patch3: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +# Downstream: build against RHEL 9 fmt 8 / spdlog 1.10 (no callback_sink) +Patch0: 0001-Build-with-fmt-8-and-older-spdlog.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -109,9 +103,27 @@ cd .. %{_includedir}/%{name}/int128.h %{_includedir}/%{name}/version.h %{_includedir}/%{name}/wasmedge.h +%{_includedir}/%{name}/wasmedge_ast.h +%{_includedir}/%{name}/wasmedge_basic.h +%{_includedir}/%{name}/wasmedge_compiler.h +%{_includedir}/%{name}/wasmedge_configure.h +%{_includedir}/%{name}/wasmedge_context.h +%{_includedir}/%{name}/wasmedge_deprecated.h +%{_includedir}/%{name}/wasmedge_execution.h +%{_includedir}/%{name}/wasmedge_experimental.h +%{_includedir}/%{name}/wasmedge_instance.h +%{_includedir}/%{name}/wasmedge_plugin.h +%{_includedir}/%{name}/wasmedge_tools.h +%{_includedir}/%{name}/wasmedge_value.h +%{_includedir}/%{name}/wasmedge_vm.h %{_libdir}/lib%{name}.so %changelog +* Tue Jun 02 2026 hydai - 0.17.0-1 +- Update to 0.17.0 +- Drop downstream LLVM 19/20/21 and overflow patches (merged upstream) +- Add downstream patch to build against RHEL 9 fmt 8 / spdlog 1.10 + * Mon Jan 05 2026 dm4 - 0.14.0-4 - Backport fix for CVE-2025-22921 From bc89d47d1c0d1db901de1332f9e4566b0350d443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Thu, 25 Jun 2026 12:41:53 +0200 Subject: [PATCH 27/30] Rebuilt for fmt/spdlog From 413625c1895968401528049c162ae5c39e5d4d2c Mon Sep 17 00:00:00 2001 From: hydai Date: Mon, 6 Jul 2026 13:04:14 +0000 Subject: [PATCH 28/30] Release 0.17.1 Signed-off-by: hydai --- .gitignore | 1 + sources | 1 + wasmedge.spec | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 00106bd..5430012 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /WasmEdge-0.15.0-src.tar.gz /WasmEdge-0.16.1-src.tar.gz /WasmEdge-0.17.0-src.tar.gz +/WasmEdge-0.17.1-src.tar.gz diff --git a/sources b/sources index d2f6a58..761ab14 100644 --- a/sources +++ b/sources @@ -14,3 +14,4 @@ SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e939 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 +SHA512 (WasmEdge-0.17.1-src.tar.gz) = b5f1d7cde7fee8f43dff972135fb49489c0e752cd364aa13ecb15b7ccd0d81579ac2552d3e3a8f6f5a870313eda640010f833869a0089677a3c8d76476e0fbed diff --git a/wasmedge.spec b/wasmedge.spec index f5872c2..e6fb415 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.17.0 +%global version 0.17.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.1 From a3a777e1790f519cfe858f0adcd531f4c6a213de Mon Sep 17 00:00:00 2001 From: hydai Date: Mon, 6 Jul 2026 15:30:48 +0000 Subject: [PATCH 29/30] Update to 0.17.1 Signed-off-by: hydai --- .gitignore | 1 + 0001-Build-with-fmt-8-and-older-spdlog.patch | 55 -------------------- sources | 2 +- wasmedge.spec | 8 +-- 4 files changed, 7 insertions(+), 59 deletions(-) delete mode 100644 0001-Build-with-fmt-8-and-older-spdlog.patch diff --git a/.gitignore b/.gitignore index f3840fc..735c80f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /WasmEdge-0.13.5-src.tar.gz /WasmEdge-0.14.0-src.tar.gz /WasmEdge-0.17.0-src.tar.gz +/WasmEdge-0.17.1-src.tar.gz diff --git a/0001-Build-with-fmt-8-and-older-spdlog.patch b/0001-Build-with-fmt-8-and-older-spdlog.patch deleted file mode 100644 index eac4752..0000000 --- a/0001-Build-with-fmt-8-and-older-spdlog.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/include/common/int128.h b/include/common/int128.h -index 40f49e727..d26ad3011 100644 ---- a/include/common/int128.h -+++ b/include/common/int128.h -@@ -555,6 +555,7 @@ using uint128_t = uint128; - #include - - FMT_BEGIN_NAMESPACE -+#if FMT_VERSION >= 90000 - namespace detail { - inline constexpr bool operator>=(detail::uint128_fallback LHS, - unsigned int RHS) { -@@ -668,6 +669,7 @@ FMT_CONSTEXPR20 inline int count_digits(detail::uint128_fallback N) { - } - - } // namespace detail -+#endif - - template struct formatter { - private: -diff --git a/lib/common/spdlog.cpp b/lib/common/spdlog.cpp -index 39ba477bb..39f6a7ff8 100644 ---- a/lib/common/spdlog.cpp -+++ b/lib/common/spdlog.cpp -@@ -9,7 +9,30 @@ - // https://github.com/gabime/spdlog/pull/3198 - #pragma clang diagnostic ignored "-Wextra-semi" - #endif -+#if __has_include() - #include -+#else -+// Fallback for spdlog without callback_sink.h (e.g. RHEL 9 / EPEL 9 spdlog 1.10). -+#include -+#include -+#include -+namespace spdlog::sinks { -+template class callback_sink final : public base_sink { -+public: -+ explicit callback_sink( -+ std::function Callback) -+ : Cb(std::move(Callback)) {} -+ -+protected: -+ void sink_it_(const details::log_msg &Msg) override { Cb(Msg); } -+ void flush_() override {} -+ -+private: -+ std::function Cb; -+}; -+using callback_sink_mt = callback_sink; -+} // namespace spdlog::sinks -+#endif - #if defined(__clang_major__) && __clang_major__ >= 10 - #pragma clang diagnostic pop - #endif diff --git a/sources b/sources index 8bce1f5..8de4d16 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 +SHA512 (WasmEdge-0.17.1-src.tar.gz) = b5f1d7cde7fee8f43dff972135fb49489c0e752cd364aa13ecb15b7ccd0d81579ac2552d3e3a8f6f5a870313eda640010f833869a0089677a3c8d76476e0fbed diff --git a/wasmedge.spec b/wasmedge.spec index 8817fca..a03ac2b 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.17.0 +%global version 0.17.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.1 @@ -11,8 +11,6 @@ Summary: High performance WebAssembly Virtual Machine License: ASL 2.0 and CC0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Downstream: build against RHEL 9 fmt 8 / spdlog 1.10 (no callback_sink) -Patch0: 0001-Build-with-fmt-8-and-older-spdlog.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -119,6 +117,10 @@ cd .. %{_libdir}/lib%{name}.so %changelog +* Mon Jul 06 2026 hydai - 0.17.1-1 +- Update to 0.17.1 +- Drop 0001-Build-with-fmt-8-and-older-spdlog.patch; fmt/spdlog compat upstreamed + * Tue Jun 02 2026 hydai - 0.17.0-1 - Update to 0.17.0 - Drop downstream LLVM 19/20/21 and overflow patches (merged upstream) From bf32f63a71f1403a660f25ed3c3b41d045000429 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:41:38 +0000 Subject: [PATCH 30/30] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild