Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=c86221443....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 5ce9757b9218a8d7e8a55825da3f690222b0cb19
Author: Than Ngo <than(a)redhat.com>
Date: Wed Mar 8 08:21:13 2023 +0100
update to 111.0.5563.64
diff --git a/chromium-109-clang14-c++20-link-error.patch b/chromium-109-clang14-c++20-link-error.patch
deleted file mode 100644
index 530915c..0000000
--- a/chromium-109-clang14-c++20-link-error.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 chromium-109.0.5414.74/build/config/compiler/BUILD.gn
---- chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 2023-01-11 18:00:34.692512606 +0100
-+++ chromium-109.0.5414.74/build/config/compiler/BUILD.gn 2023-01-11 18:30:10.905410122 +0100
-@@ -601,12 +601,7 @@ config("compiler") {
- cflags_cc += [ "-fno-trigraphs" ]
- }
- } else if (is_clang) {
-- if (is_chromeos_device) {
-- # TODO(crbug.com/1392471): Support C++20 in CrOS toolchain.
-- cflags_cc += [ "-std=${standard_prefix}++17" ]
-- } else {
-- cflags_cc += [ "-std=${standard_prefix}++20" ]
-- }
-+ cflags_cc += [ "-std=${standard_prefix}++17" ]
- } else {
- # The gcc bots are currently using GCC 9, which is not new enough to
- # support "c++20"/"gnu++20".
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
new file mode 100644
index 0000000..31a4c1e
--- /dev/null
+++ b/chromium-110-limits.patch
@@ -0,0 +1,11 @@
+diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
+--- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
++++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+
+ #include <stddef.h>
++#include <limits>
+
+ #include <utility>
+
diff --git a/chromium.spec b/chromium.spec
index 44e9b54..23e3cae 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -241,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 111.0.5563.50
+Version: 111.0.5563.64
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -284,6 +284,9 @@ Patch20: chromium-disable-font-tests.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch52: chromium-81.0.4044.92-unbundle-zlib.patch
+# missing limits.h, error: no member named 'numeric_limits' in namespace 'std'
+Patch53: chromium-110-limits.patch
+
# ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared
Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch
@@ -352,10 +355,6 @@ Patch116: chromium-108-ffmpeg-first_dts.patch
# revert new-channel-layout-api on f36, old ffmpeg-free
Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
-# clang =< 14 and C++20, linker errors std::u16string
-# build failure on rhel and fedora 36
-Patch120: chromium-109-clang14-c++20-link-error.patch
-
# enable Qt
Patch121: chromium-108-enable-allowqt.patch
@@ -365,6 +364,7 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
+# Pagesize > 4kb
Patch146: chromium-110-LargerThan4k.patch
# VAAPI
@@ -904,6 +904,7 @@ udev.
%patch52 -p1 -b .unbundle-zlib
%endif
+%patch53 -p1 -b .limits-header
%patch56 -p1 -b .missing-cstdint
%patch57 -p1 -b .missing-cstring
@@ -953,10 +954,6 @@ udev.
%patch107 -p1 -b .el7-extra-operator-equalequal
%endif
-%if 0%{?rhel} || 0%{?fedora} == 36
-%patch120 -p1 -b .link-error-clang14
-%endif
-
%patch130 -p1 -b .VirtualCursor-std-layout
%patch146 -p1 -b .LargerThan4k
@@ -1137,6 +1134,11 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
+# clang =< 14 and C++20, linker errors std::u16string
+# build failure on rhel and fedora 36
+%if 0%{?rhel} || 0%{?fedora} == 36
+CHROMIUM_CORE_GN_DEFINES+=' use_cxx17=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1650,6 +1652,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Tue Mar 07 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.64-1
+- update to 111.0.5563.64
+
* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/sources b/sources
index 7f2d4f8..0510b02 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
+SHA512 (chromium-111.0.5563.64-clean.tar.xz) = c31c672d5f301cacdb3357337ffb369e63b7d25b031e124798fb04a0c845b178b23fdffec2647b8bedc90a1482d249d64926e98a18eb21399873a0d23c3cda98
commit fc64fd023d2cd6227b0cad37ce127ccc4e1716df
Merge: c862214 90d57b6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Mar 7 11:12:32 2023 +0000
Merge #32 `Fix for systems with page size larger than 4k`
diff --cc chromium.spec
index 81a6c64,94535f3..44e9b54
--- a/chromium.spec
+++ b/chromium.spec
@@@ -364,7 -369,24 +364,9 @@@ Patch122: chromium-109-gcc13.patc
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
+ Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@@ -956,7 -986,24 +958,9 @@@ udev
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
+ %patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit 90d57b6808a58d46802ee83cab70ed802b42e680
Author: Eric Curtin <ecurtin(a)redhat.com>
Date: Tue Mar 7 10:24:49 2023 +0000
Fix for systems with page size larger than 4k
Discovered on Fedora Asahi Remix by Asahi Lina.
diff --git a/chromium-110-LargerThan4k.patch b/chromium-110-LargerThan4k.patch
new file mode 100644
index 0000000..374f487
--- /dev/null
+++ b/chromium-110-LargerThan4k.patch
@@ -0,0 +1,86 @@
+From 96ee2a8e20bb7a7c4fb19e27dc31ff5c6a472849 Mon Sep 17 00:00:00 2001
+From: Ryan Gonzalez <rymg19(a)gmail.com>
+Date: Mon, 06 Mar 2023 20:22:25 -0600
+Subject: [PATCH] AddressTrackerLinux: Increase the message buffer size
+
+On non-4k-page systems, the message sizes may be too large to fit into
+the buffer, resulting in MSG_TRUNC. Instead of using the fixed 4kb size,
+follow the kernel documentation guidelines as to how large the buffer
+should be.
+
+Originally found by Asahi Lina:
+
+https://vt.social/@lina/109976892758680822
+
+Bug: None
+Change-Id: I4790435190167a706fa7490ab57706db1f4a6120
+---
+
+diff --git a/net/base/address_tracker_linux.cc b/net/base/address_tracker_linux.cc
+index 4976cae..f1a1fff 100644
+--- a/net/base/address_tracker_linux.cc
++++ b/net/base/address_tracker_linux.cc
+@@ -14,6 +14,7 @@
+ #include "base/files/scoped_file.h"
+ #include "base/functional/callback_helpers.h"
+ #include "base/logging.h"
++#include "base/memory/page_size.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "base/task/current_thread.h"
+ #include "base/threading/scoped_blocking_call.h"
+@@ -323,8 +324,30 @@
+ *address_changed = false;
+ *link_changed = false;
+ *tunnel_changed = false;
+- char buffer[4096];
+ bool first_loop = true;
++
++ // Varying sources have different opinions regarding the buffer size needed
++ // for netlink messages to avoid truncation:
++ // - The official documentation on netlink says messages are generally 8kb
++ // or the system page size, whichever is *larger*:
++ // https://www.kernel.org/doc/html/v6.2/userspace-api/netlink/intro.html#buf...
++ // - The kernel headers would imply that messages are generally the system
++ // page size or 8kb, whichever is *smaller*:
++ // https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/inc...
++ // (libmnl follows this.)
++ // - The netlink(7) man page's example always uses a fixed size 8kb buffer:
++ // https://man7.org/linux/man-pages/man7/netlink.7.html
++ // Here, we follow the guidelines in the documentation, for two primary
++ // reasons:
++ // - Erring on the side of a larger size is the safer way to go to avoid
++ // MSG_TRUNC.
++ // - Since this is heap-allocated anyway, there's no risk to the stack by
++ // using the larger size.
++
++ constexpr size_t kMinNetlinkBufferSize = 8 * 1024;
++ std::vector<char> buffer(
++ std::max(base::GetPageSize(), kMinNetlinkBufferSize));
++
+ {
+ absl::optional<base::ScopedBlockingCall> blocking_call;
+ if (tracking_) {
+@@ -334,9 +357,10 @@
+ }
+
+ for (;;) {
+- int rv = HANDLE_EINTR(recv(netlink_fd_.get(), buffer, sizeof(buffer),
+- // Block the first time through loop.
+- first_loop ? 0 : MSG_DONTWAIT));
++ int rv =
++ HANDLE_EINTR(recv(netlink_fd_.get(), buffer.data(), buffer.size(),
++ // Block the first time through loop.
++ first_loop ? 0 : MSG_DONTWAIT));
+ first_loop = false;
+ if (rv == 0) {
+ LOG(ERROR) << "Unexpected shutdown of NETLINK socket.";
+@@ -348,7 +372,8 @@
+ PLOG(ERROR) << "Failed to recv from netlink socket";
+ return;
+ }
+- HandleMessage(buffer, rv, address_changed, link_changed, tunnel_changed);
++ HandleMessage(buffer.data(), rv, address_changed, link_changed,
++ tunnel_changed);
+ }
+ }
+ if (*link_changed || *address_changed)
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..94535f3 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -385,6 +385,8 @@ Patch143: chromium-110-v8-gcc.patch
Patch144: chromium-111-v8-std-layout1.patch
Patch145: chromium-111-v8-std-layout2.patch
+Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@ -1000,6 +1002,8 @@ udev.
%patch144 -p1 -b .v8-std-layout1
%patch145 -p1 -b .v8-std-layout2
+%patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit c86221443c8502b82d97e6e1e914e274336b21af
Author: Than Ngo <than(a)redhat.com>
Date: Mon Mar 6 16:24:25 2023 +0100
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/chromium-105.0.5195.52-update-wayland-client-core.patch b/chromium-105.0.5195.52-update-wayland-client-core.patch
deleted file mode 100644
index 86c5c22..0000000
--- a/chromium-105.0.5195.52-update-wayland-client-core.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h
---- chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland 2022-09-01 19:36:06.099483374 +0000
-+++ chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h 2022-09-01 22:09:56.523353619 +0000
-@@ -119,9 +119,27 @@ struct wl_display;
- */
- struct wl_event_queue;
-
-+/** Destroy proxy after marshalling
-+ * @ingroup wl_proxy
-+ */
-+#define WL_MARSHAL_FLAG_DESTROY (1 << 0)
-+
- void
- wl_event_queue_destroy(struct wl_event_queue *queue);
-
-+struct wl_proxy *
-+wl_proxy_marshal_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags, ...);
-+
-+struct wl_proxy *
-+wl_proxy_marshal_array_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags,
-+ union wl_argument *args);
-+
- void
- wl_proxy_marshal(struct wl_proxy *p, uint32_t opcode, ...);
-
diff --git a/chromium-110-CanvasResourceProvider-pragma.patch b/chromium-110-CanvasResourceProvider-pragma.patch
deleted file mode 100644
index 5732e49..0000000
--- a/chromium-110-CanvasResourceProvider-pragma.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3e1e86ac882ae0ce4b9ec50834a4ff8becd912ab Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 16:59:46 +0000
-Subject: [PATCH] GCC: move pragmas in blink::CanvasResourceProvider
-
-GCC does not allow using #pragma inside an enum.
-
-Bug: 819294
-Change-Id: I637b5a616b080d17bb719aae9ec8cf06d0f8c464
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111848
-Reviewed-by: Stephen Chenney <schenney(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084983}
----
-
-diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-index e898397f..214ab01 100644
---- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-@@ -68,6 +68,8 @@
- public:
- // These values are persisted to logs. Entries should not be renumbered and
- // numeric values should never be reused.
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- enum ResourceProviderType {
- kTexture [[deprecated]] = 0,
- kBitmap = 1,
-@@ -79,11 +81,9 @@
- kPassThrough = 7,
- kSwapChain = 8,
- kSkiaDawnSharedImage [[deprecated]] = 9,
--#pragma GCC diagnostic push
--#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- kMaxValue = kSkiaDawnSharedImage,
--#pragma GCC diagnostic pop
- };
-+#pragma GCC diagnostic pop
-
- // The following parameters attempt to reach a compromise between not flushing
- // too often, and not accumulating an unreasonable backlog. Flushing too
diff --git a/chromium-110-CredentialUIEntry-const.patch b/chromium-110-CredentialUIEntry-const.patch
deleted file mode 100644
index eb68aa2..0000000
--- a/chromium-110-CredentialUIEntry-const.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
-From: Ivan Murashov <ivan.murashov(a)lge.com>
-Date: Sat, 17 Dec 2022 12:06:01 +0000
-Subject: [PATCH] libstdc++: Don't use const members in std::vector in password_manager::CredentialUIEntry
-
-Otherwise build fails when building with use_custom_libcxx=false.
-The error example:
-std::vector must have a non-const, non-volatile value_type
-
-Implementation of std::vector in libstdc++ does not allow const.
-
-Bug: 957519
-Change-Id: I089de2d52df25138d74dbf01fdf61d6301b4d871
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111037
-Reviewed-by: Mohamed Amir Yosef <mamir(a)chromium.org>
-Commit-Queue: Mohamed Amir Yosef <mamir(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084697}
----
-
-diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-index 1e0766a..a9a34f7 100644
---- a/components/password_manager/core/browser/ui/credential_ui_entry.cc
-+++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-@@ -97,7 +97,7 @@
- // For cases when the notes differ within grouped passwords (e.g: a
- // credential exists in both account and profile stores), respective notes
- // should be concatenated and linebreak used as a delimiter.
-- std::vector<const std::u16string> notes_with_duplicates;
-+ std::vector<std::u16string> notes_with_duplicates;
- for (const auto& form : forms) {
- // Only notes with an empty `unique_display_name` are supported in the
- // settings UI.
-@@ -109,7 +109,7 @@
- }
- auto unique_notes =
- base::MakeFlatSet<std::u16string>(std::move(notes_with_duplicates));
-- note = base::JoinString(std::vector<const std::u16string>(
-+ note = base::JoinString(std::vector<std::u16string>(
- unique_notes.begin(), unique_notes.end()),
- u"\n");
-
diff --git a/chromium-110-DarkModeLABColorSpace-pow.patch b/chromium-110-DarkModeLABColorSpace-pow.patch
deleted file mode 100644
index 91f1aee..0000000
--- a/chromium-110-DarkModeLABColorSpace-pow.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 23 Dec 2022 14:28:55 +0000
-Subject: [PATCH] libstdc++: fix narrowing in blink::DarkModeLABColorSpace
-
-Clang-14 errors out with narrowing from double to float. Use std::pow
-instead.
----
- .../renderer/platform/graphics/dark_mode_lab_color_space.h | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-index 999c3e5..c18ea7b 100644
---- a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-+++ b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-@@ -125,7 +125,7 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Reverse_transformation.
- SkV3 FromXYZ(const SkV3& v) const {
- auto f = [](float x) {
-- return x > kSigma3 ? pow(x, 1.0f / 3.0f)
-+ return x > kSigma3 ? std::pow(x, 1.0f / 3.0f)
- : x / (3 * kSigma2) + 4.0f / 29.0f;
- };
-
-@@ -145,7 +145,8 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
- SkV3 ToXYZ(const SkV3& lab) const {
- auto invf = [](float x) {
-- return x > kSigma ? pow(x, 3.0f) : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
-+ return x > kSigma ? std::pow(x, 3.0f)
-+ : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
- };
-
- SkV3 v = {Clamp(lab.x, 0.0f, 100.0f), Clamp(lab.y, -128.0f, 128.0f),
---
-2.38.2
-
diff --git a/chromium-110-InProgressDownloadManager-include.patch b/chromium-110-InProgressDownloadManager-include.patch
deleted file mode 100644
index adc51db..0000000
--- a/chromium-110-InProgressDownloadManager-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 63027c62eaa1b6c5b0d2762a511f1611b15d3728 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 13:56:17 +0000
-Subject: [PATCH] libstdc++: fix incomplete type of download::InProgressDownloadManager
-
-Destructor of std::unique_ptr in libstdc++ uses sizeof() which
-requires full definition of download::InProgressDownloadManager
-for return type of content::BrowserContext::
-RetrieveInProgressDownloadManager().
-
-Bug: 957519
-Change-Id: If99aa8d52238bacb1cb559a300e14ed3a05b7297
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111526
-Reviewed-by: Bo Liu <boliu(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084924}
----
-
-diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
-index 6180969..22e9dbb 100644
---- a/content/browser/browser_context.cc
-+++ b/content/browser/browser_context.cc
-@@ -30,6 +30,7 @@
- #include "base/unguessable_token.h"
- #include "build/build_config.h"
- #include "build/chromeos_buildflags.h"
-+#include "components/download/public/common/in_progress_download_manager.h"
- #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
- #include "content/browser/blob_storage/chrome_blob_storage_context.h"
- #include "content/browser/browser_context_impl.h"
diff --git a/chromium-110-NativeThemeBase-fabs.patch b/chromium-110-NativeThemeBase-fabs.patch
deleted file mode 100644
index c7d0e8b..0000000
--- a/chromium-110-NativeThemeBase-fabs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 19:07:37 +0000
-Subject: [PATCH] GCC: use fabsf in ui::NativeThemeBase::OutlineColor
-
-Template deduction fails for base::clamp, because return type of
-fabs is double and all other parameters are float.
-
-Bug: 819294
-Change-Id: I34f1c9c99d13f69097d899bfcb0526cbdf4fe1c1
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110869
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1085034}
----
-
-diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc
-index 169c60c..36db49a 100644
---- a/ui/native_theme/native_theme_base.cc
-+++ b/ui/native_theme/native_theme_base.cc
-@@ -1336,7 +1336,7 @@
- // The following code has been tested to look OK with all of the
- // default GTK themes.
- SkScalar min_diff = base::clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
-- SkScalar diff = base::clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-+ SkScalar diff = base::clamp(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-
- if (hsv1[2] + hsv2[2] > 1.0)
- diff = -diff;
diff --git a/chromium-110-Presenter-include.patch b/chromium-110-Presenter-include.patch
deleted file mode 100644
index 7cfb84b..0000000
--- a/chromium-110-Presenter-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c69b818a9fce2bf0fb81b280d6f4cc15e6fdb8af Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 16 Dec 2022 17:13:43 +0000
-Subject: [PATCH] GCC: fix incomplete type of gl::Presenter
-
-GCC requires full definition of gl::Presenter for return type
-of gl::GLOzoneEGL::CreateGLContext() with base::scoped_refptr.
----
- ui/ozone/common/gl_ozone_egl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ui/ozone/common/gl_ozone_egl.cc b/ui/ozone/common/gl_ozone_egl.cc
-index 9b1d37e..e745dd7 100644
---- a/ui/ozone/common/gl_ozone_egl.cc
-+++ b/ui/ozone/common/gl_ozone_egl.cc
-@@ -13,6 +13,7 @@
- #include "ui/gl/gl_share_group.h"
- #include "ui/gl/gl_surface.h"
- #include "ui/gl/gl_utils.h"
-+#include "ui/gl/presenter.h"
-
- namespace ui {
-
---
-2.37.4
-
diff --git a/chromium-110-StorageQueue-decltype.patch b/chromium-110-StorageQueue-decltype.patch
deleted file mode 100644
index cd0e66c..0000000
--- a/chromium-110-StorageQueue-decltype.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 200fc7c3ec95bc86f6afb55ca3c691e923463104 Mon Sep 17 00:00:00 2001
-From: Leonid Baraz <lbaraz(a)chromium.org>
-Date: Mon, 19 Dec 2022 21:46:04 +0000
-Subject: [PATCH] GCC: fix usage of decltype in reporting::StorageQueue
-
-GCC does not allow to use decltype for the default value of
-a function parameter.
-
-Bug: 819294
-Change-Id: I7ebb255634375ce889933f8b67acb10f0e56ca8d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111548
-Reviewed-by: Leonid Baraz <lbaraz(a)chromium.org>
-Commit-Queue: Leonid Baraz <lbaraz(a)chromium.org>
-Reviewed-by: Hong Xu <xuhong(a)google.com>
-Cr-Commit-Position: refs/heads/main@{#1085129}
----
-
-diff --git a/components/reporting/storage/storage_queue.cc b/components/reporting/storage/storage_queue.cc
-index c546d55a..49e0f2c 100644
---- a/components/reporting/storage/storage_queue.cc
-+++ b/components/reporting/storage/storage_queue.cc
-@@ -203,7 +203,6 @@
- encryption_module_(encryption_module),
- compression_module_(compression_module) {
- DETACH_FROM_SEQUENCE(storage_queue_sequence_checker_);
-- DCHECK(write_contexts_queue_.empty());
- }
-
- StorageQueue::~StorageQueue() {
-@@ -2133,9 +2132,7 @@
- }
-
- void StorageQueue::TestInjectErrorsForOperation(
-- base::RepeatingCallback<
-- Status(test::StorageQueueOperationKind operation_kind, int64_t)>
-- handler) {
-+ test::ErrorInjectionHandlerType handler) {
- test_injection_handler_ = handler;
- }
-
-diff --git a/components/reporting/storage/storage_queue.h b/components/reporting/storage/storage_queue.h
-index 39edd8b..04d5f9f 100644
---- a/components/reporting/storage/storage_queue.h
-+++ b/components/reporting/storage/storage_queue.h
-@@ -52,6 +52,9 @@
- kWriteLowDiskSpace,
- };
-
-+using ErrorInjectionHandlerType =
-+ base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>;
-+
- } // namespace test
-
- // Storage queue represents single queue of data to be collected and stored
-@@ -142,8 +145,7 @@
- // can be returned as a resulting operation status too.
- // If `handler` is null, error injections is disabled.
- void TestInjectErrorsForOperation(
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- handler = decltype(handler)());
-+ test::ErrorInjectionHandlerType handler = base::NullCallback());
-
- // Access queue options.
- const QueueOptions& options() const { return options_; }
-@@ -492,8 +494,7 @@
- // Test only: records callback to be invoked. It will be called with operation
- // kind and seq id, and will return Status (non-OK status indicates the
- // failure to be injected). In production code must be null.
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- test_injection_handler_;
-+ test::ErrorInjectionHandlerType test_injection_handler_{base::NullCallback()};
-
- // Weak pointer factory (must be last member in class).
- base::WeakPtrFactory<StorageQueue> weakptr_factory_{this};
diff --git a/chromium-110-SyncIterator-template.patch b/chromium-110-SyncIterator-template.patch
deleted file mode 100644
index c65c7e2..0000000
--- a/chromium-110-SyncIterator-template.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From da8029438ea8f00a154cb6a1bbc8243de39690de Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 22:11:58 +0000
-Subject: [PATCH] GCC: remove redundant template parameter from SyncIterator
-
-GCC 12 in C++20 mode does not allow this anymore.
-
-Bug: 819294
-Change-Id: I6b22d3919f08fb72a5b1d69eea59c6e95259c16f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111547
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084808}
----
-
-diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-index 1d67fa2..9cec5094 100644
---- a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-@@ -36,7 +36,7 @@
- member_initializer_list=[
- "${base_class_name}(source, kind)",
- ]),
-- CxxFuncDeclNode(name="~${class_name}",
-+ CxxFuncDeclNode(name="~SyncIterator",
- arg_decls=[],
- return_type="",
- override=True,
diff --git a/chromium-110-dpf-arm64.patch b/chromium-110-dpf-arm64.patch
deleted file mode 100644
index a4ba87b..0000000
--- a/chromium-110-dpf-arm64.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From df728d2e2fe8284316ed083c5a210bca1e50986e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena(a)igalia.com>
-Date: Mon, 16 Jan 2023 12:53:21 +0100
-Subject: [PATCH] GCC: fix distributed point functions build in ARM64 with SVE
-
-SVE build is broken in ARM64, because distributed_point_functions
-is trying to use operator& and operator|.
-
-Bug:819294
-Change-Id: I465efa475ed59031a2cfaf4172ef9fbd8bb05050
----
- dpf/internal/evaluate_prg_hwy.cc | 34 ++++++++++++++------------------
- 1 file changed, 15 insertions(+), 19 deletions(-)
-
-diff --git a/dpf/internal/evaluate_prg_hwy.cc b/dpf/internal/evaluate_prg_hwy.cc
-index 3d743f4..a1dd8e0 100644
---- a//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-+++ b//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-@@ -124,14 +124,14 @@ auto IsBitSet(D d, const V input, int index) {
-
- // Compute input AND index_64 on 64-bit integers.
- auto input_64 = hn::BitCast(d64, input);
-- input_64 &= index_64;
-+ input_64 = hn::And(input_64, index_64);
-
- // Take the OR of every two adjacent 64-bit integers. This ensures that each
- // half of an 128-bit block is nonzero iff at least one half was nonzero.
-- input_64 |= hn::Shuffle01(input_64);
-+ input_64 = hn::Or(input_64, hn::Shuffle01(input_64));
-
- // Compute a 64-bit mask that checks which integers are nonzero.
-- return input_64 != hn::Zero(d64);
-+ return hn::Ne(input_64, hn::Zero(d64));
- }
-
- // Dummy struct to get HWY_ALIGN as a number, for testing if an array of
-@@ -236,24 +236,20 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec_0 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed));
-- vec_1 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed));
-- vec_2 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed));
-- vec_3 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed));
-+ vec_0 = hn::Xor(vec_0, hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed)));
-+ vec_1 = hn::Xor(vec_1, hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed)));
-+ vec_2 = hn::Xor(vec_2, hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed)));
-+ vec_3 = hn::Xor(vec_3, hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed)));
-
- // Extract control bit for next level.
- const auto next_control_mask_0 = IsBitSet(d8, vec_0, 0);
- const auto next_control_mask_1 = IsBitSet(d8, vec_1, 0);
- const auto next_control_mask_2 = IsBitSet(d8, vec_2, 0);
- const auto next_control_mask_3 = IsBitSet(d8, vec_3, 0);
-- vec_0 &= clear_lowest_bit;
-- vec_1 &= clear_lowest_bit;
-- vec_2 &= clear_lowest_bit;
-- vec_3 &= clear_lowest_bit;
-+ vec_0 = hn::And(vec_0, clear_lowest_bit);
-+ vec_1 = hn::And(vec_1, clear_lowest_bit);
-+ vec_2 = hn::And(vec_2, clear_lowest_bit);
-+ vec_3 = hn::And(vec_3, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -321,10 +317,10 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- // Extract control bit for next level.
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -376,9 +372,9 @@ absl::Status EvaluateSeedsHwy(
- // Perform seed correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
- const auto correction_control_mask_left =
- correction_controls_left[j] ? mask_all_one : mask_all_zero;
- const auto correction_control_mask_right =
diff --git a/chromium-110-gtktheme.patch b/chromium-110-gtktheme.patch
index eb94e04..3fcaa26 100644
--- a/chromium-110-gtktheme.patch
+++ b/chromium-110-gtktheme.patch
@@ -23,6 +23,25 @@ index 758d0bf..8c91146 100644
Lenny Khazan <lenny.khazan(a)gmail.com>
Leo Wolf <jclw(a)ymail.com>
Leon Han <leon.han(a)intel.com>
+diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
+index 85c3931..2b0c2a84 100644
+--- a/chrome/common/chrome_features.cc
++++ b/chrome/common/chrome_features.cc
+@@ -1430,12 +1430,12 @@
+ BASE_FEATURE(kWebUIDarkMode,
+ "WebUIDarkMode",
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
+- // BUILDFLAG(IS_CHROMEOS)
++ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ );
+
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index a60d6e3..1200a80 100644
--- a/ui/gtk/native_theme_gtk.cc
diff --git a/chromium-110-kCustomizeChromeColors-type.patch b/chromium-110-kCustomizeChromeColors-type.patch
deleted file mode 100644
index ac214da..0000000
--- a/chromium-110-kCustomizeChromeColors-type.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3084e834a211e85f6a17e6f8dceb6b44117211d2 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Wed, 21 Dec 2022 19:22:46 +0000
-Subject: [PATCH] GCC: fix conflicting type for kCustomizeChromeColors
-
-GCC cannot match auto with previous declaration.
-
-Bug: 819294
-Change-Id: Ie648daaf264fb2ea177ac46c8a510d481f6fa2f4
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110870
-Reviewed-by: Tibor Goldschwendt <tiborg(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1086011}
----
-
-diff --git a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-index 2fccadb..383c9e5 100644
---- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-@@ -31,5 +31,6 @@
-
- } // namespace
-
--const auto kCustomizeChromeColors = MakeCustomizeChromeColors(
-- std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
-+const decltype(kCustomizeChromeColors) kCustomizeChromeColors =
-+ MakeCustomizeChromeColors(
-+ std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
deleted file mode 100644
index 31a4c1e..0000000
--- a/chromium-110-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
---- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
-+++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
-@@ -6,6 +6,7 @@
- #define BASE_MEMORY_REF_COUNTED_H_
-
- #include <stddef.h>
-+#include <limits>
-
- #include <utility>
-
diff --git a/chromium-110-raw_ptr-constexpr.patch b/chromium-110-raw_ptr-constexpr.patch
deleted file mode 100644
index ded5855..0000000
--- a/chromium-110-raw_ptr-constexpr.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From bd3af998439424886c641279b6f9bb6e950c7142 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:12:29 +0000
-Subject: [PATCH] GCC: make raw_ptr::operator bool constexpr
-
-Required because autofill::internal::FormForest uses it in
-a constexpr method.
-
-Bug: 819294
-Change-Id: Ib2258c9d98c2e7f88ad192b517b487f834a87481
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110924
-Reviewed-by: Bartek Nowierski <bartekn(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084785}
----
-
-diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
-index 4191f0e..a22f64b7 100644
---- a/base/memory/raw_ptr.h
-+++ b/base/memory/raw_ptr.h
-@@ -1301,7 +1301,9 @@
- // possible, so use it only if absolutely necessary (e.g. for const_cast).
- PA_ALWAYS_INLINE T* get() const { return GetForExtraction(); }
-
-- explicit PA_ALWAYS_INLINE operator bool() const { return !!wrapped_ptr_; }
-+ constexpr explicit PA_ALWAYS_INLINE operator bool() const {
-+ return !!wrapped_ptr_;
-+ }
-
- template <typename U = T,
- typename Unused = std::enable_if_t<
diff --git a/chromium-110-url_canon_internal-cast.patch b/chromium-110-url_canon_internal-cast.patch
deleted file mode 100644
index 41064a7..0000000
--- a/chromium-110-url_canon_internal-cast.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 740d1102e3fdaaed5441b5656205df9d7e422c3a Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Tue, 20 Dec 2022 20:41:12 +0000
-Subject: [PATCH] GCC: add cast for vector types in url/url_canon_internal.cc
-
-GCC requires lax vector conversion for converting __vector(16) to
-SIMD types. Add explicit cast instead.
-
-Bug: 819294
-Change-Id: Icfc9d3586350af469bfd9d83b355d94806430c43
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110786
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1085617}
----
-
-diff --git a/url/url_canon_internal.cc b/url/url_canon_internal.cc
-index e4f7949..f621920 100644
---- a/url/url_canon_internal.cc
-+++ b/url/url_canon_internal.cc
-@@ -49,11 +49,11 @@
- auto mask = b >= 0x24 && b <= 0x7e && b != 0x27 && b != 0x3c && b != 0x3e;
-
- #ifdef __SSE2__
-- if (_mm_movemask_epi8(mask) != 0xffff) {
-+ if (_mm_movemask_epi8(reinterpret_cast<__m128i>(mask)) != 0xffff) {
- return i;
- }
- #else
-- if (vminvq_u8(mask) == 0) {
-+ if (vminvq_u8(reinterpret_cast<uint8x16_t>(mask)) == 0) {
- return i;
- }
- #endif
diff --git a/chromium-110-v8-gcc.patch b/chromium-110-v8-gcc.patch
deleted file mode 100644
index 4bca19a..0000000
--- a/chromium-110-v8-gcc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 15d123009b7e987e946309cd5724ae17f376bd16 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:26:02 +0100
-Subject: [PATCH] GCC: fix selection of IMMEDIATE_CRASH
-
-immediate_crash.h still uses V8_CC_GCC define to determine which
-IMMEDIATE_CRASH macro is used. This should be V8_CC_GNU instead.
-Otherwise weird compile errors are happening with turboshaft.
-
-Bug: chromium:819294
-Change-Id: Id77fe7406ae16a804e1e466844f81d6c728ec008
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111849
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#84923}
----
-
-diff --git a/src/base/immediate-crash.h b/src/base/immediate-crash.h
-index 770cb27..ce6240b 100644
---- a/v8/src/base/immediate-crash.h
-+++ b/v8/src/base/immediate-crash.h
-@@ -140,9 +140,9 @@
- [] { TRAP_SEQUENCE_(); }(); \
- } while (false)
-
--#endif // !V8_CC_GCC
-+#endif // !V8_CC_GNU
-
--#if defined(__clang__) || V8_CC_GCC
-+#if defined(__clang__) || V8_CC_GNU
-
- // __builtin_unreachable() hints to the compiler that this is noreturn and can
- // be packed in the function epilogue.
diff --git a/chromium-111-v8-std-layout1.patch b/chromium-111-v8-std-layout1.patch
deleted file mode 100644
index 95b2633..0000000
--- a/chromium-111-v8-std-layout1.patch
+++ /dev/null
@@ -1,2229 +0,0 @@
-From 472429e623cf48e864a7a2f10d589817a88289a1 Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Wed, 18 Jan 2023 21:11:59 +0100
-Subject: [PATCH] [heap] Fix saving the callee-saved registers on stack
-
-This CL reinstates the trampoline for pushing the values of
-callee-saved registers on the stack, which is used for stack scanning.
-It reintroduces the set of architecture-specific functions
-PushAllRegistersAndIterateStack, removed in crrev.com/c/3989143.
-The reason for this change is that the simpler architecture-specific
-functions SaveCalleeSavedRegisters failed to correctly save the
-values of the registers, in the presence of C++ compiler optimizations.
-
-It also removes the stack context, introduced in crrev.com/c/4017512,
-and uses again the trampoline for iterating through the stack.
-
-Bug: v8:13257
-Change-Id: I9e656a9b3ba6616168602300f2180b4f340593f3
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4171639
-Commit-Queue: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Reviewed-by: Omer Katz <omerkatz(a)chromium.org>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#85394}
-
-(stripped tests)
----
-
-diff --git a/BUILD.bazel b/BUILD.bazel
-index 283eeff..e3269a4 100644
---- a/v8/BUILD.bazel
-+++ b/v8/BUILD.bazel
-@@ -3201,16 +3201,16 @@
- # Note these cannot be v8_target_is_* selects because these contain
- # inline assembly that runs inside the executable. Since these are
- # linked directly into mksnapshot, they must use the actual target cpu.
-- "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/save_registers_asm.cc"],
-- "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/save_registers_masm.S"],
-+ "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/push_registers_masm.S"],
- }),
- )
-
-diff --git a/BUILD.gn b/BUILD.gn
-index 80a7eb6..56798db 100644
---- a/v8/BUILD.gn
-+++ b/v8/BUILD.gn
-@@ -5989,31 +5989,31 @@
-
- if (is_clang || !is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_asm.cc" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_asm.cc" ]
- } else if (current_cpu == "arm") {
-- sources += [ "src/heap/base/asm/arm/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm/push_registers_asm.cc" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_asm.cc" ]
- } else if (current_cpu == "ppc64") {
-- sources += [ "src/heap/base/asm/ppc/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ppc/push_registers_asm.cc" ]
- } else if (current_cpu == "s390x") {
-- sources += [ "src/heap/base/asm/s390/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/s390/push_registers_asm.cc" ]
- } else if (current_cpu == "mips64el") {
-- sources += [ "src/heap/base/asm/mips64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/mips64/push_registers_asm.cc" ]
- } else if (current_cpu == "loong64") {
-- sources += [ "src/heap/base/asm/loong64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/loong64/push_registers_asm.cc" ]
- } else if (current_cpu == "riscv64" || current_cpu == "riscv32") {
-- sources += [ "src/heap/base/asm/riscv/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/riscv/push_registers_asm.cc" ]
- }
- } else if (is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_masm.asm" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_masm.asm" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_masm.S" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_masm.S" ]
- }
- }
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 8a2ec80..31536a1 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3075,8 +3075,7 @@
- .get()
- .get();
- current = WasmContinuationObject::cast(current).parent();
-- thread_local_top()->stack_.SetStackStart(
-- reinterpret_cast<void*>(stack->base()));
-+ heap()->SetStackStart(reinterpret_cast<void*>(stack->base()));
- // We don't need to add all inactive stacks. Only the ones in the active chain
- // may contain cpp heap pointers.
- while (!current.IsUndefined()) {
-@@ -3372,9 +3371,12 @@
- Isolate* saved_isolate = isolate->TryGetCurrent();
- SetIsolateThreadLocals(isolate, nullptr);
- isolate->set_thread_id(ThreadId::Current());
-- isolate->thread_local_top()->stack_ =
-- saved_isolate ? std::move(saved_isolate->thread_local_top()->stack_)
-- : ::heap::base::Stack(base::Stack::GetStackStart());
-+ if (saved_isolate) {
-+ isolate->thread_local_top()->stack_ =
-+ std::move(saved_isolate->thread_local_top()->stack_);
-+ } else {
-+ isolate->heap()->SetStackStart(base::Stack::GetStackStart());
-+ }
-
- bool owns_shared_isolate = isolate->owns_shared_isolate_;
- Isolate* maybe_shared_isolate = isolate->shared_isolate_;
-diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc
-index 0d7071d..c115ae0 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -44,10 +44,13 @@
- Clear();
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
-- stack_.SetStackStart(base::Stack::GetStackStart());
- #if V8_ENABLE_WEBASSEMBLY
-+ stack_.SetStackStart(base::Stack::GetStackStart(),
-+ v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
-+#else
-+ stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/heap/base/asm/arm/push_registers_asm.cc b/src/heap/base/asm/arm/push_registers_asm.cc
-new file mode 100644
-index 0000000..5246c3f
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm/push_registers_asm.cc
-@@ -0,0 +1,39 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 8-byte alignment at calls by pushing an additional
-+// non-callee-saved register (r3).
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
-+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ // Only {r4-r11} are callee-saved registers. Push r3 in addition to align
-+ // the stack back to 8 bytes.
-+ " push {r3-r11, lr} \n"
-+ // Pass 1st parameter (r0) unchanged (Stack*).
-+ // Pass 2nd parameter (r1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r2; IterateStackCallback).
-+ " mov r3, r2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov r2, sp \n"
-+ // Call the callback.
-+ " blx r3 \n"
-+ // Discard all the registers.
-+ " add sp, sp, #36 \n"
-+ // Pop lr into pc which returns and switches mode if needed.
-+ " pop {pc} \n");
-diff --git a/src/heap/base/asm/arm/save_registers_asm.cc b/src/heap/base/asm/arm/save_registers_asm.cc
-deleted file mode 100644
-index ace9503..0000000
---- a/v8/src/heap/base/asm/arm/save_registers_asm.cc
-+++ /dev/null
-@@ -1,36 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 8-byte alignment at calls by pushing an additional
--// non-callee-saved register (r3).
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
--// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
--
--// 8 32-bit registers = 8 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 8,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: {r4-r11}.
-- " stm r0, {r4-r11} \n"
-- // Return.
-- " bx lr \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_asm.cc b/src/heap/base/asm/arm64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1efcc34
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_asm.cc
-@@ -0,0 +1,62 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment.
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
-+
-+asm(
-+#if defined(__APPLE__)
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ ".p2align 2 \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !defined(__APPLE__)
-+ ".globl PushAllRegistersAndIterateStack \n"
-+#if !defined(_WIN64)
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+#endif // !defined(_WIN64)
-+ ".p2align 2 \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !defined(__APPLE__)
-+ // x19-x29 are callee-saved.
-+ " stp x19, x20, [sp, #-16]! \n"
-+ " stp x21, x22, [sp, #-16]! \n"
-+ " stp x23, x24, [sp, #-16]! \n"
-+ " stp x25, x26, [sp, #-16]! \n"
-+ " stp x27, x28, [sp, #-16]! \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Sign return address.
-+ " paciasp \n"
-+#endif
-+ " stp fp, lr, [sp, #-16]! \n"
-+ // Maintain frame pointer.
-+ " mov fp, sp \n"
-+ // Pass 1st parameter (x0) unchanged (Stack*).
-+ // Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (x2; IterateStackCallback)
-+ " mov x7, x2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov x2, sp \n"
-+ " blr x7 \n"
-+ // Load return address and frame pointer.
-+ " ldp fp, lr, [sp], #16 \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Authenticate return address.
-+ " autiasp \n"
-+#endif
-+ // Drop all callee-saved registers.
-+ " add sp, sp, #80 \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_masm.S b/src/heap/base/asm/arm64/push_registers_masm.S
-new file mode 100644
-index 0000000..888523a
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_masm.S
-@@ -0,0 +1,32 @@
-+; Copyright 2020 the V8 project authors. All rights reserved.
-+; Use of this source code is governed by a BSD-style license that can be
-+; found in the LICENSE file.
-+
-+; This file is exactly the same as push_registers_asm.cc, just formatted for
-+; the Microsoft Arm Assembler.
-+
-+ AREA |.text|, CODE, ALIGN=4, READONLY
-+ EXPORT PushAllRegistersAndIterateStack
-+PushAllRegistersAndIterateStack
-+ ; x19-x29 are callee-saved
-+ STP x19, x20, [sp, #-16]!
-+ STP x21, x22, [sp, #-16]!
-+ STP x23, x24, [sp, #-16]!
-+ STP x25, x26, [sp, #-16]!
-+ STP x27, x28, [sp, #-16]!
-+ STP fp, lr, [sp, #-16]!
-+ ; Maintain frame pointer
-+ MOV fp, sp
-+ ; Pass 1st parameter (x0) unchanged (Stack*).
-+ ; Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ ; Save 3rd parameter (x2; IterateStackCallback)
-+ MOV x7, x2
-+ ; Pass 3rd parameter as sp (stack pointer)
-+ MOV x2, sp
-+ BLR x7
-+ ; Load return address
-+ LDR lr, [sp, #8]
-+ ; Restore frame pointer and pop all callee-saved registers.
-+ LDR fp, [sp], #96
-+ RET
-+ END
-diff --git a/src/heap/base/asm/arm64/save_registers_asm.cc b/src/heap/base/asm/arm64/save_registers_asm.cc
-deleted file mode 100644
-index 5fe81d8..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,50 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 16-byte alignment.
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(__APPLE__)
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- ".p2align 2 \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !defined(__APPLE__)
-- ".globl SaveCalleeSavedRegisters \n"
--#if !defined(_WIN64)
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
--#endif // !defined(_WIN64)
-- ".p2align 2 \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !defined(__APPLE__)
-- // $x0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: x19-x29.
-- " stp x19, x20, [x0], #16 \n"
-- " stp x21, x22, [x0], #16 \n"
-- " stp x23, x24, [x0], #16 \n"
-- " stp x25, x26, [x0], #16 \n"
-- " stp x27, x28, [x0], #16 \n"
-- " str x29, [x0] \n"
-- // Return.
-- " ret \n");
-diff --git a/src/heap/base/asm/arm64/save_registers_masm.S b/src/heap/base/asm/arm64/save_registers_masm.S
-deleted file mode 100644
-index ab79055..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_masm.S
-+++ /dev/null
-@@ -1,24 +0,0 @@
--; Copyright 2020 the V8 project authors. All rights reserved.
--; Use of this source code is governed by a BSD-style license that can be
--; found in the LICENSE file.
--
--; This file is exactly the same as save_registers_asm.cc, just formatted for
--; the Microsoft Arm Assembler.
--
--; Save all callee-saved registers in the specified buffer.
--; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
-- AREA |.text|, CODE, ALIGN=4, READONLY
-- EXPORT SaveCalleeSavedRegisters
--SaveCalleeSavedRegisters
-- ; x0: [ intptr_t* buffer ]
-- ; x19-x29 are callee-saved
-- STP x19, x20, [x0], #16
-- STP x21, x22, [x0], #16
-- STP x23, x24, [x0], #16
-- STP x25, x26, [x0], #16
-- STP x27, x28, [x0], #16
-- STR x29, [x0]
-- ; Return.
-- RET
-- END
-diff --git a/src/heap/base/asm/ia32/push_registers_asm.cc b/src/heap/base/asm/ia32/push_registers_asm.cc
-new file mode 100644
-index 0000000..ed9c14a
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_asm.cc
-@@ -0,0 +1,53 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment at calls. There is an 4-byte return address
-+// on the stack and we push 28 bytes which maintains 16-byte stack alignment
-+// at the call.
-+//
-+// The following assumes cdecl calling convention.
-+// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
-+asm(
-+#ifdef _WIN32
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !_WIN32
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !_WIN32
-+ // [ IterateStackCallback ]
-+ // [ StackVisitor* ]
-+ // [ Stack* ]
-+ // [ ret ]
-+ // ebp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %ebp \n"
-+ " movl %esp, %ebp \n"
-+ " push %ebx \n"
-+ " push %esi \n"
-+ " push %edi \n"
-+ // Save 3rd parameter (IterateStackCallback).
-+ " movl 28(%esp), %ecx \n"
-+ // Pass 3rd parameter as esp (stack pointer).
-+ " push %esp \n"
-+ // Pass 2nd parameter (StackVisitor*).
-+ " push 28(%esp) \n"
-+ // Pass 1st parameter (Stack*).
-+ " push 28(%esp) \n"
-+ " call *%ecx \n"
-+ // Pop the callee-saved registers.
-+ " addl $24, %esp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %ebp \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/ia32/push_registers_masm.asm b/src/heap/base/asm/ia32/push_registers_masm.asm
-new file mode 100644
-index 0000000..a35fd6e
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_masm.asm
-@@ -0,0 +1,48 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+.model flat, C
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 72 bytes which maintains 16-byte stack alignment
-+ ;; at the call.
-+ ;;
-+ ;; The following assumes cdecl calling convention.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
-+ ;;
-+ ;; [ IterateStackCallback ]
-+ ;; [ StackVisitor* ]
-+ ;; [ Stack* ]
-+ ;; [ ret ]
-+ push ebp
-+ mov ebp, esp
-+ push ebx
-+ push esi
-+ push edi
-+ ;; Save 3rd parameter (IterateStackCallback).
-+ mov ecx, [ esp + 28 ]
-+ ;; Pass 3rd parameter as esp (stack pointer).
-+ push esp
-+ ;; Pass 2nd parameter (StackVisitor*).
-+ push [ esp + 28 ]
-+ ;; Pass 1st parameter (Stack*).
-+ push [ esp + 28 ]
-+ call ecx
-+ ;; Pop the callee-saved registers.
-+ add esp, 24
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop ebp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/ia32/save_registers_asm.cc b/src/heap/base/asm/ia32/save_registers_asm.cc
-deleted file mode 100644
-index 7c05247..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_asm.cc
-+++ /dev/null
-@@ -1,48 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// The following assumes cdecl calling convention.
--// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
--
--// 3 32-bit registers = 3 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 3,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#ifdef _WIN32
-- ".globl _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !_WIN32
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !_WIN32
-- // 8: [ intptr_t* buffer ]
-- // 4: [ ret ]
-- // 0: [ saved %ebp ]
-- // %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %ebp \n"
-- " movl %esp, %ebp \n"
-- // Load the buffer's address in %ecx.
-- " movl 8(%ebp), %ecx \n"
-- // Save the callee-saved registers.
-- " movl %ebx, 0(%ecx) \n"
-- " movl %esi, 4(%ecx) \n"
-- " movl %edi, 8(%ecx) \n"
-- // Restore %ebp as it was used as frame pointer and return.
-- " pop %ebp \n"
-- " ret \n");
-diff --git a/src/heap/base/asm/ia32/save_registers_masm.asm b/src/heap/base/asm/ia32/save_registers_masm.asm
-deleted file mode 100644
-index 0892b02..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_masm.asm
-+++ /dev/null
-@@ -1,36 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--.model flat, C
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-- ;;
-- ;; The following assumes cdecl calling convention.
-- ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
--
--SaveCalleeSavedRegisters:
-- ;; 8: [ intptr_t* buffer ]
-- ;; 4: [ ret ]
-- ;; 0: [ saved %ebp ]
-- ;; %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- push ebp
-- mov ebp, esp
-- ;; Load the buffer's address in %ecx.
-- mov ecx, [ebp + 8]
-- ;; Save the callee-saved registers.
-- mov [ecx], ebx
-- mov [ecx + 4], esi
-- mov [ecx + 8], edi
-- ;; Restore %ebp as it was used as frame pointer and return.
-- pop ebp
-- ret
--
--end
-diff --git a/src/heap/base/asm/loong64/push_registers_asm.cc b/src/heap/base/asm/loong64/push_registers_asm.cc
-new file mode 100644
-index 0000000..aa8dcd3
---- /dev/null
-+++ b/v8/src/heap/base/asm/loong64/push_registers_asm.cc
-@@ -0,0 +1,48 @@
-+// Copyright 2021 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi.d $sp, $sp, -96 \n"
-+ " st.d $ra, $sp, 88 \n"
-+ " st.d $s8, $sp, 80 \n"
-+ " st.d $sp, $sp, 72 \n"
-+ " st.d $fp, $sp, 64 \n"
-+ " st.d $s7, $sp, 56 \n"
-+ " st.d $s6, $sp, 48 \n"
-+ " st.d $s5, $sp, 40 \n"
-+ " st.d $s4, $sp, 32 \n"
-+ " st.d $s3, $sp, 24 \n"
-+ " st.d $s2, $sp, 16 \n"
-+ " st.d $s1, $sp, 8 \n"
-+ " st.d $s0, $sp, 0 \n"
-+ // Maintain frame pointer.
-+ " addi.d $s8, $sp, 0 \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " addi.d $a3, $a2, 0 \n"
-+ // Call the callback.
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " addi.d $a2, $sp, 0 \n"
-+ " jirl $ra, $a3, 0 \n"
-+ // Load return address.
-+ " ld.d $ra, $sp, 88 \n"
-+ // Restore frame pointer.
-+ " ld.d $s8, $sp, 80 \n"
-+ // Discard all callee-saved registers.
-+ " addi.d $sp, $sp, 96 \n"
-+ " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/loong64/save_registers_asm.cc b/src/heap/base/asm/loong64/save_registers_asm.cc
-deleted file mode 100644
-index d5b110d..0000000
---- a/v8/src/heap/base/asm/loong64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,40 +0,0 @@
--// Copyright 2021 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " st.d $s8, $a0, 0 \n"
-- " st.d $sp, $a0, 8 \n"
-- " st.d $fp, $a0, 16 \n"
-- " st.d $s7, $a0, 24 \n"
-- " st.d $s6, $a0, 32 \n"
-- " st.d $s5, $a0, 40 \n"
-- " st.d $s4, $a0, 48 \n"
-- " st.d $s3, $a0, 56 \n"
-- " st.d $s2, $a0, 64 \n"
-- " st.d $s1, $a0, 72 \n"
-- " st.d $s0, $a0, 80 \n"
-- // Return.
-- " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/mips64/push_registers_asm.cc b/src/heap/base/asm/mips64/push_registers_asm.cc
-new file mode 100644
-index 0000000..47779e0
---- /dev/null
-+++ b/v8/src/heap/base/asm/mips64/push_registers_asm.cc
-@@ -0,0 +1,49 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".set noreorder \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " daddiu $sp, $sp, -96 \n"
-+ " sd $ra, 88($sp) \n"
-+ " sd $s8, 80($sp) \n"
-+ " sd $sp, 72($sp) \n"
-+ " sd $gp, 64($sp) \n"
-+ " sd $s7, 56($sp) \n"
-+ " sd $s6, 48($sp) \n"
-+ " sd $s5, 40($sp) \n"
-+ " sd $s4, 32($sp) \n"
-+ " sd $s3, 24($sp) \n"
-+ " sd $s2, 16($sp) \n"
-+ " sd $s1, 8($sp) \n"
-+ " sd $s0, 0($sp) \n"
-+ // Maintain frame pointer.
-+ " move $s8, $sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " move $a3, $a2 \n"
-+ // Call the callback.
-+ " jalr $a3 \n"
-+ // Delay slot: Pass 3rd parameter as sp (stack pointer).
-+ " move $a2, $sp \n"
-+ // Load return address.
-+ " ld $ra, 88($sp) \n"
-+ // Restore frame pointer.
-+ " ld $s8, 80($sp) \n"
-+ " jr $ra \n"
-+ // Delay slot: Discard all callee-saved registers.
-+ " daddiu $sp, $sp, 96 \n");
-diff --git a/src/heap/base/asm/mips64/save_registers_asm.cc b/src/heap/base/asm/mips64/save_registers_asm.cc
-deleted file mode 100644
-index 95bcc31..0000000
---- a/v8/src/heap/base/asm/mips64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,41 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 9 64-bit registers = 9 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 9,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".set noreorder \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " sd $gp, 64($a0) \n"
-- " sd $s7, 56($a0) \n"
-- " sd $s6, 48($a0) \n"
-- " sd $s5, 40($a0) \n"
-- " sd $s4, 32($a0) \n"
-- " sd $s3, 24($a0) \n"
-- " sd $s2, 16($a0) \n"
-- " sd $s1, 8($a0) \n"
-- // ... one more in the delay slot!
-- // Return.
-- " jr $ra \n"
-- // Delay slot:
-- " sd $s0, 0($a0) \n");
-diff --git a/src/heap/base/asm/ppc/push_registers_asm.cc b/src/heap/base/asm/ppc/push_registers_asm.cc
-new file mode 100644
-index 0000000..f879980
---- /dev/null
-+++ b/v8/src/heap/base/asm/ppc/push_registers_asm.cc
-@@ -0,0 +1,97 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// PPC ABI source:
-+// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
-+
-+// AIX Runtime process stack:
-+// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
-+asm(
-+#if defined(_AIX)
-+ ".csect .text[PR] \n"
-+ ".align 2 \n"
-+ ".globl .PushAllRegistersAndIterateStack, hidden \n"
-+ ".PushAllRegistersAndIterateStack: \n"
-+#else
-+ ".text \n"
-+ ".align 2 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif
-+ // Push all callee-saved registers.
-+ // lr, TOC pointer, r16 to r31. 160 bytes.
-+ // The parameter save area shall be allocated by the caller. 112 bytes.
-+ // At anytime, SP (r1) needs to be multiple of 16 (i.e. 16-aligned).
-+ " mflr 0 \n"
-+ " std 0, 16(1) \n"
-+#if defined(_AIX)
-+ " std 2, 40(1) \n"
-+#else
-+ " std 2, 24(1) \n"
-+#endif
-+ " stdu 1, -256(1) \n"
-+ " std 14, 112(1) \n"
-+ " std 15, 120(1) \n"
-+ " std 16, 128(1) \n"
-+ " std 17, 136(1) \n"
-+ " std 18, 144(1) \n"
-+ " std 19, 152(1) \n"
-+ " std 20, 160(1) \n"
-+ " std 21, 168(1) \n"
-+ " std 22, 176(1) \n"
-+ " std 23, 184(1) \n"
-+ " std 24, 192(1) \n"
-+ " std 25, 200(1) \n"
-+ " std 26, 208(1) \n"
-+ " std 27, 216(1) \n"
-+ " std 28, 224(1) \n"
-+ " std 29, 232(1) \n"
-+ " std 30, 240(1) \n"
-+ " std 31, 248(1) \n"
-+ // Pass 1st parameter (r3) unchanged (Stack*).
-+ // Pass 2nd parameter (r4) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r5; IterateStackCallback).
-+ " mr 6, 5 \n"
-+#if defined(_AIX)
-+ // Set up TOC for callee.
-+ " ld 2,8(5) \n"
-+ // AIX uses function descriptors, which means that
-+ // pointers to functions do not point to code, but
-+ // instead point to metadata about them, hence
-+ // need to deterrence.
-+ " ld 6,0(6) \n"
-+#endif
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mr 5, 1 \n"
-+#if !defined(_AIX)
-+ // Set up r12 to be equal to the callee address (in order for TOC
-+ // relocation). Only needed on LE Linux.
-+ " mr 12, 6 \n"
-+#endif
-+ // Call the callback.
-+ " mtctr 6 \n"
-+ " bctrl \n"
-+ // Discard all the registers.
-+ " addi 1, 1, 256 \n"
-+ // Restore lr.
-+ " ld 0, 16(1) \n"
-+ " mtlr 0 \n"
-+#if defined(_AIX)
-+ // Restore TOC pointer.
-+ " ld 2, 40(1) \n"
-+#else
-+ " ld 2, 24(1) \n"
-+#endif
-+ " blr \n");
-diff --git a/src/heap/base/asm/ppc/save_registers_asm.cc b/src/heap/base/asm/ppc/save_registers_asm.cc
-deleted file mode 100644
-index 9e8102a..0000000
---- a/v8/src/heap/base/asm/ppc/save_registers_asm.cc
-+++ /dev/null
-@@ -1,113 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// PPC ABI source:
--// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
--
--// AIX Runtime process stack:
--// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
--
--#ifdef __PPC64__
--
--// 20 64-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".csect .text[PR] \n"
-- ".align 2 \n"
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".text \n"
-- ".align 2 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " std 0, 8(3) \n"
-- " std 2, 16(3) \n"
-- " std 14, 24(3) \n"
-- " std 15, 32(3) \n"
-- " std 16, 40(3) \n"
-- " std 17, 48(3) \n"
-- " std 18, 56(3) \n"
-- " std 19, 64(3) \n"
-- " std 20, 72(3) \n"
-- " std 21, 80(3) \n"
-- " std 22, 88(3) \n"
-- " std 23, 96(3) \n"
-- " std 24, 104(3) \n"
-- " std 25, 112(3) \n"
-- " std 26, 120(3) \n"
-- " std 27, 128(3) \n"
-- " std 28, 136(3) \n"
-- " std 29, 144(3) \n"
-- " std 30, 152(3) \n"
-- " std 31, 160(3) \n"
-- // Return.
-- " blr \n");
--
--#else // !__PPC64__
--
--// 20 32-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".csect .text[PR] \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " st 0, 4(3) \n"
-- " st 2, 8(3) \n"
-- " st 14, 12(3) \n"
-- " st 15, 16(3) \n"
-- " st 16, 20(3) \n"
-- " st 17, 24(3) \n"
-- " st 18, 28(3) \n"
-- " st 19, 32(3) \n"
-- " st 20, 36(3) \n"
-- " st 21, 40(3) \n"
-- " st 22, 44(3) \n"
-- " st 23, 48(3) \n"
-- " st 24, 52(3) \n"
-- " st 25, 56(3) \n"
-- " st 26, 60(3) \n"
-- " st 27, 64(3) \n"
-- " st 28, 68(3) \n"
-- " st 29, 72(3) \n"
-- " st 30, 76(3) \n"
-- " st 31, 80(3) \n"
-- // Return.
-- " blr \n");
--
--#endif // __PPC64__
-diff --git a/src/heap/base/asm/riscv/push_registers_asm.cc b/src/heap/base/asm/riscv/push_registers_asm.cc
-new file mode 100644
-index 0000000..7cc13ea
---- /dev/null
-+++ b/v8/src/heap/base/asm/riscv/push_registers_asm.cc
-@@ -0,0 +1,93 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_asm.cc for why the function is not generated
-+// using clang.
-+//
-+// Calling convention source:
-+// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
-+#ifdef V8_TARGET_ARCH_RISCV64
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -112 \n"
-+ // Save return address.
-+ " sd ra, 104(sp) \n"
-+ // sp is callee-saved.
-+ " sd sp, 96(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sd s11, 88(sp) \n"
-+ " sd s10, 80(sp) \n"
-+ " sd s9, 72(sp) \n"
-+ " sd s8, 64(sp) \n"
-+ " sd s7, 56(sp) \n"
-+ " sd s6, 48(sp) \n"
-+ " sd s5, 40(sp) \n"
-+ " sd s4, 32(sp) \n"
-+ " sd s3, 24(sp) \n"
-+ " sd s2, 16(sp) \n"
-+ " sd s1, 8(sp) \n"
-+ " sd s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " ld ra, 104(sp) \n"
-+ // Restore frame pointer.
-+ " ld s0, 0(sp) \n"
-+ " addi sp, sp, 112 \n"
-+ " jr ra \n");
-+#elif V8_TARGET_ARCH_RISCV32
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -56 \n"
-+ // Save return address.
-+ " sw ra, 52(sp) \n"
-+ // sp is callee-saved.
-+ " sw sp, 48(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sw s11, 44(sp) \n"
-+ " sw s10, 40(sp) \n"
-+ " sw s9, 36(sp) \n"
-+ " sw s8, 32(sp) \n"
-+ " sw s7, 28(sp) \n"
-+ " sw s6, 24(sp) \n"
-+ " sw s5, 20(sp) \n"
-+ " sw s4, 16(sp) \n"
-+ " sw s3, 12(sp) \n"
-+ " sw s2, 8(sp) \n"
-+ " sw s1, 4(sp) \n"
-+ " sw s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " lw ra, 52(sp) \n"
-+ // Restore frame pointer.
-+ " lw s0, 0(sp) \n"
-+ " addi sp, sp, 56 \n"
-+ " jr ra \n");
-+#endif
-diff --git a/src/heap/base/asm/riscv/save_registers_asm.cc b/src/heap/base/asm/riscv/save_registers_asm.cc
-deleted file mode 100644
-index ad0bf98..0000000
---- a/v8/src/heap/base/asm/riscv/save_registers_asm.cc
-+++ /dev/null
-@@ -1,68 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Calling convention source:
--// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
--
--#if V8_HOST_ARCH_RISCV64
--// 12 64-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sd s11, 88(a0) \n"
-- " sd s10, 80(a0) \n"
-- " sd s9, 72(a0) \n"
-- " sd s8, 64(a0) \n"
-- " sd s7, 56(a0) \n"
-- " sd s6, 48(a0) \n"
-- " sd s5, 40(a0) \n"
-- " sd s4, 32(a0) \n"
-- " sd s3, 24(a0) \n"
-- " sd s2, 16(a0) \n"
-- " sd s1, 8(a0) \n"
-- " sd s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#elif V8_HOST_ARCH_RISCV32
--// 12 32-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sw s11, 44(a0) \n"
-- " sw s10, 40(a0) \n"
-- " sw s9, 36(a0) \n"
-- " sw s8, 32(a0) \n"
-- " sw s7, 28(a0) \n"
-- " sw s6, 24(a0) \n"
-- " sw s5, 20(a0) \n"
-- " sw s4, 16(a0) \n"
-- " sw s3, 12(a0) \n"
-- " sw s2, 8(a0) \n"
-- " sw s1, 4(a0) \n"
-- " sw s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#endif
-diff --git a/src/heap/base/asm/s390/push_registers_asm.cc b/src/heap/base/asm/s390/push_registers_asm.cc
-new file mode 100644
-index 0000000..ef954fa
---- /dev/null
-+++ b/v8/src/heap/base/asm/s390/push_registers_asm.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// S390 ABI source:
-+// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
-+asm(".text \n"
-+ ".align 8 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers.
-+ // r6-r13, r14 and sp(r15)
-+ " stmg %r6, %sp, 48(%sp) \n"
-+ // Allocate frame.
-+ " lay %sp, -160(%sp) \n"
-+ // Pass 1st parameter (r2) unchanged (Stack*).
-+ // Pass 2nd parameter (r3) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r4; IterateStackCallback).
-+ " lgr %r5, %r4 \n"
-+ // Pass sp as 3rd parameter. 160+48 to point
-+ // to callee saved region stored above.
-+ " lay %r4, 208(%sp) \n"
-+ // Call the callback.
-+ " basr %r14, %r5 \n"
-+ " lmg %r14,%sp, 272(%sp) \n"
-+ " br %r14 \n");
-diff --git a/src/heap/base/asm/s390/save_registers_asm.cc b/src/heap/base/asm/s390/save_registers_asm.cc
-deleted file mode 100644
-index be92cc2..0000000
---- a/v8/src/heap/base/asm/s390/save_registers_asm.cc
-+++ /dev/null
-@@ -1,34 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// S390 ABI source:
--// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
--
--// 10 64-bit registers = 10 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 10,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".align 8 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r2: [ intptr_t* buffer ]
-- // Save the callee-saved registers: r6-r13, r14 and sp(r15).
-- " stmg %r6, %sp, 0(%r2) \n"
-- // Return.
-- " br %r14 \n");
-diff --git a/src/heap/base/asm/x64/push_registers_asm.cc b/src/heap/base/asm/x64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1781a58
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_asm.cc
-@@ -0,0 +1,106 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// We cannot rely on clang generating the function and right symbol mangling
-+// as `__attribute__((naked))` does not prevent clang from generating TSAN
-+// function entry stubs (`__tsan_func_entry`). Even with
-+// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
-+// stub.
-+// See https://bugs.llvm.org/show_bug.cgi?id=45400.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
-+// Otherwise, undefined.
-+#ifdef _WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 232 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rsi \n"
-+ " push %rdi \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ " sub $160, %rsp \n"
-+ // Use aligned instrs as we are certain that the stack is properly aligned.
-+ " movdqa %xmm6, 144(%rsp) \n"
-+ " movdqa %xmm7, 128(%rsp) \n"
-+ " movdqa %xmm8, 112(%rsp) \n"
-+ " movdqa %xmm9, 96(%rsp) \n"
-+ " movdqa %xmm10, 80(%rsp) \n"
-+ " movdqa %xmm11, 64(%rsp) \n"
-+ " movdqa %xmm12, 48(%rsp) \n"
-+ " movdqa %xmm13, 32(%rsp) \n"
-+ " movdqa %xmm14, 16(%rsp) \n"
-+ " movdqa %xmm15, (%rsp) \n"
-+ // Pass 1st parameter (rcx) unchanged (Stack*).
-+ // Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r8; IterateStackCallback)
-+ " mov %r8, %r9 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %r8 \n"
-+ // Call the callback.
-+ " call *%r9 \n"
-+ // Pop the callee-saved registers.
-+ " add $224, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#else // !_WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 56 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
-+asm(
-+#ifdef __APPLE__
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !__APPLE__
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !__APPLE__
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ // Pass 1st parameter (rdi) unchanged (Stack*).
-+ // Pass 2nd parameter (rsi) unchanged (StackVisitor*).
-+ // Save 3rd parameter (rdx; IterateStackCallback)
-+ " mov %rdx, %r8 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %rdx \n"
-+ // Call the callback.
-+ " call *%r8 \n"
-+ // Pop the callee-saved registers.
-+ " add $48, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/push_registers_masm.asm b/src/heap/base/asm/x64/push_registers_masm.asm
-new file mode 100644
-index 0000000..a32e193
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_masm.asm
-@@ -0,0 +1,57 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 232 bytes which maintains 16-byte stack
-+ ;; alignment at the call.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+ ;;
-+ ;; rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ push rbp
-+ mov rbp, rsp
-+ push 0CDCDCDh ;; Dummy for alignment.
-+ push rsi
-+ push rdi
-+ push rbx
-+ push r12
-+ push r13
-+ push r14
-+ push r15
-+ sub rsp, 160
-+ ;; Use aligned instrs as we are certain that the stack is properly aligned.
-+ movdqa xmmword ptr [rsp + 144], xmm6
-+ movdqa xmmword ptr [rsp + 128], xmm7
-+ movdqa xmmword ptr [rsp + 112], xmm8
-+ movdqa xmmword ptr [rsp + 96], xmm9
-+ movdqa xmmword ptr [rsp + 80], xmm10
-+ movdqa xmmword ptr [rsp + 64], xmm11
-+ movdqa xmmword ptr [rsp + 48], xmm12
-+ movdqa xmmword ptr [rsp + 32], xmm13
-+ movdqa xmmword ptr [rsp + 16], xmm14
-+ movdqa xmmword ptr [rsp], xmm15
-+ ;; Pass 1st parameter (rcx) unchanged (Stack*).
-+ ;; Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ ;; Save 3rd parameter (r8; IterateStackCallback)
-+ mov r9, r8
-+ ;; Pass 3rd parameter as rsp (stack pointer).
-+ mov r8, rsp
-+ ;; Call the callback.
-+ call r9
-+ ;; Pop the callee-saved registers.
-+ add rsp, 224
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop rbp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/x64/save_registers_asm.cc b/src/heap/base/asm/x64/save_registers_asm.cc
-deleted file mode 100644
-index 855a654..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,94 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--//
--// We cannot rely on clang generating the function and right symbol mangling
--// as `__attribute__((naked))` does not prevent clang from generating TSAN
--// function entry stubs (`__tsan_func_entry`). Even with
--// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
--// stub.
--// See https://bugs.llvm.org/show_bug.cgi?id=45400.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
--// Otherwise, undefined.
--
--#ifdef _WIN64
--// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
--
--// 7 64-bit registers + 1 for alignment purposes = 8 * 1 = 8 intprt_t
--// 10 128-bit registers = 10 * 2 = 20 intptr_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 28,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // %rcx: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rsi, 0(%rcx) \n"
-- " mov %rdi, 8(%rcx) \n"
-- " mov %rbx, 16(%rcx) \n"
-- " mov %r12, 24(%rcx) \n"
-- " mov %r13, 32(%rcx) \n"
-- " mov %r14, 40(%rcx) \n"
-- " mov %r15, 48(%rcx) \n"
-- // Skip one slot to achieve proper alignment and use aligned instructions,
-- // as we are sure that the buffer is properly aligned.
-- " movdqa %xmm6, 64(%rcx) \n"
-- " movdqa %xmm7, 80(%rcx) \n"
-- " movdqa %xmm8, 96(%rcx) \n"
-- " movdqa %xmm9, 112(%rcx) \n"
-- " movdqa %xmm10, 128(%rcx) \n"
-- " movdqa %xmm11, 144(%rcx) \n"
-- " movdqa %xmm12, 160(%rcx) \n"
-- " movdqa %xmm13, 176(%rcx) \n"
-- " movdqa %xmm14, 192(%rcx) \n"
-- " movdqa %xmm15, 208(%rcx) \n"
-- // Return.
-- " pop %rbp \n"
-- " ret \n");
--
--#else // !_WIN64
--// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
--
--// 5 64-bit registers = 5 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 5,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#ifdef __APPLE__
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !__APPLE__
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !__APPLE__
-- // %rdi: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rbx, 0(%rdi) \n"
-- " mov %r12, 8(%rdi) \n"
-- " mov %r13, 16(%rdi) \n"
-- " mov %r14, 24(%rdi) \n"
-- " mov %r15, 32(%rdi) \n"
-- // Restore %rbp as it was used as frame pointer and return.
-- " pop %rbp \n"
-- " ret \n");
--
--#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/save_registers_masm.asm b/src/heap/base/asm/x64/save_registers_masm.asm
-deleted file mode 100644
-index 29946a4..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_masm.asm
-+++ /dev/null
-@@ -1,43 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--SaveCalleeSavedRegisters:
-- ;; %rcx: [ intptr_t* buffer ]
-- ;; %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- push rbp
-- mov rbp, rsp
-- ;; Save the callee-saved registers.
-- mov qword ptr [rcx], rsi
-- mov qword ptr [rcx + 8], rdi
-- mov qword ptr [rcx + 16], rbx
-- mov qword ptr [rcx + 24], r12
-- mov qword ptr [rcx + 32], r13
-- mov qword ptr [rcx + 40], r14
-- mov qword ptr [rcx + 48], r15
-- ;; Skip one slot to achieve proper alignment and use aligned instructions,
-- ;; as we are sure that the buffer is properly aligned.
-- movdqa xmmword ptr [rcx + 64], xmm6
-- movdqa xmmword ptr [rcx + 80], xmm7
-- movdqa xmmword ptr [rcx + 96], xmm8
-- movdqa xmmword ptr [rcx + 112], xmm9
-- movdqa xmmword ptr [rcx + 128], xmm10
-- movdqa xmmword ptr [rcx + 144], xmm11
-- movdqa xmmword ptr [rcx + 160], xmm12
-- movdqa xmmword ptr [rcx + 176], xmm13
-- movdqa xmmword ptr [rcx + 192], xmm14
-- movdqa xmmword ptr [rcx + 208], xmm15
-- ;; Restore %rbp as it was used as frame pointer and return.
-- pop rbp
-- ret
--
--end
-diff --git a/src/heap/base/stack.cc b/src/heap/base/stack.cc
-index d8e618d..54a8697 100644
---- a/v8/src/heap/base/stack.cc
-+++ b/v8/src/heap/base/stack.cc
-@@ -6,18 +6,21 @@
-
- #include <limits>
-
-+#include "src/base/platform/platform.h"
- #include "src/base/sanitizer/asan.h"
- #include "src/base/sanitizer/msan.h"
- #include "src/base/sanitizer/tsan.h"
-
- namespace heap::base {
-
--Stack::Stack(const void* stack_start) : stack_start_(stack_start) {}
--
--void Stack::SetStackStart(const void* stack_start) {
-- DCHECK(!context_);
-- stack_start_ = stack_start;
--}
-+// Function with architecture-specific implementation:
-+// Pushes all callee-saved registers to the stack and invokes the callback,
-+// passing the supplied pointers (stack and argument) and the intended stack
-+// marker.
-+using IterateStackCallback = void (*)(const Stack*, StackVisitor*, const void*);
-+extern "C" void PushAllRegistersAndIterateStack(const Stack* stack,
-+ StackVisitor* visitor,
-+ IterateStackCallback callback);
-
- bool Stack::IsOnStack(const void* slot) const {
- DCHECK_NOT_NULL(stack_start_);
-@@ -141,97 +144,62 @@
-
- } // namespace
-
--void Stack::IteratePointers(StackVisitor* visitor) const {
-- DCHECK_NOT_NULL(stack_start_);
-- DCHECK(context_);
-- DCHECK_NOT_NULL(context_->stack_marker);
--
-+// static
-+void Stack::IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end) {
- #ifdef V8_USE_ADDRESS_SANITIZER
- const void* asan_fake_stack = __asan_get_current_fake_stack();
- #else
- const void* asan_fake_stack = nullptr;
- #endif // V8_USE_ADDRESS_SANITIZER
-
-- // Iterate through the registers.
-- for (intptr_t value : context_->registers) {
-- const void* address = reinterpret_cast<const void*>(value);
-- MSAN_MEMORY_IS_INITIALIZED(&address, sizeof(address));
-- if (address == nullptr) continue;
-- visitor->VisitPointer(address);
-- IterateAsanFakeFrameIfNecessary(visitor, asan_fake_stack, stack_start_,
-- context_->stack_marker, address);
-- }
--
- // Iterate through the stack.
- // All supported platforms should have their stack aligned to at least
- // sizeof(void*).
- constexpr size_t kMinStackAlignment = sizeof(void*);
-- CHECK_EQ(0u, reinterpret_cast<uintptr_t>(context_->stack_marker) &
-- (kMinStackAlignment - 1));
-- IteratePointersInStack(
-- visitor, reinterpret_cast<const void* const*>(context_->stack_marker),
-- stack_start_, asan_fake_stack);
-+ CHECK_EQ(0u,
-+ reinterpret_cast<uintptr_t>(stack_end) & (kMinStackAlignment - 1));
-+ IteratePointersInStack(visitor,
-+ reinterpret_cast<const void* const*>(stack_end),
-+ stack->stack_start_, asan_fake_stack);
-
-- for (const auto& stack : inactive_stacks_) {
-- IteratePointersInStack(visitor, stack.top, stack.start, asan_fake_stack);
-+ for (const auto& segment : stack->inactive_stacks_) {
-+ IteratePointersInStack(visitor, segment.top, segment.start,
-+ asan_fake_stack);
- }
-
- IterateUnsafeStackIfNecessary(visitor);
- }
-
--namespace {
--// Function with architecture-specific implementation:
--// Saves all callee-saved registers in the specified buffer.
--extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-+void Stack::IteratePointers(StackVisitor* visitor) const {
-+ // TODO(v8:13493): Remove the implication as soon as IsOnCurrentStack is
-+ // compatible with stack switching.
-+ DCHECK_IMPLIES(!wasm_stack_switching_, IsOnCurrentStack(stack_start_));
-+ PushAllRegistersAndIterateStack(this, visitor, &IteratePointersImpl);
-+ // No need to deal with callee-saved registers as they will be kept alive by
-+ // the regular conservative stack iteration.
-+ // TODO(chromium:1056170): Add support for SIMD and/or filtering.
-+ IterateUnsafeStackIfNecessary(visitor);
-+}
-+
-+void Stack::IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const {
-+ DCHECK_NOT_NULL(stack_start_);
-+ DCHECK_NOT_NULL(stack_end);
-+ DCHECK_GE(stack_start_, stack_end);
-+ IteratePointersImpl(this, visitor, stack_end);
-+}
-
- #ifdef DEBUG
--
--bool IsOnCurrentStack(const void* ptr) {
-+// static
-+bool Stack::IsOnCurrentStack(const void* ptr) {
- DCHECK_NOT_NULL(ptr);
- const void* current_stack_start = v8::base::Stack::GetStackStart();
- const void* current_stack_top = v8::base::Stack::GetCurrentStackPosition();
- return ptr <= current_stack_start && ptr >= current_stack_top;
- }
--
- #endif // DEBUG
-
--} // namespace
--
--void Stack::SaveContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- // Contexts can be nested but the marker and the registers are only saved on
-- // the first invocation.
-- if (context_) {
-- ++context_->nesting_counter;
-- return;
-- }
-- // Allocate the context and set the marker.
-- const void* stack_top = v8::base::Stack::GetCurrentStackPosition();
-- DCHECK_NOT_NULL(stack_top);
-- context_ = std::make_unique<Context>(stack_top);
-- // TODO(v8:13493): Remove the implication as soon as IsValidMarker is
-- // compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, stack_top <= stack_start_);
-- context_->stack_marker = stack_top;
-- // Save the registers.
-- SaveCalleeSavedRegisters(context_->registers.data());
--}
--
--void Stack::ClearContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- DCHECK(context_);
-- // Skip clearing the context if that was a nested invocation.
-- if (context_->nesting_counter > 0) {
-- --context_->nesting_counter;
-- return;
-- }
-- context_.reset();
--}
--
- void Stack::AddStackSegment(const void* start, const void* top) {
- DCHECK_LE(top, start);
- inactive_stacks_.push_back({start, top});
-diff --git a/src/heap/base/stack.h b/src/heap/base/stack.h
-index 06edf4c..4b0a14e 100644
---- a/v8/src/heap/base/stack.h
-+++ b/v8/src/heap/base/stack.h
-@@ -5,10 +5,9 @@
- #ifndef V8_HEAP_BASE_STACK_H_
- #define V8_HEAP_BASE_STACK_H_
-
--#include <memory>
-+#include <vector>
-
- #include "src/base/macros.h"
--#include "src/base/platform/platform.h"
-
- namespace heap::base {
-
-@@ -30,96 +29,54 @@
- // of relevant GC stack regions where interesting pointers can be found.
- class V8_EXPORT_PRIVATE Stack final {
- public:
-- // The size of the buffer for storing the callee-saved registers is going to
-- // be equal to kNumberOfCalleeSavedRegisters * sizeof(intptr_t).
-- // This is architecture-specific.
-- static constexpr int NumberOfCalleeSavedRegisters() {
-- return Context::kNumberOfCalleeSavedRegisters;
-- }
--
-- explicit Stack(const void* stack_start = nullptr);
-+ explicit Stack(const void* stack_start = nullptr,
-+ bool wasm_stack_switching = false)
-+ : stack_start_(stack_start),
-+ wasm_stack_switching_(wasm_stack_switching) {}
-
- // Sets the start of the stack.
-- void SetStackStart(const void* stack_start);
-+ void SetStackStart(const void* stack_start, bool wasm_stack_switching) {
-+ stack_start_ = stack_start;
-+ wasm_stack_switching_ = wasm_stack_switching;
-+ }
-
- // Returns true if |slot| is part of the stack and false otherwise.
- bool IsOnStack(const void* slot) const;
-
-- // Word-aligned iteration of the stack and the saved registers.
-- // Slot values are passed on to `visitor`.
-+ // Word-aligned iteration of the stack. Callee-saved registers are pushed to
-+ // the stack before iterating pointers. Slot values are passed on to
-+ // `visitor`.
- void IteratePointers(StackVisitor* visitor) const;
-
-- // Saves and clears the stack context, i.e., it sets the stack marker and
-- // saves the registers.
-- // TODO(v8:13493): The parameter is for suppressing the invariant check in
-- // the case of WASM stack switching. It will be removed as soon as context
-- // saving becomes compatible with stack switching.
-- void SaveContext(bool check_invariant = true);
-- void ClearContext(bool check_invariant = true);
-+ // Word-aligned iteration of the stack, starting at `stack_end`. Slot values
-+ // are passed on to `visitor`. This is intended to be used with verifiers that
-+ // only visit a subset of the stack of IteratePointers().
-+ //
-+ // **Ignores:**
-+ // - Callee-saved registers.
-+ // - SafeStack.
-+ void IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const;
-
- void AddStackSegment(const void* start, const void* top);
- void ClearStackSegments();
-
- private:
-- struct Context {
-- // The following constant is architecture-specific.
--#if V8_HOST_ARCH_IA32
-- // Must be consistent with heap/base/asm/ia32/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 3;
--#elif V8_HOST_ARCH_X64
--#ifdef _WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 28;
--#else // !_WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 5;
--#endif // !_WIN64
--#elif V8_HOST_ARCH_ARM64
-- // Must be consistent with heap/base/asm/arm64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_ARM
-- // Must be consistent with heap/base/asm/arm/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 8;
--#elif V8_HOST_ARCH_PPC64
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_PPC
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_MIPS64
-- // Must be consistent with heap/base/asm/mips64el/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 9;
--#elif V8_HOST_ARCH_LOONG64
-- // Must be consistent with heap/base/asm/loong64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_S390
-- // Must be consistent with heap/base/asm/s390/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 10;
--#elif V8_HOST_ARCH_RISCV32
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#elif V8_HOST_ARCH_RISCV64
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#else
--#error Unknown architecture.
-+#ifdef DEBUG
-+ static bool IsOnCurrentStack(const void* ptr);
- #endif
-
-- explicit Context(const void* marker) : stack_marker(marker) {}
--
-- int nesting_counter = 0;
-- const void* stack_marker;
-- // We always double-align this buffer, to support for longer registers,
-- // e.g., 128-bit registers in WIN64.
-- alignas(2 * sizeof(intptr_t))
-- std::array<intptr_t, kNumberOfCalleeSavedRegisters> registers;
-- };
-+ static void IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end);
-
- const void* stack_start_;
-- std::unique_ptr<Context> context_;
-
-- // Stack segments that may also contain pointers and should be
-- // scanned.
-+ // TODO(v8:13493): This is for suppressing the check that we are in the
-+ // correct stack, in the case of WASM stack switching. It will be removed as
-+ // soon as context saving becomes compatible with stack switching.
-+ bool wasm_stack_switching_;
-+
-+ // Stack segments that may also contain pointers and should be scanned.
- struct StackSegments {
- const void* start;
- const void* top;
-diff --git a/src/heap/cppgc-js/cpp-heap.cc b/src/heap/cppgc-js/cpp-heap.cc
-index c27c612..63c5212 100644
---- a/v8/src/heap/cppgc-js/cpp-heap.cc
-+++ b/v8/src/heap/cppgc-js/cpp-heap.cc
-@@ -16,6 +16,7 @@
- #include "src/base/logging.h"
- #include "src/base/macros.h"
- #include "src/base/optional.h"
-+#include "src/base/platform/platform.h"
- #include "src/base/platform/time.h"
- #include "src/execution/isolate-inl.h"
- #include "src/flags/flags.h"
-@@ -839,7 +840,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- UnifiedHeapMarkingVerifier verifier(*this, *collection_type_);
-- verifier.Run(stack_state_of_prev_gc(),
-+ verifier.Run(stack_state_of_prev_gc(), stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -942,7 +943,7 @@
- // Finish sweeping in case it is still running.
- sweeper().FinishIfRunning();
-
-- SaveStackContextScope stack_context_scope(stack());
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
-
- if (isolate_) {
- reinterpret_cast<v8::Isolate*>(isolate_)
-diff --git a/src/heap/cppgc/heap-base.h b/src/heap/cppgc/heap-base.h
-index ac1dd3f..29a88b2 100644
---- a/v8/src/heap/cppgc/heap-base.h
-+++ b/v8/src/heap/cppgc/heap-base.h
-@@ -183,6 +183,13 @@
- stack_state_of_prev_gc_ = stack_state;
- }
-
-+ const void* stack_end_of_current_gc() const {
-+ return stack_end_of_current_gc_;
-+ }
-+ void SetStackEndOfCurrentGC(const void* stack_end) {
-+ stack_end_of_current_gc_ = stack_end;
-+ }
-+
- void SetInAtomicPauseForTesting(bool value) { in_atomic_pause_ = value; }
-
- virtual void StartIncrementalGarbageCollectionForTesting() = 0;
-@@ -288,6 +295,10 @@
- EmbedderStackState::kNoHeapPointers;
- std::unique_ptr<EmbedderStackState> override_stack_state_;
-
-+ // Marker that signals end of the interesting stack region in which on-heap
-+ // pointers can be found.
-+ const void* stack_end_of_current_gc_ = nullptr;
-+
- bool in_atomic_pause_ = false;
-
- int creation_thread_id_ = v8::base::OS::GetCurrentThreadId();
-diff --git a/src/heap/cppgc/heap.cc b/src/heap/cppgc/heap.cc
-index 7769412..28a11fc 100644
---- a/v8/src/heap/cppgc/heap.cc
-+++ b/v8/src/heap/cppgc/heap.cc
-@@ -166,10 +166,9 @@
- DCHECK(!in_no_gc_scope());
- CHECK(!in_disallow_gc_scope());
- config_.stack_state = stack_state;
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
- in_atomic_pause_ = true;
-
-- stack()->SaveContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- // Check if the young generation was enabled. We must enable young generation
- // before calling the custom weak callbacks to make sure that the callbacks
-@@ -188,7 +187,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- MarkingVerifier verifier(*this, config_.collection_type);
-- verifier.Run(config_.stack_state,
-+ verifier.Run(config_.stack_state, stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -197,8 +196,6 @@
- #endif
- USE(bytes_allocated_in_prefinalizers);
-
-- stack()->ClearContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- ResetRememberedSet();
- #endif // defined(CPPGC_YOUNG_GENERATION)
-diff --git a/src/heap/cppgc/marking-verifier.cc b/src/heap/cppgc/marking-verifier.cc
-index 5508766..b7127c2 100644
---- a/v8/src/heap/cppgc/marking-verifier.cc
-+++ b/v8/src/heap/cppgc/marking-verifier.cc
-@@ -45,7 +45,8 @@
- collection_type_(collection_type) {}
-
- void MarkingVerifierBase::Run(
-- StackState stack_state, v8::base::Optional<size_t> expected_marked_bytes) {
-+ StackState stack_state, const void* stack_end,
-+ v8::base::Optional<size_t> expected_marked_bytes) {
- Traverse(heap_.raw_heap());
- // Avoid verifying the stack when running with TSAN as the TSAN runtime changes
- // stack contents when e.g. working with locks. Specifically, the marker uses
-@@ -62,7 +63,7 @@
- #if !defined(THREAD_SANITIZER) && !defined(CPPGC_POINTER_COMPRESSION)
- if (stack_state == StackState::kMayContainHeapPointers) {
- in_construction_objects_ = &in_construction_objects_stack_;
-- heap_.stack()->IteratePointers(this);
-+ heap_.stack()->IteratePointersUnsafe(this, stack_end);
- // The objects found through the unsafe iteration are only a subset of the
- // regular iteration as they miss objects held alive only from callee-saved
- // registers that are never pushed on the stack and SafeStack.
-diff --git a/src/heap/cppgc/marking-verifier.h b/src/heap/cppgc/marking-verifier.h
-index 5132b3a..5136f29 100644
---- a/v8/src/heap/cppgc/marking-verifier.h
-+++ b/v8/src/heap/cppgc/marking-verifier.h
-@@ -41,7 +41,7 @@
- MarkingVerifierBase(const MarkingVerifierBase&) = delete;
- MarkingVerifierBase& operator=(const MarkingVerifierBase&) = delete;
-
-- void Run(StackState, v8::base::Optional<size_t>);
-+ void Run(StackState, const void*, v8::base::Optional<size_t>);
-
- protected:
- MarkingVerifierBase(HeapBase&, CollectionType, VerificationState&,
-diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index 4994a3a..f4b7da0 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -1685,7 +1685,22 @@
- DevToolsTraceEventScope devtools_trace_event_scope(
- this, IsYoungGenerationCollector(collector) ? "MinorGC" : "MajorGC",
- GarbageCollectionReasonToString(gc_reason));
-- SaveStackContextScope stack_context_scope(&stack());
-+
-+ if (cpp_heap()) {
-+ if (collector == GarbageCollector::MARK_COMPACTOR ||
-+ (collector == GarbageCollector::MINOR_MARK_COMPACTOR &&
-+ CppHeap::From(cpp_heap())->generational_gc_supported())) {
-+ // CppHeap needs a stack marker at the top of all entry points to allow
-+ // deterministic passes over the stack. E.g., a verifier that should
-+ // only find a subset of references of the marker.
-+ //
-+ // TODO(chromium:1056170): Consider adding a component that keeps track
-+ // of relevant GC stack regions where interesting pointers can be found.
-+ static_cast<v8::internal::CppHeap*>(cpp_heap())
-+ ->SetStackEndOfCurrentGC(
-+ v8::base::Stack::GetCurrentStackPosition());
-+ }
-+ }
-
- GarbageCollectionPrologue(gc_reason, gc_callback_flags);
- {
-@@ -2396,8 +2411,6 @@
- DCHECK(incremental_marking_->IsStopped());
- DCHECK_NOT_NULL(isolate()->global_safepoint());
-
-- SaveStackContextScope stack_context_scope(&stack());
--
- isolate()->global_safepoint()->IterateClientIsolates([](Isolate* client) {
- client->heap()->FreeSharedLinearAllocationAreas();
-
-@@ -5809,7 +5822,12 @@
- }
-
- void Heap::SetStackStart(void* stack_start) {
-- stack().SetStackStart(stack_start);
-+#if V8_ENABLE_WEBASSEMBLY
-+ stack().SetStackStart(stack_start,
-+ v8_flags.experimental_wasm_stack_switching);
-+#else
-+ stack().SetStackStart(stack_start, false);
-+#endif // V8_ENABLE_WEBASSEMBLY
- }
-
- ::heap::base::Stack& Heap::stack() {
-@@ -6391,8 +6409,7 @@
- filtering_(filtering),
- filter_(nullptr),
- space_iterator_(nullptr),
-- object_iterator_(nullptr),
-- stack_context_scope_(&heap->stack()) {
-+ object_iterator_(nullptr) {
- heap_->MakeHeapIterable();
- // Start the iteration.
- space_iterator_ = new SpaceIterator(heap_);
-@@ -7371,28 +7388,5 @@
- CppClassNamesAsHeapObjectNameScope::~CppClassNamesAsHeapObjectNameScope() =
- default;
-
--SaveStackContextScope::SaveStackContextScope(::heap::base::Stack* stack)
-- : stack_(stack) {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->SaveContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->SaveContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
--SaveStackContextScope::~SaveStackContextScope() {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->ClearContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->ClearContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
- } // namespace internal
- } // namespace v8
-diff --git a/src/heap/heap.h b/src/heap/heap.h
-index c93d89c..bc565ca 100644
---- a/v8/src/heap/heap.h
-+++ b/v8/src/heap/heap.h
-@@ -2633,17 +2633,6 @@
- Heap* heap_;
- };
-
--// TODO(v8:13493): This class will move to src/heap/base/stack.h once its
--// implementation no longer needs access to V8 flags.
--class V8_EXPORT_PRIVATE V8_NODISCARD SaveStackContextScope {
-- public:
-- explicit SaveStackContextScope(::heap::base::Stack* stack);
-- ~SaveStackContextScope();
--
-- protected:
-- ::heap::base::Stack* stack_;
--};
--
- class V8_NODISCARD DisableConservativeStackScanningScopeForTesting {
- public:
- explicit inline DisableConservativeStackScanningScopeForTesting(Heap* heap)
-@@ -2695,7 +2684,6 @@
- SpaceIterator* space_iterator_;
- // Object iterator for the space currently being iterated.
- std::unique_ptr<ObjectIterator> object_iterator_;
-- SaveStackContextScope stack_context_scope_;
-
- DISALLOW_GARBAGE_COLLECTION(no_heap_allocation_)
- };
-diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
-index e076418..f0b3058 100644
---- a/v8/src/profiler/heap-snapshot-generator.cc
-+++ b/v8/src/profiler/heap-snapshot-generator.cc
-@@ -2055,16 +2055,14 @@
- // its custom name to a generic builtin.
- RootsReferencesExtractor extractor(this);
- ReadOnlyRoots(heap_).Iterate(&extractor);
-- {
-- SaveStackContextScope scope(&heap_->stack());
-- heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-- // TODO(v8:11800): The heap snapshot generator incorrectly considers the
-- // weak string tables as strong retainers. Move IterateWeakRoots after
-- // SetVisitingWeakRoots.
-- heap_->IterateWeakRoots(&extractor, {});
-- extractor.SetVisitingWeakRoots();
-- heap_->IterateWeakGlobalHandles(&extractor);
-- }
-+ heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-+ // TODO(v8:11800): The heap snapshot generator incorrectly considers the weak
-+ // string tables as strong retainers. Move IterateWeakRoots after
-+ // SetVisitingWeakRoots.
-+ heap_->IterateWeakRoots(&extractor, {});
-+ extractor.SetVisitingWeakRoots();
-+ heap_->IterateWeakGlobalHandles(&extractor);
-+
- bool interrupted = false;
-
- CombinedHeapObjectIterator iterator(heap_,
diff --git a/chromium-111-v8-std-layout2.patch b/chromium-111-v8-std-layout2.patch
deleted file mode 100644
index db983af..0000000
--- a/chromium-111-v8-std-layout2.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 916641c08de44e0a915df223d55781c6c912717c Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Thu, 19 Jan 2023 13:43:10 +0100
-Subject: [PATCH] [heap] Move the Stack object from ThreadLocalTop to Isolate
-
-Stack information is thread-specific and, until now, it was stored in a
-field in ThreadLocalTop. This CL moves stack information to the isolate
-and makes sure to update the stack start whenever a main thread enters
-the isolate. At the same time, the Stack object is refactored and
-simplified.
-
-As a side effect, after removing the Stack object, ThreadLocalTop
-satisfies the std::standard_layout trait; this fixes some issues
-observed with different C++ compilers.
-
-Bug: v8:13630
-Bug: v8:13257
-Change-Id: I026a35af3bc6999a09b21f277756d4454c086343
-
-(stripped tests)
----
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 31536a1..22b8492 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3069,21 +3069,23 @@
- void Isolate::RecordStackSwitchForScanning() {
- Object current = root(RootIndex::kActiveContinuation);
- DCHECK(!current.IsUndefined());
-- thread_local_top()->stack_.ClearStackSegments();
-- wasm::StackMemory* stack = Managed<wasm::StackMemory>::cast(
-- WasmContinuationObject::cast(current).stack())
-- .get()
-- .get();
-+ stack().ClearStackSegments();
-+ wasm::StackMemory* wasm_stack =
-+ Managed<wasm::StackMemory>::cast(
-+ WasmContinuationObject::cast(current).stack())
-+ .get()
-+ .get();
- current = WasmContinuationObject::cast(current).parent();
-- heap()->SetStackStart(reinterpret_cast<void*>(stack->base()));
-+ heap()->SetStackStart(reinterpret_cast<void*>(wasm_stack->base()));
- // We don't need to add all inactive stacks. Only the ones in the active chain
- // may contain cpp heap pointers.
- while (!current.IsUndefined()) {
- auto cont = WasmContinuationObject::cast(current);
-- auto* stack = Managed<wasm::StackMemory>::cast(cont.stack()).get().get();
-- thread_local_top()->stack_.AddStackSegment(
-- reinterpret_cast<const void*>(stack->base()),
-- reinterpret_cast<const void*>(stack->jmpbuf()->sp));
-+ auto* wasm_stack =
-+ Managed<wasm::StackMemory>::cast(cont.stack()).get().get();
-+ stack().AddStackSegment(
-+ reinterpret_cast<const void*>(wasm_stack->base()),
-+ reinterpret_cast<const void*>(wasm_stack->jmpbuf()->sp));
- current = cont.parent();
- }
- }
-@@ -3371,23 +3373,13 @@
- Isolate* saved_isolate = isolate->TryGetCurrent();
- SetIsolateThreadLocals(isolate, nullptr);
- isolate->set_thread_id(ThreadId::Current());
-- if (saved_isolate) {
-- isolate->thread_local_top()->stack_ =
-- std::move(saved_isolate->thread_local_top()->stack_);
-- } else {
-- isolate->heap()->SetStackStart(base::Stack::GetStackStart());
-- }
-+ isolate->heap()->SetStackStart(base::Stack::GetStackStart());
-
- bool owns_shared_isolate = isolate->owns_shared_isolate_;
- Isolate* maybe_shared_isolate = isolate->shared_isolate_;
-
- isolate->Deinit();
-
-- // Restore the saved isolate's stack.
-- if (saved_isolate)
-- saved_isolate->thread_local_top()->stack_ =
-- std::move(isolate->thread_local_top()->stack_);
--
- #ifdef DEBUG
- non_disposed_isolates_--;
- #endif // DEBUG
-@@ -4652,6 +4644,10 @@
- void Isolate::Enter() {
- Isolate* current_isolate = nullptr;
- PerIsolateThreadData* current_data = CurrentPerIsolateThreadData();
-+
-+ // Set the stack start for the main thread that enters the isolate.
-+ heap()->SetStackStart(base::Stack::GetStackStart());
-+
- if (current_data != nullptr) {
- current_isolate = current_data->isolate_;
- DCHECK_NOT_NULL(current_isolate);
-diff --git a/src/execution/isolate.h b/src/execution/isolate.h
-index afc3d0b..415e476 100644
---- a/v8/src/execution/isolate.h
-+++ b/v8/src/execution/isolate.h
-@@ -32,6 +32,7 @@
- #include "src/execution/stack-guard.h"
- #include "src/handles/handles.h"
- #include "src/handles/traced-handles.h"
-+#include "src/heap/base/stack.h"
- #include "src/heap/factory.h"
- #include "src/heap/heap.h"
- #include "src/heap/read-only-heap.h"
-@@ -2028,6 +2029,8 @@
- SimulatorData* simulator_data() { return simulator_data_; }
- #endif
-
-+ ::heap::base::Stack& stack() { return stack_; }
-+
- #ifdef V8_ENABLE_WEBASSEMBLY
- wasm::StackMemory*& wasm_stacks() { return wasm_stacks_; }
- // Update the thread local's Stack object so that it is aware of the new stack
-@@ -2526,6 +2529,9 @@
- // The mutex only guards adding pages, the retrieval is signal safe.
- base::Mutex code_pages_mutex_;
-
-+ // Stack information for the main thread.
-+ ::heap::base::Stack stack_;
-+
- #ifdef V8_ENABLE_WEBASSEMBLY
- wasm::StackMemory* wasm_stacks_;
- #endif
-diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc
-index c115ae0..05cc20b 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -37,7 +37,6 @@
- current_embedder_state_ = nullptr;
- failed_access_check_callback_ = nullptr;
- thread_in_wasm_flag_address_ = kNullAddress;
-- stack_ = ::heap::base::Stack();
- }
-
- void ThreadLocalTop::Initialize(Isolate* isolate) {
-@@ -45,12 +44,8 @@
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
- #if V8_ENABLE_WEBASSEMBLY
-- stack_.SetStackStart(base::Stack::GetStackStart(),
-- v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
--#else
-- stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h
-index 43fec0a..989c817 100644
---- a/v8/src/execution/thread-local-top.h
-+++ b/v8/src/execution/thread-local-top.h
-@@ -10,7 +10,6 @@
- #include "include/v8-unwinder.h"
- #include "src/common/globals.h"
- #include "src/execution/thread-id.h"
--#include "src/heap/base/stack.h"
- #include "src/objects/contexts.h"
- #include "src/utils/utils.h"
-
-@@ -30,7 +29,7 @@
- // TODO(all): This is not particularly beautiful. We should probably
- // refactor this to really consist of just Addresses and 32-bit
- // integer fields.
-- static constexpr uint32_t kSizeInBytes = 30 * kSystemPointerSize;
-+ static constexpr uint32_t kSizeInBytes = 25 * kSystemPointerSize;
-
- // Does early low-level initialization that does not depend on the
- // isolate being present.
-@@ -147,9 +146,6 @@
-
- // Address of the thread-local "thread in wasm" flag.
- Address thread_in_wasm_flag_address_;
--
-- // Stack information.
-- ::heap::base::Stack stack_;
- };
-
- } // namespace internal
-diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index f4b7da0..6efd486 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -5830,9 +5830,7 @@
- #endif // V8_ENABLE_WEBASSEMBLY
- }
-
--::heap::base::Stack& Heap::stack() {
-- return isolate_->thread_local_top()->stack_;
--}
-+::heap::base::Stack& Heap::stack() { return isolate_->stack(); }
-
- void Heap::StartTearDown() {
- // Finish any ongoing sweeping to avoid stray background tasks still accessing
diff --git a/chromium-94.0.4606.71-InkDropHost-crash.patch b/chromium-94.0.4606.71-InkDropHost-crash.patch
deleted file mode 100644
index b5e2794..0000000
--- a/chromium-94.0.4606.71-InkDropHost-crash.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
---- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
-+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
-@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
- // Used to observe View and inform the InkDrop of host-transform changes.
- ViewLayerTransformObserver host_view_transform_observer_;
-
-+ // Declared before |ink_drop_|, because InkDropImpl may call
-+ // RemoveInkDropLayer on partly destructed InkDropHost. In
-+ // that case |ink_drop_mask_| must be still valid.
-+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
-+
- // Should not be accessed directly. Use GetInkDrop() instead.
- std::unique_ptr<InkDrop> ink_drop_;
-
-@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
- int ink_drop_small_corner_radius_ = 2;
- int ink_drop_large_corner_radius_ = 4;
-
-- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
--
- base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
- base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
- create_ink_drop_ripple_callback_;
diff --git a/chromium-v4l2-fix.patch b/chromium-v4l2-fix.patch
deleted file mode 100644
index 1ae7530..0000000
--- a/chromium-v4l2-fix.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-commit e775ac4770bb1e5dfbfe22c5b56752ed4a2317c5
-Author: Hirokazu Honda <hiroh(a)chromium.org>
-Date: Tue Jan 17 17:54:02 2023 +0000
-
- Revert "media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf"
-
- This reverts commit 203fdd03a4317f2eac57161ee101515a82df704f.
-
- Reason for revert: This workaround is no longer required because of
- the kernel patch was reverted.
-
- Original change's description:
- > media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf
- >
- > VideoFrame fed in VEA::Encode() is read-only since R107 if the
- > VideoFrame has a shared memory. V4L2VideoEncodeAccelerator fails
- > because VIDOC_QBUF with USERPTR buffer fails if the pointers
- > references a read-only buffer.
- > The USERPTR API issue is apparently to be fixed by a kernel side.
- > In the meantime, this CL adds the workaround to the issue; the read
- > only buffer is copied to a writable temporary buffer every Encode
- > before VIDIOC_QBUF.
- > Not that VideoFrame has a shared memory in the case of screen share
- > because a camera stack produces GpuMemoryBuffer.
- >
- > Bug: b:243883312
- > Test: video_encode_accelerator_tests on elm, kevin and trogdor
- > Test: screen share in Google Meet on elm, kevin and trogdor
- > Change-Id: I922d98eaf52f80d9cd6c3784a8544bffb1232856
- > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3891421
- > Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- > Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- > Cr-Commit-Position: refs/heads/main@{#1046659}
-
- Bug: b:243883312, b:261660224
- Change-Id: I6fe37276f2ebe8c8730cfd3dd766b04277b32a67
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4091205
- Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1093388}
-
-diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-index dc72a4ac060a9..f3049f4546e2e 100644
---- a/media/gpu/v4l2/v4l2_image_processor_backend.cc
-+++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-@@ -925,35 +925,16 @@ bool V4L2ImageProcessorBackend::EnqueueInputRecord(
-
- switch (input_memory_type_) {
- case V4L2_MEMORY_USERPTR: {
-- VideoFrame& frame = *job_record->input_frame;
- const size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
- input_config_.fourcc.ToV4L2PixFmt());
- std::vector<void*> user_ptrs(num_planes);
-- if (frame.storage_type() == VideoFrame::STORAGE_SHMEM) {
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame.shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame.data(0), buffer_size);
-- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame.data(i)) -
-- reinterpret_cast<std::intptr_t>(frame.data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-- }
-- job_record->input_frame->AddDestructionObserver(base::BindOnce(
-- [](std::vector<uint8_t>) {}, std::move(writable_buffer)));
-- } else {
-- for (size_t i = 0; i < num_planes; ++i)
-- user_ptrs[i] = frame.writable_data(i);
-- }
--
- for (size_t i = 0; i < num_planes; ++i) {
- int bytes_used =
-- VideoFrame::PlaneSize(frame.format(), i, input_config_.size)
-+ VideoFrame::PlaneSize(job_record->input_frame->format(), i,
-+ input_config_.size)
- .GetArea();
- buffer.SetPlaneBytesUsed(i, bytes_used);
-+ user_ptrs[i] = const_cast<uint8_t*>(job_record->input_frame->data(i));
- }
- if (!std::move(buffer).QueueUserPtr(user_ptrs)) {
- VPLOGF(1) << "Failed to queue a DMABUF buffer to input queue";
-diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-index 56389ea3eec08..d452ba48a69e2 100644
---- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-@@ -783,7 +783,7 @@ void V4L2VideoEncodeAccelerator::EncodeTask(scoped_refptr<VideoFrame> frame,
- const bool is_expected_storage_type =
- native_input_mode_
- ? frame->storage_type() == VideoFrame::STORAGE_GPU_MEMORY_BUFFER
-- : frame->storage_type() == VideoFrame::STORAGE_SHMEM;
-+ : frame->IsMappable();
- if (!is_expected_storage_type) {
- VLOGF(1) << "Unexpected storage: "
- << VideoFrame::StorageTypeToString(frame->storage_type());
-@@ -1392,27 +1392,16 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- NOTIFY_ERROR(kPlatformFailureError);
- }
-
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame->shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame->data(0), buffer_size);
-+ // The frame data is readable only and the driver doesn't actually write
-+ // the buffer. But USRPTR buffer needs void*. So const_cast<> is required.
- std::vector<void*> user_ptrs(num_planes);
- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame->data(i)) -
-- reinterpret_cast<std::intptr_t>(frame->data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-+ user_ptrs[i] = const_cast<uint8_t*>(frame->data(i));
- }
--
- if (!std::move(input_buf).QueueUserPtr(std::move(user_ptrs))) {
-- VPLOGF(1) << "Failed to queue a USRPTR buffer to input queue";
-- NOTIFY_ERROR(kPlatformFailureError);
-+ VPLOGF(1) << "Failed queue a USRPTR buffer to input queue";
- return false;
- }
-- frame->AddDestructionObserver(
-- base::DoNothingWithBoundArgs(std::move(writable_buffer)));
- break;
- }
- case V4L2_MEMORY_DMABUF: {
-@@ -1421,6 +1410,7 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- VPLOGF(1) << "Failed queue a DMABUF buffer to input queue";
- return false;
- }
-+
- // Keep |gmb_handle| alive as long as |frame| is alive so that fds passed
- // to the driver are valid during encoding.
- frame->AddDestructionObserver(base::BindOnce(
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..81a6c64 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -190,8 +190,6 @@
%global bundlelibwebp 0
%global bundlelibpng 0
%global bundlelibjpeg 0
-# Needs FT_ClipBox which was implemented after 2.11.0. Should be able to set this back to 0 later.
-%global bundlefreetype 1
%global bundlelibdrm 0
%global bundlefontconfig 0
%global bundleffmpegfree 0
@@ -201,6 +199,12 @@
%else
%global bundlelibaom 0
%endif
+# system freetype on fedora > 36
+%if 0%{?fedora} > 36
+%global bundlefreetype 0
+%else
+%global bundlefreetype 1
+%endif
%endif
### From 2013 until early 2021, Google permitted distribution builds of
@@ -237,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 110.0.5481.177
+Version: 111.0.5563.50
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -274,9 +278,6 @@ Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
# Add "Fedora" to the user agent string
Patch12: chromium-101.0.4951.41-fedora-user-agent.patch
-# numeric_limits is not a member of std
-Patch13: chromium-110-limits.patch
-
# debian patch, disable font-test
Patch20: chromium-disable-font-tests.patch
@@ -292,9 +293,6 @@ Patch57: chromium-96.0.4664.45-missing-cstring.patch
# Fix headers to look for system paths when we are using system minizip
Patch61: chromium-109-system-minizip-header-fix.patch
-# Update bundled copy of wayland-client-core.h
-Patch62: chromium-105.0.5195.52-update-wayland-client-core.patch
-
# Fix issue where closure_compiler thinks java is only allowed in android builds
# https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
@@ -321,9 +319,6 @@ Patch91: chromium-108-system-opus.patch
# fix prefers-color-scheme
Patch92: chromium-110-gtktheme.patch
-# From gentoo
-Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch
-
# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
Patch100: chromium-108-el7-include-fcntl-memfd.patch
@@ -369,21 +364,6 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
# VAAPI
# Upstream turned VAAPI on in Linux in 86
@@ -391,10 +371,6 @@ Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
Patch206: chromium-110-ozone-wayland-vaapi-support.patch
-# V4L2
-# Upstream
-Patch250: chromium-v4l2-fix.patch
-
# Apply these patches to work around EPEL8 issues
Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
@@ -907,8 +883,8 @@ without support for alsa, cups, dbus, gconf, gio, kerberos, pulseaudio, or
udev.
%prep
-
%setup -q -n chromium-%{version}
+
### Chromium Fedora Patches ###
%patch0 -p1 -b .sandboxpie
%patch1 -p1 -b .etc
@@ -920,13 +896,6 @@ udev.
%patch9 -p1 -b .widevine-no-download
%patch11 -p1 -b .py3
-# Fedora branded user agent
-%if 0%{?fedora}
-%patch12 -p1 -b .fedora-user-agent
-%endif
-
-%patch13 -p1 -b .limits
-
%patch20 -p1 -b .disable-font-test
%if 0%{?fedora} || 0%{?rhel} >= 8
@@ -957,7 +926,10 @@ udev.
%patch92 -p1 -b .gtk-prefers-color-scheme
-%patch98 -p1 -b .InkDropHost-crash
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch12 -p1 -b .fedora-user-agent
+%endif
%if ! %{bundleffmpegfree}
%patch114 -p1 -b .system-ffmppeg
@@ -984,21 +956,6 @@ udev.
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
@@ -1013,10 +970,6 @@ udev.
%patch206 -p1 -b .wayland-vaapi
%endif
-%if %{use_v4l2_codec}
-%patch250 -p1 -b .v4l2-fix
-%endif
-
%if 0%{?rhel} >= 8
%patch300 -p1 -b .disblegnomekeyring
%endif
@@ -1180,12 +1133,6 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
-%ifarch aarch64
-%if 0%{?rhel} == 8
-# workaround crash on el8
-CHROMIUM_CORE_GN_DEFINES+=' use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false'
-%endif
-%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1593,11 +1540,11 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/libclearkeycdm.so
%endif
%ifarch x86_64 aarch64
-%{chromium_path}/libEGL.so*
-%{chromium_path}/libGLESv2.so*
%{chromium_path}/libvk_swiftshader.so*
%{chromium_path}/libvulkan.so*
%{chromium_path}/vk_swiftshader_icd.json
+%{chromium_path}/libEGL.so*
+%{chromium_path}/libGLESv2.so*
%endif
%{chromium_path}/icudtl.dat
%dir %{chromium_path}/
@@ -1699,6 +1646,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
+- update to 111.0.5563.50
+- system freetype on fedora > 36
+
* Thu Feb 23 2023 Than Ngo <than(a)redhat.com> - 110.0.5481.177-1
- update to 110.0.5481.177
- workaround for crash on aarch64, rhel8
diff --git a/sources b/sources
index 9aca39c..7f2d4f8 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-110.0.5481.177-clean.tar.xz) = 3cc3fe325bf773e5da9137272741eda61ca620289a27c1bc16cd3e165f5adc6ebaa00139351c324fcc491497e47659188673edd9b7fd33a2771636d153b69213
+SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
1 year, 3 months
Architecture specific change in rpms/rust-netlink-packet-utils.git
by githook-noreply@fedoraproject.org
The package rpms/rust-netlink-packet-utils.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-netlink-packet-utils.git/com....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 55df027dd58dd748768b42210367f5c4d2751298
Author: Gris Ge <fge(a)redhat.com>
Date: Tue Mar 7 16:33:57 2023 +0800
Upgrade to 0.5.2
Signed-off-by: Gris Ge <fge(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 6186b2f..1939efd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/netlink-packet-utils-0.4.1.crate
/netlink-packet-utils-0.5.0.crate
/netlink-packet-utils-0.5.1.crate
+/netlink-packet-utils-0.5.2.crate
diff --git a/rust-netlink-packet-utils.spec b/rust-netlink-packet-utils.spec
index 5f440cf..215abd3 100644
--- a/rust-netlink-packet-utils.spec
+++ b/rust-netlink-packet-utils.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate netlink-packet-utils
-Name: rust-%{crate}
-Version: 0.5.1
+Name: rust-netlink-packet-utils
+Version: 0.5.2
Release: %autorelease
Summary: Macros and helpers for parsing netlink messages
-# Upstream license specification: MIT
License: MIT
URL: https://crates.io/crates/netlink-packet-utils
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Macros and helpers for parsing netlink messages.}
@@ -33,8 +30,10 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-MIT
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -46,7 +45,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
@@ -61,5 +60,10 @@ use the "default" feature of the "%{crate}" crate.
%install
%cargo_install
+%if %{with check}
+%check
+%cargo_test
+%endif
+
%changelog
%autochangelog
diff --git a/sources b/sources
index 951f654..b3cbd7d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (netlink-packet-utils-0.5.1.crate) = b8eb636d92dd97606d81e56dd25f3ceca5ef63c204bfa2f4cdc9ae31a38219a675a318e30111122568e5606bfd81d4b591f7601b285206f57ce8cc2590b66498
+SHA512 (netlink-packet-utils-0.5.2.crate) = 3f739190a1692ea420293a8932772fc40b5c694431fd7be654e43551fc87130c417b84379145b1bde68be3e6825f4a3b0ffd3ce3fd5d4fa55d5dfa83ec82e85a
1 year, 3 months
Architecture specific change in rpms/rust-netlink-packet-utils.git
by githook-noreply@fedoraproject.org
The package rpms/rust-netlink-packet-utils.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-netlink-packet-utils.git/com....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 55df027dd58dd748768b42210367f5c4d2751298
Author: Gris Ge <fge(a)redhat.com>
Date: Tue Mar 7 16:33:57 2023 +0800
Upgrade to 0.5.2
Signed-off-by: Gris Ge <fge(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 6186b2f..1939efd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/netlink-packet-utils-0.4.1.crate
/netlink-packet-utils-0.5.0.crate
/netlink-packet-utils-0.5.1.crate
+/netlink-packet-utils-0.5.2.crate
diff --git a/rust-netlink-packet-utils.spec b/rust-netlink-packet-utils.spec
index 5f440cf..215abd3 100644
--- a/rust-netlink-packet-utils.spec
+++ b/rust-netlink-packet-utils.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate netlink-packet-utils
-Name: rust-%{crate}
-Version: 0.5.1
+Name: rust-netlink-packet-utils
+Version: 0.5.2
Release: %autorelease
Summary: Macros and helpers for parsing netlink messages
-# Upstream license specification: MIT
License: MIT
URL: https://crates.io/crates/netlink-packet-utils
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Macros and helpers for parsing netlink messages.}
@@ -33,8 +30,10 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-MIT
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -46,7 +45,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
@@ -61,5 +60,10 @@ use the "default" feature of the "%{crate}" crate.
%install
%cargo_install
+%if %{with check}
+%check
+%cargo_test
+%endif
+
%changelog
%autochangelog
diff --git a/sources b/sources
index 951f654..b3cbd7d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (netlink-packet-utils-0.5.1.crate) = b8eb636d92dd97606d81e56dd25f3ceca5ef63c204bfa2f4cdc9ae31a38219a675a318e30111122568e5606bfd81d4b591f7601b285206f57ce8cc2590b66498
+SHA512 (netlink-packet-utils-0.5.2.crate) = 3f739190a1692ea420293a8932772fc40b5c694431fd7be654e43551fc87130c417b84379145b1bde68be3e6825f4a3b0ffd3ce3fd5d4fa55d5dfa83ec82e85a
1 year, 3 months
Architecture specific change in rpms/rust-netlink-packet-utils.git
by githook-noreply@fedoraproject.org
The package rpms/rust-netlink-packet-utils.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-netlink-packet-utils.git/com....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 55df027dd58dd748768b42210367f5c4d2751298
Author: Gris Ge <fge(a)redhat.com>
Date: Tue Mar 7 16:33:57 2023 +0800
Upgrade to 0.5.2
Signed-off-by: Gris Ge <fge(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 6186b2f..1939efd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/netlink-packet-utils-0.4.1.crate
/netlink-packet-utils-0.5.0.crate
/netlink-packet-utils-0.5.1.crate
+/netlink-packet-utils-0.5.2.crate
diff --git a/rust-netlink-packet-utils.spec b/rust-netlink-packet-utils.spec
index 5f440cf..215abd3 100644
--- a/rust-netlink-packet-utils.spec
+++ b/rust-netlink-packet-utils.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate netlink-packet-utils
-Name: rust-%{crate}
-Version: 0.5.1
+Name: rust-netlink-packet-utils
+Version: 0.5.2
Release: %autorelease
Summary: Macros and helpers for parsing netlink messages
-# Upstream license specification: MIT
License: MIT
URL: https://crates.io/crates/netlink-packet-utils
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Macros and helpers for parsing netlink messages.}
@@ -33,8 +30,10 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-MIT
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -46,7 +45,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
@@ -61,5 +60,10 @@ use the "default" feature of the "%{crate}" crate.
%install
%cargo_install
+%if %{with check}
+%check
+%cargo_test
+%endif
+
%changelog
%autochangelog
diff --git a/sources b/sources
index 951f654..b3cbd7d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (netlink-packet-utils-0.5.1.crate) = b8eb636d92dd97606d81e56dd25f3ceca5ef63c204bfa2f4cdc9ae31a38219a675a318e30111122568e5606bfd81d4b591f7601b285206f57ce8cc2590b66498
+SHA512 (netlink-packet-utils-0.5.2.crate) = 3f739190a1692ea420293a8932772fc40b5c694431fd7be654e43551fc87130c417b84379145b1bde68be3e6825f4a3b0ffd3ce3fd5d4fa55d5dfa83ec82e85a
commit 8d4aa7985c7cdb4843f8611c277dfd253d569949
Author: Gris Ge <fge(a)redhat.com>
Date: Sun Mar 5 16:55:54 2023 +0800
Enable packit auto build
Signed-off-by: Gris Ge <fge(a)redhat.com>
diff --git a/.packit.yaml b/.packit.yaml
new file mode 100644
index 0000000..1cd592f
--- /dev/null
+++ b/.packit.yaml
@@ -0,0 +1,29 @@
+---
+downstream_package_name: rust-netlink-packet-utils
+upstream_project_url: https://github.com/rust-netlink/netlink-packet-utils
+issue_repository: https://github.com/rust-netlink/netlink-packet-utils
+update_release: false
+upstream_package_name: netlink-packet-utils
+upstream_tag_template: v{version}
+copy_upstream_release_description: true
+
+jobs:
+ # This is triggered by https://release-monitoring.org/
+ - job: pull_from_upstream
+ trigger: release
+ dist_git_branches:
+ - fedora-all
+
+ # This is triggered at Fedora dist-git for creating koji build after
+ # PR in src.fedoraproject.org been merged.
+ - job: koji_build
+ trigger: commit
+ allowed_pr_authors: ["packit-stg", "packit"]
+ dist_git_branches:
+ - fedora-all
+
+ # This is triggered at Fedora messaging bus about koji build finished.
+ - job: bodhi_update
+ trigger: commit
+ dist_git_branches:
+ - fedora-branched
1 year, 3 months
[Report] Packages Restricting Arches
by root
New package excluding arches (1)
============================
- esmi_ib_library
ExclusiveArch: x86_64
Package no longer excluding arches (4)
==================================
- rust-hashlink
- rust-netlink-packet-utils
- rust-rusqlite
- rust-scheduled-thread-pool
List of packages currently excluding arches (2228)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- BareBonesBrowserLaunch
ExclusiveArch: %{java_arches} noarch
- CardManager
ExclusiveArch: %{java_arches} noarch
- GAPDoc
ExclusiveArch: %{gap_arches} noarch
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- IPAddress
ExclusiveArch: %{java_arches} noarch
- Mars
ExclusiveArch: %{java_arches} noarch
- OpenColorIO
ExclusiveArch: x86_64 ppc64le
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- OpenMolcas
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- OpenStego
ExclusiveArch: %{java_arches} noarch
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- R-rJava
ExclusiveArch: %{java_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aardvark-dns
ExclusiveArch: %{golang_arches_future}
- accel-config
ExclusiveArch: %{ix86} x86_64
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64 s390x
- anet
ExclusiveArch: %{GPRbuild_arches}
- ant
ExclusiveArch: %{java_arches} noarch
- ant-antunit
ExclusiveArch: %{java_arches} noarch
- antlr
ExclusiveArch: %{java_arches}
- antlr-maven-plugin
ExclusiveArch: %{java_arches} noarch
- antlr3
ExclusiveArch: %{java_arches}
- antlr32
ExclusiveArch: %{java_arches} noarch
- antlr4-project
ExclusiveArch: %{java_arches}
- antlrworks
ExclusiveArch: %{java_arches} noarch
- aopalliance
ExclusiveArch: %{java_arches} noarch
- apache-commons-beanutils
ExclusiveArch: %{java_arches} noarch
- apache-commons-cli
ExclusiveArch: %{java_arches} noarch
- apache-commons-codec
ExclusiveArch: %{java_arches} noarch
- apache-commons-collections
ExclusiveArch: %{java_arches} noarch
- apache-commons-collections4
ExclusiveArch: %{java_arches} noarch
- apache-commons-compress
ExclusiveArch: %{java_arches} noarch
- apache-commons-digester
ExclusiveArch: %{java_arches} noarch
- apache-commons-exec
ExclusiveArch: %{java_arches} noarch
- apache-commons-fileupload
ExclusiveArch: %{java_arches} noarch
- apache-commons-io
ExclusiveArch: %{java_arches} noarch
- apache-commons-jxpath
ExclusiveArch: %{java_arches} noarch
- apache-commons-lang3
ExclusiveArch: %{java_arches} noarch
- apache-commons-logging
ExclusiveArch: %{java_arches} noarch
- apache-commons-math
ExclusiveArch: %{java_arches} noarch
- apache-commons-modeler
ExclusiveArch: %{java_arches} noarch
- apache-commons-net
ExclusiveArch: %{java_arches} noarch
- apache-commons-parent
ExclusiveArch: %{java_arches} noarch
- apache-commons-pool
ExclusiveArch: %{java_arches} noarch
- apache-ivy
ExclusiveArch: %{java_arches} noarch
- apache-parent
ExclusiveArch: %{java_arches} noarch
- apache-resource-bundles
ExclusiveArch: %{java_arches} noarch
- apache-sshd
ExclusiveArch: %{java_arches} noarch
- apiguardian
ExclusiveArch: %{java_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: %{ldc_arches}
- aqute-bnd
ExclusiveArch: %{java_arches} noarch
- args4j
ExclusiveArch: %{java_arches} noarch
- arm-trusted-firmware
ExclusiveArch: aarch64
- assertj-core
ExclusiveArch: %{java_arches} noarch
- atinject
ExclusiveArch: %{java_arches} noarch
- aunit
ExclusiveArch: %GPRbuild_arches
- auto
ExclusiveArch: %{java_arches} noarch
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- azure-cli
ExclusiveArch: %{java_arches} noarch
- batik
ExclusiveArch: %{java_arches} noarch
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcel
ExclusiveArch: %{java_arches} noarch
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beansbinding
ExclusiveArch: %{java_arches} noarch
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- beust-jcommander
ExclusiveArch: %{java_arches} noarch
- bibletime
ExclusiveArch: %{java_arches}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- bolzplatz2006
ExclusiveArch: %{java_arches}
- bouncycastle
ExclusiveArch: %{java_arches} noarch
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- brazil
ExclusiveArch: %{java_arches} noarch
- bsf
ExclusiveArch: %{java_arches} noarch
- bsh
ExclusiveArch: %{java_arches} noarch
- buildah
ExclusiveArch: %{golang_arches_future}
- buildnumber-maven-plugin
ExclusiveArch: %{java_arches} noarch
- byte-buddy
ExclusiveArch: %{java_arches} noarch
- byteman
ExclusiveArch: %{java_arches} noarch
- cachelib
ExclusiveArch: x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64 aarch64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- cambozola
ExclusiveArch: %{java_arches} noarch
- canl-java
ExclusiveArch: %{java_arches} noarch
- catatonit
ExclusiveArch: %{golang_arches_future}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- cdi-api
ExclusiveArch: %{java_arches} noarch
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- cglib
ExclusiveArch: %{java_arches} noarch
- chromium
ExclusiveArch: x86_64
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- classloader-leak-test-framework
ExclusiveArch: %{java_arches} noarch
- classpathless-compiler
ExclusiveArch: %{java_arches} noarch
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- clojure
ExclusiveArch: %{java_arches} noarch
- clojure-core-specs-alpha
ExclusiveArch: %{java_arches} noarch
- clojure-maven-plugin
ExclusiveArch: %{java_arches} noarch
- clojure-spec-alpha
ExclusiveArch: %{java_arches} noarch
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- codehaus-parent
ExclusiveArch: %{java_arches} noarch
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- colossus
ExclusiveArch: %{java_arches} noarch
- conmon
ExclusiveArch: %{golang_arches_future}
- console-image-viewer
ExclusiveArch: %{java_arches} noarch
- containernetworking-plugins
ExclusiveArch: %{golang_arches}
- coq
ExclusiveArch: %{java_arches}
- cortado
ExclusiveArch: %{java_arches} noarch
- cpu-x
ExclusiveArch: i686 x86_64
- cpufetch
ExclusiveArch: %{arm} aarch64 x86_64 ppc ppc64 ppc64le
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- crash-gcore-command
ExclusiveArch: aarch64 ppc64le x86_64
- crash-trace-command
ExclusiveArch: aarch64 ppc64le s390x x86_64
- cri-o
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- crun
ExclusiveArch: %{golang_arches_future}
- cryptlib
ExclusiveArch: x86_64 aarch64 ppc64le
- crypto-policies
ExclusiveArch: %{java_arches} noarch
- cryptobone
ExclusiveArch: x86_64 ppc64le aarch64
- csslint
ExclusiveArch: %{nodejs_arches} noarch
- cvc4
ExclusiveArch: %{java_arches}
- daq
ExclusiveArch: x86_64 aarch64
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- decentxml
ExclusiveArch: %{java_arches} noarch
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- directory-maven-plugin
ExclusiveArch: %{java_arches} noarch
- dirgra
ExclusiveArch: %{java_arches} noarch
- disruptor
ExclusiveArch: %{java_arches} noarch
- ditaa
ExclusiveArch: %{java_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: x86_64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dogtag-pki
ExclusiveArch: %{java_arches}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dom4j
ExclusiveArch: %{java_arches} noarch
- dotnet6.0
ExclusiveArch: aarch64 x86_64 s390x
ExclusiveArch: x86_64
- dotnet7.0
ExclusiveArch: aarch64 ppc64le s390x x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dub
ExclusiveArch: %{ldc_arches}
- dxvk-native
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- easymock
ExclusiveArch: %{java_arches} noarch
- ecj
ExclusiveArch: %{java_arches} noarch
- eclipse-swt
ExclusiveArch: %{java_arches}
- ed25519-java
ExclusiveArch: %{java_arches} noarch
- edk2
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efifs
ExclusiveArch: %{efi}
- efitools
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- embree
ExclusiveArch: aarch64 x86_64
- embree3
ExclusiveArch: aarch64 x86_64
- enjarify
ExclusiveArch: %{java_arches} noarch
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- erlang-corba
ExclusiveArch: %{java_arches}
- esmi_ib_library
ExclusiveArch: x86_64
- eth-tools
ExclusiveArch: x86_64
- exec-maven-plugin
ExclusiveArch: %{java_arches} noarch
- external-editor-revived
ExclusiveArch: %{rust_arches}
- extra-enforcer-rules
ExclusiveArch: %{java_arches} noarch
- fasterxml-oss-parent
ExclusiveArch: %{java_arches} noarch
- fb303
ExclusiveArch: x86_64 aarch64 ppc64le
- fbthrift
ExclusiveArch: x86_64 aarch64 ppc64le
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- felix-parent
ExclusiveArch: %{java_arches} noarch
- felix-utils
ExclusiveArch: %{java_arches} noarch
- fernflower
ExclusiveArch: %{java_arches} noarch
- fes
ExclusiveArch: %{ix86} x86_64
- filedrop
ExclusiveArch: %{java_arches} noarch
- fishbowl
ExclusiveArch: %{java_arches} noarch
- fizz
ExclusiveArch: x86_64 aarch64 ppc64le
- flocq
ExclusiveArch: %{java_arches}
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluent-bit
ExclusiveArch: x86_64 aarch64
- flute
ExclusiveArch: %{java_arches} noarch
- folly
ExclusiveArch: x86_64 aarch64 ppc64le
- fop
ExclusiveArch: %{java_arches} noarch
- forge-parent
ExclusiveArch: %{java_arches} noarch
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frama-c
ExclusiveArch: %{java_arches}
- freecol
ExclusiveArch: %{java_arches} noarch
- freemarker
ExclusiveArch: %{java_arches} noarch
- freerouting
ExclusiveArch: %{java_arches} noarch
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: x86_64 ppc64
- fuse-overlayfs
ExclusiveArch: %{arm64} ppc64le s390x x86_64
- fusesource-pom
ExclusiveArch: %{java_arches} noarch
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{power64}
- fwupd-efi
ExclusiveArch: x86_64 aarch64
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gap
ExclusiveArch: %{gap_arches}
- gap-pkg-ace
ExclusiveArch: %{gap_arches}
- gap-pkg-aclib
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-alnuth
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-atlasrep
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-autodoc
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-automata
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-autpgrp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-browse
ExclusiveArch: %{gap_arches}
- gap-pkg-caratinterface
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-circle
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-cohomolo
ExclusiveArch: %{gap_arches}
- gap-pkg-congruence
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-corelg
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-crime
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-crisp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-crypting
ExclusiveArch: %{gap_arches}
- gap-pkg-cryst
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-crystcat
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-ctbllib
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-curlinterface
ExclusiveArch: %{gap_arches}
- gap-pkg-cvec
ExclusiveArch: %{gap_arches}
- gap-pkg-datastructures
ExclusiveArch: %{gap_arches}
- gap-pkg-design
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-digraphs
ExclusiveArch: %{gap_arches}
- gap-pkg-edim
ExclusiveArch: %{gap_arches}
- gap-pkg-factint
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-ferret
ExclusiveArch: %{gap_arches}
- gap-pkg-fga
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-fining
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-float
ExclusiveArch: %{gap_arches}
- gap-pkg-format
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-forms
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-fr
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-francy
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-gbnp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-genss
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-grape
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-groupoids
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-grpconst
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-guava
ExclusiveArch: %{gap_arches}
- gap-pkg-hap
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-hapcryst
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-hecke
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-images
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-io
ExclusiveArch: %{gap_arches}
- gap-pkg-irredsol
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-json
ExclusiveArch: %{gap_arches}
- gap-pkg-jupyterkernel
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-jupyterviz
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-laguna
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-liealgdb
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-liepring
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-liering
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-loops
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-lpres
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-mapclass
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-nautytracesinterface
ExclusiveArch: %{gap_arches}
- gap-pkg-nq
ExclusiveArch: %{gap_arches}
- gap-pkg-openmath
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-orb
ExclusiveArch: %{gap_arches}
- gap-pkg-polenta
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-polycyclic
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-polymaking
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-primgrp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-profiling
ExclusiveArch: %{gap_arches}
- gap-pkg-qpa
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-quagroup
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-radiroot
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-recog
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-repsn
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-resclasses
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-scscp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-semigroups
ExclusiveArch: %{gap_arches}
- gap-pkg-singular
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-sla
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-smallgrp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-smallsemi
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-sonata
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-sophus
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-spinsym
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-standardff
ExclusiveArch: %{gap_arches}
- gap-pkg-tomlib
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-toric
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-transgrp
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-utils
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-uuid
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-xmod
ExclusiveArch: %{gap_arches} noarch
- gap-pkg-zeromqinterface
ExclusiveArch: %{gap_arches}
- gappalib-coq
ExclusiveArch: %{java_arches}
- gbrainy
ExclusiveArch: %mono_arches
- gdb
ExclusiveArch: %{ix86} x86_64
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gearhead2
ExclusiveArch: %{fpc_arches}
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gitqlient
ExclusiveArch: %{qt5_qtwebengine_arches}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- google-gson
ExclusiveArch: %{java_arches} noarch
- google-guice
ExclusiveArch: %{java_arches} noarch
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha aarch64
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{grafanapcp_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- guava
ExclusiveArch: %{java_arches} noarch
- gudev-sharp
ExclusiveArch: %mono_arches
- guestfs-tools
ExclusiveArch: %{kernel_arches}
- hamcrest
ExclusiveArch: %{java_arches} noarch
- harec
ExclusiveArch: x86_64 aarch64
- hawtjni
ExclusiveArch: %{java_arches} noarch
- hedgewars
ExclusiveArch: %{fpc_arches}
- hibernate-jpa-2.0-api
ExclusiveArch: %{java_arches} noarch
- hibernate-jpa-2.1-api
ExclusiveArch: %{java_arches} noarch
- hid4java
ExclusiveArch: %{java_arches} noarch
- hsakmt
ExclusiveArch: x86_64 aarch64 ppc64le
- httpcomponents-client
ExclusiveArch: %{java_arches} noarch
- httpcomponents-core
ExclusiveArch: %{java_arches} noarch
- httpcomponents-project
ExclusiveArch: %{java_arches} noarch
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64 aarch64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- icu4j
ExclusiveArch: %{java_arches} noarch
- imagej
ExclusiveArch: %{java_arches} noarch
- imhex
ExclusiveArch: x86_64 %{arm64}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cm-compiler
ExclusiveArch: i686 x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-compute-runtime
ExclusiveArch: x86_64
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-igc
ExclusiveArch: x86_64
- intel-ipp-crypto-mb
ExclusiveArch: x86_64
- intel-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- jFormatString
ExclusiveArch: %{java_arches} noarch
- jackson-annotations
ExclusiveArch: %{java_arches} noarch
- jackson-bom
ExclusiveArch: %{java_arches} noarch
- jackson-core
ExclusiveArch: %{java_arches} noarch
- jackson-databind
ExclusiveArch: %{java_arches} noarch
- jackson-dataformats-binary
ExclusiveArch: %{java_arches} noarch
- jackson-dataformats-text
ExclusiveArch: %{java_arches} noarch
- jackson-jaxrs-providers
ExclusiveArch: %{java_arches} noarch
- jackson-modules-base
ExclusiveArch: %{java_arches} noarch
- jackson-parent
ExclusiveArch: %{java_arches} noarch
- jacoco
ExclusiveArch: %{java_arches} noarch
- jacop
ExclusiveArch: %{java_arches} noarch
- jakarta-activation
ExclusiveArch: %{java_arches} noarch
- jakarta-activation1
ExclusiveArch: %{java_arches} noarch
- jakarta-annotations
ExclusiveArch: %{java_arches} noarch
- jakarta-el
ExclusiveArch: %{java_arches} noarch
- jakarta-interceptors
ExclusiveArch: %{java_arches} noarch
- jakarta-json
ExclusiveArch: %{java_arches} noarch
- jakarta-mail
ExclusiveArch: %{java_arches} noarch
- jakarta-oro
ExclusiveArch: %{java_arches} noarch
- jakarta-saaj
ExclusiveArch: %{java_arches} noarch
- jakarta-server-pages
ExclusiveArch: %{java_arches} noarch
- jakarta-servlet
ExclusiveArch: %{java_arches} noarch
- jakarta-xml-ws
ExclusiveArch: %{java_arches} noarch
- janino
ExclusiveArch: %{java_arches} noarch
- jansi
ExclusiveArch: %{java_arches}
- jansi-native
ExclusiveArch: %{java_arches}
- jansi1
ExclusiveArch: %{java_arches} noarch
- java-1.8.0-openjdk
ExclusiveArch: %{java_arches}
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- java-1.8.0-openjdk-portable
ExclusiveArch: %{java_arches}
- java-11-openjdk
ExclusiveArch: %{java_arches}
- java-11-openjdk-portable
ExclusiveArch: %{java_arches}
- java-17-openjdk
ExclusiveArch: %{java_arches}
- java-17-openjdk-portable
ExclusiveArch: %{java_arches}
- java-diff-utils
ExclusiveArch: %{java_arches} noarch
- java-dirq
ExclusiveArch: %{java_arches} noarch
- java-jd-decompiler
ExclusiveArch: %{java_arches} noarch
- java-latest-openjdk
ExclusiveArch: %{java_arches}
- java-latest-openjdk-portable
ExclusiveArch: %{java_arches}
- java-runtime-decompiler
ExclusiveArch: %{java_arches} noarch
- java-scrypt
ExclusiveArch: %{java_arches} noarch
- java_cup
ExclusiveArch: %{java_arches} noarch
- javacc
ExclusiveArch: %{java_arches} noarch
- javacc-maven-plugin
ExclusiveArch: %{java_arches} noarch
- javaewah
ExclusiveArch: %{java_arches} noarch
- javapackages-bootstrap
ExclusiveArch: %{java_arches} noarch
- javaparser
ExclusiveArch: %{java_arches} noarch
- javapoet
ExclusiveArch: %{java_arches} noarch
- javassist
ExclusiveArch: %{java_arches} noarch
- jaxb
ExclusiveArch: %{java_arches} noarch
- jaxb-api
ExclusiveArch: %{java_arches} noarch
- jaxb-api2
ExclusiveArch: %{java_arches} noarch
- jaxb-dtd-parser
ExclusiveArch: %{java_arches} noarch
- jaxb-fi
ExclusiveArch: %{java_arches} noarch
- jaxb-istack-commons
ExclusiveArch: %{java_arches} noarch
- jaxb-stax-ex
ExclusiveArch: %{java_arches} noarch
- jaxen
ExclusiveArch: %{java_arches} noarch
- jboss-jaxrs-2.0-api
ExclusiveArch: %{java_arches} noarch
- jboss-logging
ExclusiveArch: %{java_arches} noarch
- jboss-logging-tools
ExclusiveArch: %{java_arches} noarch
- jboss-parent
ExclusiveArch: %{java_arches} noarch
- jchardet
ExclusiveArch: %{java_arches} noarch
- jcip-annotations
ExclusiveArch: %{java_arches} noarch
- jcommon
ExclusiveArch: %{java_arches} noarch
- jcommon-serializer
ExclusiveArch: %{java_arches} noarch
- jctools
ExclusiveArch: %{java_arches} noarch
- jcuber
ExclusiveArch: %{java_arches} noarch
- jdeparser
ExclusiveArch: %{java_arches} noarch
- jdepend
ExclusiveArch: %{java_arches} noarch
- jdependency
ExclusiveArch: %{java_arches} noarch
- jdom
ExclusiveArch: %{java_arches} noarch
- jdom2
ExclusiveArch: %{java_arches} noarch
- jericho-html
ExclusiveArch: %{java_arches} noarch
- jetty
ExclusiveArch: %{java_arches} noarch
- jflex
ExclusiveArch: %{java_arches} noarch
- jfreechart
ExclusiveArch: %{java_arches} noarch
- jgit
ExclusiveArch: %{java_arches} noarch
- jglobus
ExclusiveArch: %{java_arches} noarch
- jgoodies-common
ExclusiveArch: %{java_arches} noarch
- jgoodies-forms
ExclusiveArch: %{java_arches} noarch
- jgoodies-looks
ExclusiveArch: %{java_arches} noarch
- jigawatts
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- jline
ExclusiveArch: %{java_arches} noarch
- jline2
ExclusiveArch: %{java_arches} noarch
- jmock
ExclusiveArch: %{java_arches} noarch
- jmol
ExclusiveArch: %{java_arches} noarch
- jna
ExclusiveArch: %{java_arches}
- jneuroml-core
ExclusiveArch: %{java_arches} noarch
- jni-inchi
ExclusiveArch: %{java_arches}
- jol
ExclusiveArch: %{java_arches} noarch
- jolokia-jvm-agent
ExclusiveArch: %{java_arches} noarch
- joni
ExclusiveArch: %{java_arches} noarch
- jopt-simple
ExclusiveArch: %{java_arches} noarch
- jorbis
ExclusiveArch: %{java_arches} noarch
- jowl
ExclusiveArch: %{nodejs_arches} noarch
- jpanoramamaker
ExclusiveArch: %{java_arches} noarch
- jpcap
ExclusiveArch: %java_arches
- jsch
ExclusiveArch: %{java_arches} noarch
- jsch-agent-proxy
ExclusiveArch: %{java_arches} noarch
- json_simple
ExclusiveArch: %{java_arches} noarch
- jsr-305
ExclusiveArch: %{java_arches} noarch
- jss
ExclusiveArch: %{java_arches}
- jssc
ExclusiveArch: %{java_arches}
- jtidy
ExclusiveArch: %{java_arches} noarch
- junit
ExclusiveArch: %{java_arches} noarch
- junit5
ExclusiveArch: %{java_arches} noarch
- juniversalchardet
ExclusiveArch: %{java_arches} noarch
- jzlib
ExclusiveArch: %{java_arches} noarch
- kchmviewer
ExclusiveArch: %{qt5_qtwebengine_arches}
- kernel
ExclusiveArch: noarch x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- keylime-agent-rust
ExclusiveArch: %{rust_arches}
- keyring-ima-signer
ExclusiveArch: %{rust_arches}
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: x86_64 aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- laf-plugin
ExclusiveArch: %{java_arches} noarch
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldapjdk
ExclusiveArch: %{java_arches} noarch
- ldc
ExclusiveArch: %{ldc_arches} ppc64le
- libbase
ExclusiveArch: %{java_arches} noarch
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libdispatch
ExclusiveArch: x86_64 aarch64 ppc64le
- libfonts
ExclusiveArch: %{java_arches} noarch
- libformula
ExclusiveArch: %{java_arches} noarch
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libkgapi
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- libkrun
ExclusiveArch: x86_64 aarch64
- libkrunfw
ExclusiveArch: x86_64 aarch64
- liblayout
ExclusiveArch: %{java_arches} noarch
- libloader
ExclusiveArch: %{java_arches} noarch
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libreoffice-TexMaths
ExclusiveArch: %{java_arches}
- librepository
ExclusiveArch: %{java_arches} noarch
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libserializer
ExclusiveArch: %{java_arches} noarch
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunicode
ExclusiveArch: x86_64 aarch64
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvirt-java
ExclusiveArch: %{java_arches} noarch
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzdnn
ExclusiveArch: s390x
- libzfcphbaapi
ExclusiveArch: s390 s390x
- libzpc
ExclusiveArch: s390x
- llhttp
ExclusiveArch: %{nodejs_arches}
- log4j
ExclusiveArch: %{java_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- lucene
ExclusiveArch: %{java_arches} noarch
- lujavrite
ExclusiveArch: %{java_arches}
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- magicmirror
ExclusiveArch: %{nodejs_arches} noarch
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mariadb-java-client
ExclusiveArch: %{java_arches} noarch
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maui-mauikit
ExclusiveArch: %{ix86} s390x aarch64 x86_64
- maven
ExclusiveArch: %{java_arches} noarch
- maven-antrun-plugin
ExclusiveArch: %{java_arches} noarch
- maven-archetype
ExclusiveArch: %{java_arches} noarch
- maven-archiver
ExclusiveArch: %{java_arches} noarch
- maven-artifact-transfer
ExclusiveArch: %{java_arches} noarch
- maven-assembly-plugin
ExclusiveArch: %{java_arches} noarch
- maven-clean-plugin
ExclusiveArch: %{java_arches} noarch
- maven-common-artifact-filters
ExclusiveArch: %{java_arches} noarch
- maven-compiler-plugin
ExclusiveArch: %{java_arches} noarch
- maven-dependency-analyzer
ExclusiveArch: %{java_arches} noarch
- maven-dependency-plugin
ExclusiveArch: %{java_arches} noarch
- maven-dependency-tree
ExclusiveArch: %{java_arches} noarch
- maven-doxia
ExclusiveArch: %{java_arches} noarch
- maven-doxia-sitetools
ExclusiveArch: %{java_arches} noarch
- maven-enforcer
ExclusiveArch: %{java_arches} noarch
- maven-file-management
ExclusiveArch: %{java_arches} noarch
- maven-filtering
ExclusiveArch: %{java_arches} noarch
- maven-invoker
ExclusiveArch: %{java_arches} noarch
- maven-invoker-plugin
ExclusiveArch: %{java_arches} noarch
- maven-jar-plugin
ExclusiveArch: %{java_arches} noarch
- maven-mapping
ExclusiveArch: %{java_arches} noarch
- maven-native
ExclusiveArch: %{java_arches} noarch
- maven-parent
ExclusiveArch: %{java_arches} noarch
- maven-patch-plugin
ExclusiveArch: %{java_arches} noarch
- maven-plugin-build-helper
ExclusiveArch: %{java_arches} noarch
- maven-plugin-bundle
ExclusiveArch: %{java_arches} noarch
- maven-plugin-testing
ExclusiveArch: %{java_arches} noarch
- maven-plugin-tools
ExclusiveArch: %{java_arches} noarch
- maven-remote-resources-plugin
ExclusiveArch: %{java_arches} noarch
- maven-reporting-api
ExclusiveArch: %{java_arches} noarch
- maven-reporting-impl
ExclusiveArch: %{java_arches} noarch
- maven-resolver
ExclusiveArch: %{java_arches} noarch
- maven-resources-plugin
ExclusiveArch: %{java_arches} noarch
- maven-script-interpreter
ExclusiveArch: %{java_arches} noarch
- maven-shade-plugin
ExclusiveArch: %{java_arches} noarch
- maven-shared-incremental
ExclusiveArch: %{java_arches} noarch
- maven-shared-io
ExclusiveArch: %{java_arches} noarch
- maven-shared-utils
ExclusiveArch: %{java_arches} noarch
- maven-source-plugin
ExclusiveArch: %{java_arches} noarch
- maven-surefire
ExclusiveArch: %{java_arches} noarch
- maven-verifier
ExclusiveArch: %{java_arches} noarch
- maven-verifier-plugin
ExclusiveArch: %{java_arches} noarch
- maven-wagon
ExclusiveArch: %{java_arches} noarch
- maven2
ExclusiveArch: %{java_arches} noarch
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mcrouter
ExclusiveArch: x86_64 aarch64 ppc64le
- mecab-java
ExclusiveArch: %java_arches
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64
- miglayout
ExclusiveArch: %{java_arches} noarch
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-libidn2
ExclusiveArch: %{ix86} x86_64 %{arm}
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- moby-engine
ExclusiveArch: %{golang_arches}
- mockito
ExclusiveArch: %{java_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- modello
ExclusiveArch: %{java_arches} noarch
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- modulemaker-maven-plugin
ExclusiveArch: %{java_arches} noarch
- mojo-executor
ExclusiveArch: %{java_arches} noarch
- mojo-parent
ExclusiveArch: %{java_arches} noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- munge-maven-plugin
ExclusiveArch: %{java_arches} noarch
- mxparser
ExclusiveArch: %{java_arches} noarch
- mysql-connector-java
ExclusiveArch: %{java_arches} noarch
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- naev
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- naga
ExclusiveArch: %{java_arches} noarch
- nant
ExclusiveArch: %mono_arches
- nativejit
ExclusiveArch: x86_64
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- nekohtml
ExclusiveArch: %{java_arches} noarch
- netavark
ExclusiveArch: %{golang_arches_future}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-language-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs18
ExclusiveArch: %{nodejs_arches}
- nodejs20
ExclusiveArch: %{nodejs_arches}
- nom-tam-fits
ExclusiveArch: %{java_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- objectweb-asm
ExclusiveArch: %{java_arches} noarch
- objenesis
ExclusiveArch: %{java_arches} noarch
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
ExclusiveArch: %{golang_arches_future}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- oneVPL
ExclusiveArch: x86_64
- oneVPL-intel-gpu
ExclusiveArch: x86_64
- oneapi-level-zero
ExclusiveArch: x86_64
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- onedrive
ExclusiveArch: %{ldc_arches}
- ongres-scram
ExclusiveArch: %{java_arches} noarch
- ongres-stringprep
ExclusiveArch: %{java_arches} noarch
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64 aarch64
ExclusiveArch: %{ix86} x86_64 aarch64
ExclusiveArch: x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjdk-asmtools
ExclusiveArch: %{java_arches} noarch
- openjdk-asmtools7
ExclusiveArch: %{java_arches} noarch
- openjfx
ExclusiveArch: %{java_arches}
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openms
ExclusiveArch: %{qt5_qtwebengine_arches}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openpgl
ExclusiveArch: x86_64
- openssl-ibmca
ExclusiveArch: s390 s390x
- openstack-java-sdk
ExclusiveArch: %{java_arches} noarch
- opentest4j
ExclusiveArch: %{java_arches} noarch
- options
ExclusiveArch: %{java_arches} noarch
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- osgi-annotation
ExclusiveArch: %{java_arches} noarch
- osgi-compendium
ExclusiveArch: %{java_arches} noarch
- osgi-core
ExclusiveArch: %{java_arches} noarch
- pacemaker
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64 %{arm}
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- paflib
ExclusiveArch: ppc %{power64}
- pageedit
ExclusiveArch: %{qt5_qtwebengine_arches}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- parserng
ExclusiveArch: %{java_arches} noarch
- pasdoc
ExclusiveArch: %{fpc_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcfi
ExclusiveArch: %{java_arches} noarch
- pcm
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdbg
ExclusiveArch: ppc64le
- pdfbox
ExclusiveArch: %{java_arches} noarch
- pdfmod
ExclusiveArch: %mono_arches
- pdftk-java
ExclusiveArch: %{java_arches} noarch
- pentaho-libxml
ExclusiveArch: %{java_arches} noarch
- pentaho-reporting-flow-engine
ExclusiveArch: %{java_arches} noarch
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- picocli
ExclusiveArch: %{java_arches} noarch
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- plantuml
ExclusiveArch: %{java_arches} noarch
- plasma-dialer
ExclusiveArch: %{java_arches}
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plexus-active-collections
ExclusiveArch: %{java_arches} noarch
- plexus-archiver
ExclusiveArch: %{java_arches} noarch
- plexus-build-api
ExclusiveArch: %{java_arches} noarch
- plexus-cipher
ExclusiveArch: %{java_arches} noarch
- plexus-classworlds
ExclusiveArch: %{java_arches} noarch
- plexus-compiler
ExclusiveArch: %{java_arches} noarch
- plexus-component-api
ExclusiveArch: %{java_arches} noarch
- plexus-components-pom
ExclusiveArch: %{java_arches} noarch
- plexus-containers
ExclusiveArch: %{java_arches} noarch
- plexus-i18n
ExclusiveArch: %{java_arches} noarch
- plexus-interpolation
ExclusiveArch: %{java_arches} noarch
- plexus-io
ExclusiveArch: %{java_arches} noarch
- plexus-languages
ExclusiveArch: %{java_arches} noarch
- plexus-pom
ExclusiveArch: %{java_arches} noarch
- plexus-resources
ExclusiveArch: %{java_arches} noarch
- plexus-sec-dispatcher
ExclusiveArch: %{java_arches} noarch
- plexus-utils
ExclusiveArch: %{java_arches} noarch
- plexus-velocity
ExclusiveArch: %{java_arches} noarch
- podman
ExclusiveArch: %{golang_arches_future}
- pomchecker
ExclusiveArch: %{java_arches} noarch
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- postgresql-jdbc
ExclusiveArch: %{java_arches} noarch
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- procyon
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches} noarch
- proguard
ExclusiveArch: %{java_arches} noarch
- prometheus-jmx-exporter
ExclusiveArch: %{java_arches} noarch
- prometheus-simpleclient-java
ExclusiveArch: %{java_arches} noarch
- proxygen
ExclusiveArch: x86_64 aarch64 ppc64le
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: x86_64
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-ast-monitor
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- python-cryptography
ExclusiveArch: %{rust_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-javaobj
ExclusiveArch: %{java_arches} noarch
- python-jep
ExclusiveArch: %{java_arches}
- python-jupyter-polymake
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-setuptools-rust
ExclusiveArch: %{rust_arches}
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qatzip
ExclusiveArch: x86_64
- qbe
ExclusiveArch: x86_64 aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qdox
ExclusiveArch: %{java_arches} noarch
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt6-qtwebengine
ExclusiveArch: aarch64 x86_64
- qt6-qtwebview
ExclusiveArch: aarch64 x86_64
- quantum-espresso
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rEFInd
ExclusiveArch: %{efi}
- rachota
ExclusiveArch: %{java_arches} noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- reflections
ExclusiveArch: %{java_arches} noarch
- reg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- regexp
ExclusiveArch: %{java_arches} noarch
- replacer
ExclusiveArch: %{java_arches} noarch
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- rescene
ExclusiveArch: %{mono_arches}
- resteasy
ExclusiveArch: %{java_arches} noarch
- restool
ExclusiveArch: aarch64
- restsharp
ExclusiveArch: %{mono_arches}
- retsnoop
ExclusiveArch: %{rust_arches}
- rhino
ExclusiveArch: %{java_arches} noarch
- river
ExclusiveArch: %{zig_arches}
- rkcommon
ExclusiveArch: x86_64 aarch64
- rocm-compilersupport
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-device-libs
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-opencl
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 aarch64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64 ppc64le
- rocminfo
ExclusiveArch: x86_64 aarch64 ppc64le
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64 aarch64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rstudio
ExclusiveArch: %{java_arches}
- rsyntaxtextarea
ExclusiveArch: %{java_arches} noarch
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{golang_arches}
- rundoc
ExclusiveArch: %{java_arches} noarch
- rust
ExclusiveArch: %{rust_arches}
- rust-Inflector
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes-gcm
ExclusiveArch: %{rust_arches}
- rust-aes0.7
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash0.4
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_config_derive
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-aliasable
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-aparato
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argmax
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-arrayvec0.5
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-ascii-canvas
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-assert-impl
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_approx_eq
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-mutex
ExclusiveArch: %{rust_arches}
- rust-async-std
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomic
ExclusiveArch: %{rust_arches}
- rust-atomic-traits
ExclusiveArch: %{rust_arches}
- rust-atomic-waker
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-aws-nitro-enclaves-cose
ExclusiveArch: %{rust_arches}
- rust-az
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-base-x
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-benfred-read-process-memory
ExclusiveArch: %{rust_arches}
- rust-binascii
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.9
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-block-padding0.2
ExclusiveArch: %{rust_arches}
- rust-blsctl
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-boxfnonce
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-btrd
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-bugreport
ExclusiveArch: %{rust_arches}
- rust-byte-unit3
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes-cast
ExclusiveArch: %{rust_arches}
- rust-bytes-cast-derive
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytes0.5
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-cache-padded
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-cap
ExclusiveArch: %{rust_arches}
- rust-capng
ExclusiveArch: %{rust_arches}
- rust-capnp-futures
ExclusiveArch: %{rust_arches}
- rust-capnp-rpc
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-manifest
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cascade
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cdylib-link-lines
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfb
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-ciborium
ExclusiveArch: %{rust_arches}
- rust-ciborium-io
ExclusiveArch: %{rust_arches}
- rust-ciborium-ll
ExclusiveArch: %{rust_arches}
- rust-cint
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-cipher0.3
ExclusiveArch: %{rust_arches}
- rust-clap-verbosity-flag
ExclusiveArch: %{rust_arches}
- rust-clap2
ExclusiveArch: %{rust_arches}
- rust-clap_generate
ExclusiveArch: %{rust_arches}
- rust-clap_generate_fig
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-clircle
ExclusiveArch: %{rust_arches}
- rust-codespan-reporting
ExclusiveArch: %{rust_arches}
- rust-codicon
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored1
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-combine
ExclusiveArch: %{rust_arches}
- rust-comfy-table
ExclusiveArch: %{rust_arches}
- rust-compress-tools
ExclusiveArch: %{rust_arches}
- rust-configparser
ExclusiveArch: %{rust_arches}
- rust-confy
ExclusiveArch: %{rust_arches}
- rust-conhash
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.13
ExclusiveArch: %{rust_arches}
- rust-console0.14
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-cstr
ExclusiveArch: %{rust_arches}
- rust-const-oid0.6
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-constant_time_eq
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie-factory
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-coolor
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-cordic
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-count-zeroes
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpufeatures
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel0.4
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch0.8
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue0.2
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam0.7
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm0.17
ExclusiveArch: %{rust_arches}
- rust-crossterm0.19
ExclusiveArch: %{rust_arches}
- rust-crosstermion
ExclusiveArch: %{rust_arches}
- rust-crunchy
ExclusiveArch: %{rust_arches}
- rust-crypto-bigint
ExclusiveArch: %{rust_arches}
- rust-crypto-common
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptoki
ExclusiveArch: %{rust_arches}
- rust-cryptoki-sys
ExclusiveArch: %{rust_arches}
- rust-csscolorparser
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ct-logs
ExclusiveArch: %{rust_arches}
- rust-ctr
ExclusiveArch: %{rust_arches}
- rust-ctr0.8
ExclusiveArch: %{rust_arches}
- rust-cty
ExclusiveArch: %{rust_arches}
- rust-cursive-tabs
ExclusiveArch: %{rust_arches}
- rust-custom_error
ExclusiveArch: %{rust_arches}
- rust-daemonize
ExclusiveArch: %{rust_arches}
- rust-darling0.12
ExclusiveArch: %{rust_arches}
- rust-darling_core0.12
ExclusiveArch: %{rust_arches}
- rust-darling_macro0.12
ExclusiveArch: %{rust_arches}
- rust-dashmap4
ExclusiveArch: %{rust_arches}
- rust-data-encoding-macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding-macro-internal
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus-tree
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-deflate0.8
ExclusiveArch: %{rust_arches}
- rust-deltae
ExclusiveArch: %{rust_arches}
- rust-der
ExclusiveArch: %{rust_arches}
- rust-der_derive
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive-new
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-derive_builder0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core0.9
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-des0.7
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-difflib
ExclusiveArch: %{rust_arches}
- rust-digest0.9
ExclusiveArch: %{rust_arches}
- rust-digest_auth
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-directories-next
ExclusiveArch: %{rust_arches}
- rust-directories3
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-next
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs-sys-next
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-dirs3
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-displaydoc
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-drg
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-duct_sh
ExclusiveArch: %{rust_arches}
- rust-dummy
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-easy-cast
ExclusiveArch: %{rust_arches}
- rust-easy-parallel
ExclusiveArch: %{rust_arches}
- rust-edit
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-elf
ExclusiveArch: %{rust_arches}
- rust-elfcat
ExclusiveArch: %{rust_arches}
- rust-email-encoding
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-endian-type
ExclusiveArch: %{rust_arches}
- rust-enquote
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-iterator
ExclusiveArch: %{rust_arches}
- rust-enum-iterator-derive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_0.6
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive0.6
ExclusiveArch: %{rust_arches}
- rust-enumset
ExclusiveArch: %{rust_arches}
- rust-enumset_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-env_logger0.7
ExclusiveArch: %{rust_arches}
- rust-env_logger0.8
ExclusiveArch: %{rust_arches}
- rust-env_proxy
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escape_string
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-esphome
ExclusiveArch: %{rust_arches}
- rust-ethtool
ExclusiveArch: %{rust_arches}
- rust-event-listener
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-executable-path
ExclusiveArch: %{rust_arches}
- rust-exitcode
ExclusiveArch: %{rust_arches}
- rust-exitfailure
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-eyre
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fallible-streaming-iterator
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-femme
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-field-offset
ExclusiveArch: %{rust_arches}
- rust-filedescriptor
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetreelist
ExclusiveArch: %{rust_arches}
- rust-find-crate
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-firestorm
ExclusiveArch: %{rust_arches}
- rust-fixed
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-fixedbitset0.2
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-fluent
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fn-error-context
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-format-bytes
ExclusiveArch: %{rust_arches}
- rust-format-bytes-macros
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fscommon
ExclusiveArch: %{rust_arches}
- rust-fslock
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-lite
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gag
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-genetlink
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-getset
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gh-emoji
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git-version
ExclusiveArch: %{rust_arches}
- rust-git-version-macro
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-git2_0.13
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glam
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest2
ExclusiveArch: %{rust_arches}
- rust-hamming
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown0.11
ExclusiveArch: %{rust_arches}
- rust-hashbrown0.9
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heatseeker
ExclusiveArch: %{rust_arches}
- rust-heck0.3
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hex-literal0.2
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hidapi
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hkdf0.11
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-hmac0.11
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-human-sort
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime-serde
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper-rustls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-hyperlocal
ExclusiveArch: %{rust_arches}
- rust-i18n-config
ExclusiveArch: %{rust_arches}
- rust-i18n-embed-fl
ExclusiveArch: %{rust_arches}
- rust-i18n-embed-impl
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-iai
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ifcfg-devname
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-image0.23
ExclusiveArch: %{rust_arches}
- rust-impls
ExclusiveArch: %{rust_arches}
- rust-indenter
ExclusiveArch: %{rust_arches}
- rust-indicatif0.15
ExclusiveArch: %{rust_arches}
- rust-infer
ExclusiveArch: %{rust_arches}
- rust-inferno
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inlinable_string
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-inout
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-intl-memoizer
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-inventory-impl
ExclusiveArch: %{rust_arches}
- rust-inventory0.1
ExclusiveArch: %{rust_arches}
- rust-iocuddle
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-ipnetwork0.17
ExclusiveArch: %{rust_arches}
- rust-is_ci
ExclusiveArch: %{rust_arches}
- rust-is_debug
ExclusiveArch: %{rust_arches}
- rust-is_executable
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itertools0.9
ExclusiveArch: %{rust_arches}
- rust-itoa0.4
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-josekit
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder0.1
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-json5
ExclusiveArch: %{rust_arches}
- rust-k9
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-konst
ExclusiveArch: %{rust_arches}
- rust-konst_macro_rules
ExclusiveArch: %{rust_arches}
- rust-konst_proc_macros
ExclusiveArch: %{rust_arches}
- rust-krunvm
ExclusiveArch: x86_64 aarch64
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-kvm-bindings
ExclusiveArch: %{rust_arches}
- rust-kvm-ioctls
ExclusiveArch: x86_64 aarch64
- rust-lalrpop
ExclusiveArch: %{rust_arches}
- rust-lalrpop-util
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-lebe
ExclusiveArch: %{rust_arches}
- rust-lev_distance
ExclusiveArch: %{rust_arches}
- rust-lexiclean
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libseccomp-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsodium-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-lino
ExclusiveArch: %{rust_arches}
- rust-linreg
ExclusiveArch: %{rust_arches}
- rust-linux_proc
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-local-channel
ExclusiveArch: %{rust_arches}
- rust-local-encoding
ExclusiveArch: %{rust_arches}
- rust-local-waker
ExclusiveArch: %{rust_arches}
- rust-local_ipaddress
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-mac_address
ExclusiveArch: %{rust_arches}
- rust-madvr_parse
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matrixcompare
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-core
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-mock
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md-5_0.9
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-memcached-rs
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2_0.3
ExclusiveArch: %{rust_arches}
- rust-memmem
ExclusiveArch: %{rust_arches}
- rust-memoffset0.5
ExclusiveArch: %{rust_arches}
- rust-micro-timer
ExclusiveArch: %{rust_arches}
- rust-micro-timer-macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-minimad
ExclusiveArch: %{rust_arches}
- rust-minimal-lexical
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mio0.7
ExclusiveArch: %{rust_arches}
- rust-mockall_double
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-mptcp-pm
ExclusiveArch: %{rust_arches}
- rust-multer
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra-macros
ExclusiveArch: %{rust_arches}
- rust-nanorand
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-navi
ExclusiveArch: %{rust_arches}
- rust-nb-connect
ExclusiveArch: %{rust_arches}
- rust-ncurses
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-generic
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-netstat2
ExclusiveArch: %{rust_arches}
- rust-nettle
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-nix0.18
ExclusiveArch: %{rust_arches}
- rust-nix0.20
ExclusiveArch: %{rust_arches}
- rust-nix0.22
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-nom5
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-nu-ansi-term
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-bigint0.3
ExclusiveArch: %{rust_arches}
- rust-num-complex0.3
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-rational0.3
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num0.3
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-oid
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl-kdf
ExclusiveArch: %{rust_arches}
- rust-openssl-macros
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-option-operations
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float2
ExclusiveArch: %{rust_arches}
- rust-os-release
ExclusiveArch: %{rust_arches}
- rust-os_display
ExclusiveArch: %{rust_arches}
- rust-os_pipe0.9
ExclusiveArch: %{rust_arches}
- rust-os_type
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-overload
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-page_size
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pam
ExclusiveArch: %{rust_arches}
- rust-pam-sys
ExclusiveArch: %{rust_arches}
- rust-paris
ExclusiveArch: %{rust_arches}
- rust-parking
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot0.11
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partition-identity
ExclusiveArch: %{rust_arches}
- rust-passwd
ExclusiveArch: %{rust_arches}
- rust-password-hash
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
ExclusiveArch: %{rust_arches}
- rust-pathsearch
ExclusiveArch: %{rust_arches}
- rust-pbkdf2
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-pem-rfc7468
ExclusiveArch: %{rust_arches}
- rust-pem0.8
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-petgraph0.5
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.8
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.8
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.8
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pid
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite0.1
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pkcs1
ExclusiveArch: %{rust_arches}
- rust-pkcs5
ExclusiveArch: %{rust_arches}
- rust-pkcs8
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-info
ExclusiveArch: %{rust_arches}
- rust-plotlib
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-png0.16
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pom
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates1
ExclusiveArch: %{rust_arches}
- rust-pretty-bytes
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.6
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.7
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-primal-bit
ExclusiveArch: %{rust_arches}
- rust-primal-check
ExclusiveArch: %{rust_arches}
- rust-primal-estimate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate0.1
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-maps
ExclusiveArch: %{rust_arches}
- rust-proc-mounts
ExclusiveArch: %{rust_arches}
- rust-process_control
ExclusiveArch: %{rust_arches}
- rust-procfs0.9
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-proptest0.10
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-derive0.8
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-prost0.8
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psl-types
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-ptr_meta
ExclusiveArch: %{rust_arches}
- rust-ptr_meta_derive
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-pwd
ExclusiveArch: %{rust_arches}
- rust-python-launcher
ExclusiveArch: %{rust_arches}
- rust-qstring
ExclusiveArch: %{rust_arches}
- rust-quantiles
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml0.22
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.9
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand0.7
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.2
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_core0.5
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rbspy
ExclusiveArch: %{rust_arches}
- rust-rbspy-ruby-structs
ExclusiveArch: %{rust_arches}
- rust-rbspy-testdata
ExclusiveArch: %{rust_arches}
- rust-rctree
ExclusiveArch: %{rust_arches}
- rust-rd-agent
ExclusiveArch: %{rust_arches}
- rust-rd-agent-intf
ExclusiveArch: %{rust_arches}
- rust-rd-hashd
ExclusiveArch: %{rust_arches}
- rust-rd-hashd-intf
ExclusiveArch: %{rust_arches}
- rust-rd-util
ExclusiveArch: %{rust_arches}
- rust-read-process-memory
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-remoteprocess
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-resctl-bench
ExclusiveArch: %{rust_arches}
- rust-resctl-bench-intf
ExclusiveArch: %{rust_arches}
- rust-resctl-demo
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmpv
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rspec
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-rustbus_derive
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustc_version0.3
ExclusiveArch: %{rust_arches}
- rust-rustcat
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustls-native-certs
ExclusiveArch: %{rust_arches}
- rust-rustls-pemfile
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-safe_arch
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-salsa20
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-schemafy_core
ExclusiveArch: %{rust_arches}
- rust-schemafy_lib
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scratch
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-scrypt
ExclusiveArch: %{rust_arches}
- rust-sct
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-seahash3
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-selectors
ExclusiveArch: %{rust_arches}
- rust-self_cell
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.11
ExclusiveArch: %{rust_arches}
- rust-sequoia-autocrypt
ExclusiveArch: %{rust_arches}
- rust-sequoia-ipc
ExclusiveArch: %{rust_arches}
- rust-sequoia-net
ExclusiveArch: %{rust_arches}
- rust-sequoia-octopus-librnp
ExclusiveArch: %{rust_arches}
- rust-sequoia-openpgp-mt
ExclusiveArch: %{rust_arches}
- rust-sequoia-sop
ExclusiveArch: %{rust_arches}
- rust-sequoia-sq
ExclusiveArch: %{rust_arches}
- rust-sequoia-sqv
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bser
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_fmt
ExclusiveArch: %{rust_arches}
- rust-serde_qs
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml0.8
ExclusiveArch: %{rust_arches}
- rust-serial_test0.5
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive0.5
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-servo_arc
ExclusiveArch: %{rust_arches}
- rust-sev
ExclusiveArch: x86_64
- rust-sevctl
ExclusiveArch: x86_64
- rust-sha-1_0.9
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha1_0.6
ExclusiveArch: %{rust_arches}
- rust-sha1_smol
ExclusiveArch: %{rust_arches}
- rust-sha1collisiondetection
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha2_0.9
ExclusiveArch: %{rust_arches}
- rust-sha3_0.9
ExclusiveArch: %{rust_arches}
- rust-shadow-rs
ExclusiveArch: %{rust_arches}
- rust-sharded-slab
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shellwords
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal
ExclusiveArch: %{rust_arches}
- rust-signal-hook-mio
ExclusiveArch: %{rust_arches}
- rust-signal-hook0.1
ExclusiveArch: %{rust_arches}
- rust-signature
ExclusiveArch: %{rust_arches}
- rust-signature_derive
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-similar-asserts
ExclusiveArch: %{rust_arches}
- rust-simple_asn1
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-sinit
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallbitvec
ExclusiveArch: %{rust_arches}
- rust-smallstr
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smawk
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snake_case
ExclusiveArch: %{rust_arches}
- rust-sop
ExclusiveArch: %{rust_arches}
- rust-spin0.5
ExclusiveArch: %{rust_arches}
- rust-spin_on
ExclusiveArch: %{rust_arches}
- rust-spki
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-statrs
ExclusiveArch: %{rust_arches}
- rust-str_stack
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-streebog
ExclusiveArch: %{rust_arches}
- rust-streebog0.9
ExclusiveArch: %{rust_arches}
- rust-strict
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum0.21
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-strum_macros0.21
ExclusiveArch: %{rust_arches}
- rust-supports-color
ExclusiveArch: %{rust_arches}
- rust-supports-hyperlinks
ExclusiveArch: %{rust_arches}
- rust-supports-unicode
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sval_json
ExclusiveArch: %{rust_arches}
- rust-svg
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-syntect4
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo0.19
ExclusiveArch: %{rust_arches}
- rust-system76_ectool
ExclusiveArch: %{rust_arches}
- rust-tabular
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tap
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-temp_testdir
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-temptree
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term0.6
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termbg
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-textwrap0.11
ExclusiveArch: %{rust_arches}
- rust-textwrap0.14
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-tree
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiff0.6
ExclusiveArch: %{rust_arches}
- rust-tiger
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time-macros0.1
ExclusiveArch: %{rust_arches}
- rust-time0.2
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-tiny-keccak
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tiny_http0.6
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-compat
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-macros0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-rustls
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.6
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-tokio0.2
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-toml_edit
ExclusiveArch: %{rust_arches}
- rust-totp-lite
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-tracing-log
ExclusiveArch: %{rust_arches}
- rust-trash
ExclusiveArch: %{rust_arches}
- rust-tree-sitter
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-cli
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-config
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-highlight
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-loader
ExclusiveArch: %{rust_arches}
- rust-tree-sitter-tags
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-ttf-parser0.12
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-type-map
ExclusiveArch: %{rust_arches}
- rust-typed-arena1
ExclusiveArch: %{rust_arches}
- rust-typed-builder
ExclusiveArch: %{rust_arches}
- rust-tzfile
ExclusiveArch: %{rust_arches}
- rust-ubyte
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-uefi-run
ExclusiveArch: %{rust_arches}
- rust-umask
ExclusiveArch: %{rust_arches}
- rust-uncased
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-langid
ExclusiveArch: %{rust_arches}
- rust-unic-langid-macros
ExclusiveArch: %{rust_arches}
- rust-unic-langid-macros-impl
ExclusiveArch: %{rust_arches}
- rust-unic-locale
ExclusiveArch: %{rust_arches}
- rust-unic-locale-macros
ExclusiveArch: %{rust_arches}
- rust-unic-locale-macros-impl
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-linebreak
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-universal-hash
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uriparse
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-users0.10
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-width
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uucore
ExclusiveArch: %{rust_arches}
- rust-uucore_procs
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-uuid0.8
ExclusiveArch: %{rust_arches}
- rust-v_frame
ExclusiveArch: %{rust_arches}
- rust-value-bag
ExclusiveArch: %{rust_arches}
- rust-varbincode
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-vergen3
ExclusiveArch: %{rust_arches}
- rust-version
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vhost-user-backend
ExclusiveArch: %{rust_arches}
- rust-virtio-bindings
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vmm-sys-util
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vsprintf
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-vtparse
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-waker-fn
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
- rust-web-ext-native-messaging
ExclusiveArch: %{rust_arches}
- rust-webbrowser
ExclusiveArch: %{rust_arches}
- rust-webpki
ExclusiveArch: %{rust_arches}
- rust-webpki-roots
ExclusiveArch: %{rust_arches}
- rust-weezl
ExclusiveArch: %{rust_arches}
- rust-wezterm-color-types
ExclusiveArch: %{rust_arches}
- rust-wezterm-dynamic
ExclusiveArch: %{rust_arches}
- rust-wezterm-dynamic-derive
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xi-unicode
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xmlwriter
ExclusiveArch: %{rust_arches}
- rust-xxhash-c-sys
ExclusiveArch: %{rust_arches}
- rust-xxhash-rust
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-yansi
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-z85
ExclusiveArch: %{rust_arches}
- rust-zbase32
ExclusiveArch: %{rust_arches}
- rust-zbus1
ExclusiveArch: %{rust_arches}
- rust-zbus_macros1
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zmq
ExclusiveArch: %{rust_arches}
- rust-zmq-sys
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zvariant2
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive2
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- sac
ExclusiveArch: %{java_arches} noarch
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 x86_64
- sat4j
ExclusiveArch: %{java_arches} noarch
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sblim-cim-client
ExclusiveArch: %{java_arches} noarch
- sblim-cim-client2
ExclusiveArch: %{java_arches} noarch
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- scala
ExclusiveArch: %{java_arches} noarch
- scalacheck
ExclusiveArch: %{java_arches} noarch
- scannotation
ExclusiveArch: %{java_arches} noarch
- sdljava
ExclusiveArch: %{java_arches}
- sdrangel
ExclusiveArch: %{qt5_qtwebengine_arches}
- sdsl-lite
ExclusiveArch: %{power64} x86_64 aarch64
- seabios
ExclusiveArch: x86_64
- seadrive-gui
ExclusiveArch: %{qt5_qtwebengine_arches}
- seafile-client
ExclusiveArch: %{qt5_qtwebengine_arches}
- seamonkey
ExclusiveArch: x86_64
- seqan3
ExclusiveArch: %{power64} x86_64 aarch64
- sequence-library
ExclusiveArch: %{java_arches} noarch
- serp
ExclusiveArch: %{java_arches} noarch
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- shaman
ExclusiveArch: %{java_arches} noarch
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- singularity-ce
ExclusiveArch: %{go_arches}
- sisu
ExclusiveArch: %{java_arches} noarch
- sisu-mojos
ExclusiveArch: %{java_arches} noarch
- skopeo
ExclusiveArch: %{golang_arches_future}
- skychart
ExclusiveArch: %{fpc_arches}
- slf4j
ExclusiveArch: %{java_arches} noarch
- slirp4netns
ExclusiveArch: %{golang_arches_future}
- snakeyaml
ExclusiveArch: %{java_arches} noarch
- snapd
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x}
- snip
ExclusiveArch: %{java_arches} noarch
- softnet-stat
ExclusiveArch: %{rust_arches}
- soup-sharp
ExclusiveArch: %{mono_arches}
- spacebar
ExclusiveArch: %{java_arches}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spec-version-maven-plugin
ExclusiveArch: %{java_arches} noarch
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-parent
ExclusiveArch: %{java_arches} noarch
- springlobby
ExclusiveArch: %{ix86} x86_64
- sqljet
ExclusiveArch: %{java_arches} noarch
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
ExclusiveArch: %{rust_arches}
- string-template-maven-plugin
ExclusiveArch: %{java_arches} noarch
- stringtemplate
ExclusiveArch: %{java_arches} noarch
- stringtemplate4
ExclusiveArch: %{java_arches} noarch
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- subscription-manager-cockpit
ExclusiveArch: %{nodejs_arches} noarch
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svnkit
ExclusiveArch: %{java_arches} noarch
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- swing-layout
ExclusiveArch: %{java_arches} noarch
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64le s390x
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- system-rules
ExclusiveArch: %{java_arches} noarch
- system76-keyboard-configurator
ExclusiveArch: %{rust_arches}
- systemd-boot
ExclusiveArch: %efi
- t-digest
ExclusiveArch: %{java_arches} noarch
- taggle
ExclusiveArch: %{java_arches} noarch
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tagsoup
ExclusiveArch: %{java_arches} noarch
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64 aarch64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- test-interface
ExclusiveArch: %{java_arches} noarch
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- testng
ExclusiveArch: %{java_arches} noarch
- texlive
ExclusiveArch: %{java_arches} noarch
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- tomcat
ExclusiveArch: %{java_arches} noarch
- tomcat-native
ExclusiveArch: %{java_arches}
- tomcat-taglibs-parent
ExclusiveArch: %{java_arches} noarch
- tomcatjss
ExclusiveArch: %{java_arches} noarch
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- treelayout
ExclusiveArch: %{java_arches} noarch
- trilead-ssh2
ExclusiveArch: %{java_arches} noarch
- truth
ExclusiveArch: %{java_arches} noarch
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- typescript
ExclusiveArch: %{nodejs_arches} noarch
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- univocity-parsers
ExclusiveArch: %{java_arches} noarch
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- usd
ExclusiveArch: aarch64 x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- vakzination
ExclusiveArch: %{java_arches}
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vecmath1.2
ExclusiveArch: %{java_arches} noarch
- velocity
ExclusiveArch: %{java_arches} noarch
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- vim-syntastic
ExclusiveArch: %{java_arches} noarch
- virt-p2v
ExclusiveArch: x86_64
- virt-v2v
ExclusiveArch: x86_64
- virtiofsd
ExclusiveArch: %{rust_arches}
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- voms-api-java
ExclusiveArch: %{java_arches} noarch
- voms-clients-java
ExclusiveArch: %{java_arches} noarch
- vrq
ExclusiveArch: %{ix86} x86_64
- wangle
ExclusiveArch: x86_64 aarch64 ppc64le
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- wasmedge
ExclusiveArch: x86_64 aarch64
- watchman
ExclusiveArch: x86_64 aarch64 ppc64le
- wdt
ExclusiveArch: x86_64 aarch64 ppc64le
- webkit2-sharp
ExclusiveArch: %mono_arches
- weld-parent
ExclusiveArch: %{java_arches} noarch
- why3
ExclusiveArch: %{java_arches}
- wine
ExclusiveArch: %{ix86} x86_64 aarch64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- writer2latex
ExclusiveArch: %{java_arches}
- ws-commons-util
ExclusiveArch: %{java_arches} noarch
- wsdl4j
ExclusiveArch: %{java_arches} noarch
- wult
ExclusiveArch: x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xalan-j2
ExclusiveArch: %{java_arches} noarch
- xbean
ExclusiveArch: %{java_arches} noarch
- xbyak
ExclusiveArch: x86_64
- xbyak_aarch64
ExclusiveArch: aarch64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: x86_64 aarch64
- xerces-j2
ExclusiveArch: %{java_arches} noarch
- xgap
ExclusiveArch: %{gap_arches}
- xml-commons-apis
ExclusiveArch: %{java_arches} noarch
- xml-commons-resolver
ExclusiveArch: %{java_arches} noarch
- xml-maven-plugin
ExclusiveArch: %{java_arches} noarch
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xmlgraphics-commons
ExclusiveArch: %{java_arches} noarch
- xmlpull
ExclusiveArch: %{java_arches} noarch
- xmlstreambuffer
ExclusiveArch: %{java_arches} noarch
- xmlunit
ExclusiveArch: %{java_arches} noarch
- xmpcore
ExclusiveArch: %{java_arches} noarch
- xmvn
ExclusiveArch: %{java_arches} noarch
- xmvn-connector-ivy
ExclusiveArch: %{java_arches} noarch
- xmvn-generator
ExclusiveArch: %{java_arches} noarch
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- xstream
ExclusiveArch: %{java_arches} noarch
- xz-java
ExclusiveArch: %{java_arches} noarch
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zcfan
ExclusiveArch: x86_64
- zeal
ExclusiveArch: %{qt5_qtwebengine_arches}
- zenon
ExclusiveArch: %{java_arches}
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zig
ExclusiveArch: %{zig_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
1 year, 3 months
Architecture specific change in rpms/esmi_ib_library.git
by githook-noreply@fedoraproject.org
The package rpms/esmi_ib_library.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/esmi_ib_library.git/commit/?id=83....
Change:
+ExclusiveArch: x86_64
Thanks.
Full change:
============
commit 83a57eb9ea02ef9a9ca6ba42d54b0ce00abbe22d
Author: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Tue Mar 7 17:48:38 2023 -0800
Initial import; Fixes: RHBZ#2174487
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e41e9d1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/esmi_ib_library-f4ce8713f3ed5cc4d20a9238d2be7405e7bbd583.tar.gz
diff --git a/esmi_ib_library.spec b/esmi_ib_library.spec
new file mode 100644
index 0000000..bf6f4ce
--- /dev/null
+++ b/esmi_ib_library.spec
@@ -0,0 +1,118 @@
+%global date 20220622
+%global commit f4ce8713f3ed5cc4d20a9238d2be7405e7bbd583
+%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global major_version 1
+%global minor_version 5
+%global full_version %{major_version}.%{minor_version}.0
+%global soversion %{full_version}.0
+
+# The documentation doesn't build at the moment, use the prebuilt one instead
+%bcond_with doc
+
+Name: esmi_ib_library
+Version: %{full_version}^%{date}git%{shortcommit}
+Release: %autorelease
+Summary: E-SMI: EPYC System management Interface In-band Library
+
+License: NCSA
+URL: https://github.com/amd/esmi_ib_library
+Source: %{url}/archive/%{commit}/%{name}-%{commit}.tar.gz
+
+# This is a hardware enablement package for AMD x86_64 platforms
+ExclusiveArch: x86_64
+
+BuildRequires: chrpath
+BuildRequires: cmake
+BuildRequires: gcc-c++
+BuildRequires: sed
+%if %{with doc}
+BuildRequires: doxygen
+BuildRequires: make
+BuildRequires: texlive-latex
+%endif
+
+Suggests: %{name}-doc = %{version}-%{release}
+
+%description
+The EPYC System Management Interface In-band Library, or E-SMI library, is
+part of the EPYC System Management Inband software stack. It is a C library
+for Linux that provides a user space interface to monitor and control the CPU's
+power, energy, performance and other system management features.
+
+%package devel
+Summary: Development headers and libraries for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+This package contains development headers and libraries for %{name}.
+
+%package doc
+Summary: Additional documentation for %{name}
+BuildArch: noarch
+
+%description doc
+This package contains additional documentation for %{name}.
+
+%package -n e_smi_tool
+Summary: E-SMI: EPYC™ System management Interface tool
+
+%description -n e_smi_tool
+This package contains E-SMI tool, a program based on the E-SMI In-band library
+that provides options to Monitor and Control System Management functionality.
+
+%prep
+%autosetup -n %{name}-%{commit}
+
+# Use FHS install paths and patch version detection
+sed -i CMakeLists.txt \
+ -e 's:${E_SMI}/bin:%{_bindir}:g' \
+ -e 's:e_smi/include:%{_includedir}:g' \
+ -e 's:${E_SMI}/lib/static:%{_libdir}:g' \
+ -e 's:${E_SMI}/lib:%{_libdir}:g' \
+ -e 's:${E_SMI}/doc:%{_pkgdocdir}:g' \
+ -e 's:get_version_from_tag("1.0.0.0":get_version_from_tag("%{soversion}":'
+
+%if %{with doc}
+# Remove prebuilt docs
+rm ESMI_IB_Release_Notes.pdf ESMI_Manual.pdf
+%endif
+
+%build
+%cmake
+%cmake_build
+%if %{with doc}
+make -C %{_vpath_builddir} doc
+%endif
+
+%install
+%cmake_install
+
+# Strip rpath
+chrpath -d %{buildroot}/%{_bindir}/e_smi_tool
+
+%check
+%ctest
+
+%files
+%license License.txt
+%dir %{_pkgdocdir}
+%doc %{_pkgdocdir}/README.md
+%doc %{_pkgdocdir}/RELEASENOTES.md
+%{_libdir}/libe_smi64.so.%{major_version}
+%{_libdir}/libe_smi64.so.%{major_version}.%{minor_version}
+
+%files devel
+%{_includedir}/e_smi/
+%{_libdir}/libe_smi64.so
+
+%files doc
+%license License.txt
+%dir %{_pkgdocdir}
+%doc %{_pkgdocdir}/ESMI_IB_Release_Notes.pdf
+%doc %{_pkgdocdir}/ESMI_Manual.pdf
+
+%files -n e_smi_tool
+%{_bindir}/e_smi_tool
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..0566553
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (esmi_ib_library-f4ce8713f3ed5cc4d20a9238d2be7405e7bbd583.tar.gz) = 3677e94034b1e6cbb15565bfffb6fd4efd951b5654faee9195402ee3556caa28dccc26fc3cb195f64da3870d9ca8c7a0daf087edd01f7585444617ad85dcb3ea
1 year, 3 months
Architecture specific change in rpms/rust-scheduled-thread-pool.git
by githook-noreply@fedoraproject.org
The package rpms/rust-scheduled-thread-pool.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-scheduled-thread-pool.git/co....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 17f1b3f581c0fbe811d7efbd6705dcf839faf269
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Tue Mar 7 23:21:09 2023 +0100
Update to version 0.2.7; Fixes RHBZ#2175973
diff --git a/.gitignore b/.gitignore
index 3dc8251..46c193b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/scheduled-thread-pool-0.2.4.crate
/scheduled-thread-pool-0.2.5.crate
/scheduled-thread-pool-0.2.6.crate
+/scheduled-thread-pool-0.2.7.crate
diff --git a/README.md b/README.md
deleted file mode 100644
index c0d7cdb..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# rust-scheduled-thread-pool
-
-The rust-scheduled-thread-pool package
\ No newline at end of file
diff --git a/rust-scheduled-thread-pool.spec b/rust-scheduled-thread-pool.spec
index 0b86413..f2c437d 100644
--- a/rust-scheduled-thread-pool.spec
+++ b/rust-scheduled-thread-pool.spec
@@ -1,25 +1,23 @@
-# Generated by rust2rpm 21
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate scheduled-thread-pool
-Name: rust-%{crate}
-Version: 0.2.6
+Name: rust-scheduled-thread-pool
+Version: 0.2.7
Release: %autorelease
Summary: Scheduled thread pool
# Upstream license specification: MIT/Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/scheduled-thread-pool
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
BuildRequires: rust-packaging >= 21
%global _description %{expand:
-Scheduled thread pool.}
+A scheduled thread pool.}
%description %{_description}
diff --git a/sources b/sources
index 6ab5de0..7dadd0a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (scheduled-thread-pool-0.2.6.crate) = 7d591914343c8090813b6d6101763a668d64243814a3f832c9d536bae549fa927f75c98226236c9c0c7ca0fc04cdf9737c323ba18cca538b66b608c639b64ea9
+SHA512 (scheduled-thread-pool-0.2.7.crate) = 3215c063cddfe017e102b63a8449c6f624d190547ccfffb912968b4c4975b70d36ce2c9b3521f7527a053fb89b9513903bde46dede72922d7050e87f76601f3b
commit f6209a27791707bbd176f6a74a004b5ef64c6c09
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jan 21 01:11:34 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
commit dd2812a8261d882e840124641d83973e8618e96c
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 23 06:25:03 2022 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1 year, 3 months
Architecture specific change in rpms/rust-scheduled-thread-pool.git
by githook-noreply@fedoraproject.org
The package rpms/rust-scheduled-thread-pool.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-scheduled-thread-pool.git/co....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 17f1b3f581c0fbe811d7efbd6705dcf839faf269
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Tue Mar 7 23:21:09 2023 +0100
Update to version 0.2.7; Fixes RHBZ#2175973
diff --git a/.gitignore b/.gitignore
index 3dc8251..46c193b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/scheduled-thread-pool-0.2.4.crate
/scheduled-thread-pool-0.2.5.crate
/scheduled-thread-pool-0.2.6.crate
+/scheduled-thread-pool-0.2.7.crate
diff --git a/README.md b/README.md
deleted file mode 100644
index c0d7cdb..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# rust-scheduled-thread-pool
-
-The rust-scheduled-thread-pool package
\ No newline at end of file
diff --git a/rust-scheduled-thread-pool.spec b/rust-scheduled-thread-pool.spec
index 0b86413..f2c437d 100644
--- a/rust-scheduled-thread-pool.spec
+++ b/rust-scheduled-thread-pool.spec
@@ -1,25 +1,23 @@
-# Generated by rust2rpm 21
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate scheduled-thread-pool
-Name: rust-%{crate}
-Version: 0.2.6
+Name: rust-scheduled-thread-pool
+Version: 0.2.7
Release: %autorelease
Summary: Scheduled thread pool
# Upstream license specification: MIT/Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/scheduled-thread-pool
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
BuildRequires: rust-packaging >= 21
%global _description %{expand:
-Scheduled thread pool.}
+A scheduled thread pool.}
%description %{_description}
diff --git a/sources b/sources
index 6ab5de0..7dadd0a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (scheduled-thread-pool-0.2.6.crate) = 7d591914343c8090813b6d6101763a668d64243814a3f832c9d536bae549fa927f75c98226236c9c0c7ca0fc04cdf9737c323ba18cca538b66b608c639b64ea9
+SHA512 (scheduled-thread-pool-0.2.7.crate) = 3215c063cddfe017e102b63a8449c6f624d190547ccfffb912968b4c4975b70d36ce2c9b3521f7527a053fb89b9513903bde46dede72922d7050e87f76601f3b
commit f6209a27791707bbd176f6a74a004b5ef64c6c09
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jan 21 01:11:34 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1 year, 3 months
Architecture specific change in rpms/rust-scheduled-thread-pool.git
by githook-noreply@fedoraproject.org
The package rpms/rust-scheduled-thread-pool.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-scheduled-thread-pool.git/co....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit 17f1b3f581c0fbe811d7efbd6705dcf839faf269
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Tue Mar 7 23:21:09 2023 +0100
Update to version 0.2.7; Fixes RHBZ#2175973
diff --git a/.gitignore b/.gitignore
index 3dc8251..46c193b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/scheduled-thread-pool-0.2.4.crate
/scheduled-thread-pool-0.2.5.crate
/scheduled-thread-pool-0.2.6.crate
+/scheduled-thread-pool-0.2.7.crate
diff --git a/README.md b/README.md
deleted file mode 100644
index c0d7cdb..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# rust-scheduled-thread-pool
-
-The rust-scheduled-thread-pool package
\ No newline at end of file
diff --git a/rust-scheduled-thread-pool.spec b/rust-scheduled-thread-pool.spec
index 0b86413..f2c437d 100644
--- a/rust-scheduled-thread-pool.spec
+++ b/rust-scheduled-thread-pool.spec
@@ -1,25 +1,23 @@
-# Generated by rust2rpm 21
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate scheduled-thread-pool
-Name: rust-%{crate}
-Version: 0.2.6
+Name: rust-scheduled-thread-pool
+Version: 0.2.7
Release: %autorelease
Summary: Scheduled thread pool
# Upstream license specification: MIT/Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/scheduled-thread-pool
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
BuildRequires: rust-packaging >= 21
%global _description %{expand:
-Scheduled thread pool.}
+A scheduled thread pool.}
%description %{_description}
diff --git a/sources b/sources
index 6ab5de0..7dadd0a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (scheduled-thread-pool-0.2.6.crate) = 7d591914343c8090813b6d6101763a668d64243814a3f832c9d536bae549fa927f75c98226236c9c0c7ca0fc04cdf9737c323ba18cca538b66b608c639b64ea9
+SHA512 (scheduled-thread-pool-0.2.7.crate) = 3215c063cddfe017e102b63a8449c6f624d190547ccfffb912968b4c4975b70d36ce2c9b3521f7527a053fb89b9513903bde46dede72922d7050e87f76601f3b
1 year, 3 months
Architecture specific change in rpms/hpl.git
by githook-noreply@fedoraproject.org
The package rpms/hpl.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/hpl.git/commit/?id=30286da7cb571d....
Change:
+%ifarch i686
Thanks.
Full change:
============
commit 30286da7cb571dda4a13d5aab1e8f7b2bd13fb38
Author: Jaroslav Škarvada <jskarvad(a)redhat.com>
Date: Tue Mar 7 22:26:57 2023 +0100
Disabled tests on i686
diff --git a/hpl.spec b/hpl.spec
index 60e7fa8..29c791a 100644
--- a/hpl.spec
+++ b/hpl.spec
@@ -9,7 +9,7 @@
Name: hpl
URL: http://www.netlib.org/benchmark/hpl/
Version: 2.2
-Release: 14%{?dist}
+Release: 15%{?dist}
License: BSD with advertising
Requires: %{name}-common = %{version}-%{release}
BuildRequires: mpich-devel, openmpi-devel
@@ -117,6 +117,11 @@ install -p -D -m 0644 man/man3/* %{buildroot}%{_mandir}/man3
%check
+# Broken on i686
+%ifarch i686
+exit 0
+%endif
+
# Check openmpi implementation
%{_openmpi_load}
pushd bin/${MPI_COMPILER}
@@ -150,6 +155,9 @@ popd
%changelog
+* Tue Mar 7 2023 Jaroslav Škarvada <jskarvad(a)redhat.com> - 2.2-15
+- Disabled tests on i686
+
* Thu Jan 19 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.2-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
1 year, 3 months