Compare commits
No commits in common. "rawhide" and "f45" have entirely different histories.
3 changed files with 8 additions and 119 deletions
|
|
@ -1,109 +0,0 @@
|
|||
From 1ecaa12836a69896dd6702fb5ed5e13979399371 Mon Sep 17 00:00:00 2001
|
||||
From: Jesse Schwartzentruber <truber@mozilla.com>
|
||||
Date: Tue, 28 Jul 2026 17:26:38 +0000
|
||||
Subject: [PATCH] Bug 2053518 - Handle the *-oe-linux-* rust targets added in
|
||||
rustc 1.98 in rust target detection.
|
||||
r=firefox-build-system-reviewers,glandium
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D311145
|
||||
---
|
||||
build/moz.configure/rust.configure | 29 ++++++++++++++++---
|
||||
.../configure/test_toolchain_configure.py | 15 ++++++++++
|
||||
2 files changed, 40 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
|
||||
index 5525c26a184da..35cb30416c647 100644
|
||||
--- a/build/moz.configure/rust.configure
|
||||
+++ b/build/moz.configure/rust.configure
|
||||
@@ -302,6 +302,11 @@
|
||||
elif not candidates:
|
||||
return None
|
||||
|
||||
+ # config.guess uses the "pc" vendor for x86/x86_64 where rust uses its
|
||||
+ # generic "unknown" vendor; normalize so we correlate on the right one.
|
||||
+ vendor = "unknown" if host_or_target.vendor == "pc" else host_or_target.vendor
|
||||
+
|
||||
+
|
||||
# We have multiple candidates. There are two cases where we can try to
|
||||
# narrow further down using extra information from the build system.
|
||||
# - For windows targets, correlate with the C compiler type
|
||||
@@ -369,11 +374,19 @@
|
||||
else:
|
||||
suffix = ""
|
||||
for p in prefixes:
|
||||
- for c in candidates:
|
||||
- if c.rust_target.startswith(
|
||||
- "{}-".format(p)
|
||||
- ) and c.rust_target.endswith(suffix):
|
||||
+ matches = [
|
||||
+ c
|
||||
+ for c in candidates
|
||||
+ if c.rust_target.startswith("{}-".format(p))
|
||||
+ and c.rust_target.endswith(suffix)
|
||||
+ ]
|
||||
+ if not matches:
|
||||
+ continue
|
||||
+ # As below, correlate on the (normalized) vendor.
|
||||
+ for c in matches:
|
||||
+ if c.target.vendor == vendor:
|
||||
return c.rust_target
|
||||
+ return matches[0].rust_target
|
||||
|
||||
# See if we can narrow down on the exact alias.
|
||||
# We use the sub_configure_alias to keep support mingw32 triplets as input.
|
||||
@@ -402,6 +415,15 @@
|
||||
elif narrowed:
|
||||
candidates = narrowed
|
||||
|
||||
+ # Correlate on the (normalized) vendor, so vendor-specific targets (e.g.
|
||||
+ # the *-oe-linux-gnu targets added in rust 1.98) don't shadow the
|
||||
+ # generic ones for aliases whose vendor doesn't match a rust target.
|
||||
+ narrowed = [c for c in candidates if c.target.vendor == vendor]
|
||||
+ if len(narrowed) == 1:
|
||||
+ return narrowed[0].rust_target
|
||||
+ elif narrowed:
|
||||
+ candidates = narrowed
|
||||
+
|
||||
# See if we can narrow down with the raw OS and raw CPU
|
||||
narrowed = [
|
||||
c
|
||||
diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
|
||||
index 58a736ee85fcc..7dfb0efb9201c 100644
|
||||
--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
|
||||
+++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
|
||||
@@ -1992,6 +1992,16 @@
|
||||
rust_targets += [
|
||||
"wasm32v1-none",
|
||||
]
|
||||
+ # Additional targets from 1.98
|
||||
+ if Version(version) >= "1.98.0":
|
||||
+ rust_targets += [
|
||||
+ "aarch64-oe-linux-gnu",
|
||||
+ "armv7-oe-linux-gnueabihf",
|
||||
+ "i686-oe-linux-gnu",
|
||||
+ "riscv64-oe-linux-gnu",
|
||||
+ "x86_64-oe-linux-gnu",
|
||||
+ "x86_64-pc-linux-gnu",
|
||||
+ ]
|
||||
rust_targets.remove("wasm32-wasi")
|
||||
|
||||
return 0, "\n".join(sorted(rust_targets)), ""
|
||||
@@ -2089,6 +2099,7 @@
|
||||
("x86_64-unknown-linux-android", "x86_64-linux-android"),
|
||||
("x86_64-unknown-linux-android21", "x86_64-linux-android"),
|
||||
("x86_64-pc-linux-gnu", "x86_64-unknown-linux-gnu"),
|
||||
+ ("riscv64-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu"),
|
||||
("sparcv9-sun-solaris2", "sparcv9-sun-solaris"),
|
||||
(
|
||||
"x86_64-sun-solaris2",
|
||||
@@ -2241,5 +2252,10 @@
|
||||
self.assertEqual(self.get_rust_target("wasm32-unknown-wasi"), "wasm32-wasip1")
|
||||
|
||||
|
||||
+# Exercises the vendor-specific *-oe-linux-* targets added in rust 1.98.
|
||||
+class Rust198Test(RustTest):
|
||||
+ VERSION = "1.98.0"
|
||||
+
|
||||
+
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
16
icecat.spec
16
icecat.spec
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
ExcludeArch: %{ix86} %{arm}
|
||||
|
||||
# Bundled cbindgen-0.29.4
|
||||
# Bundled cbindgen-0.29.3
|
||||
# Enable only if system cbindgen is not available and/or incompatible
|
||||
%global use_bundled_cbindgen 0
|
||||
%global use_bundled_cbindgen 1
|
||||
|
||||
####################
|
||||
|
||||
|
|
@ -160,7 +160,6 @@ Patch226: rhbz-1354671.patch
|
|||
# Build patches
|
||||
Patch228: %{name}-protobuf_s390.patch
|
||||
Patch229: mozilla-2034301.patch
|
||||
Patch230: icecat-rust-1.98_additional_targets_mzb2053518.patch
|
||||
|
||||
# Fix crash on ppc64le (mozilla#1512162)
|
||||
Patch423: mozilla-1512162.patch
|
||||
|
|
@ -347,18 +346,17 @@ tar -xf %{SOURCE5}
|
|||
%patch -P 227 -p 1 -b .build-seccomp
|
||||
%endif
|
||||
|
||||
# ARM64
|
||||
%ifarch %{arm64}
|
||||
%patch -P 226 -p 1 -b .1354671
|
||||
%endif
|
||||
|
||||
# s390x
|
||||
%ifarch s390x
|
||||
%patch -P 228 -p 1 -b .build-protobuf
|
||||
%endif
|
||||
|
||||
%patch -P 229 -p 1 -b .incom-pointer
|
||||
%patch -P 230 -p 1 -b .rust_additional_targets
|
||||
|
||||
# ARM64
|
||||
%ifarch %{arm64}
|
||||
%patch -P 226 -p 1 -b .1354671
|
||||
%endif
|
||||
|
||||
%ifarch %{power64}
|
||||
%patch -P 423 -p 1 -b .1512162
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1,4 +1,4 @@
|
|||
SHA512 (cbindgen-vendor.tar.xz) = 532844c3253bd0b1ee2ed751df8e7b777515877173ab1958e75fc11488908b87ba1aea0d5148c0f2a0b3ca8494ff186f82de1aaf86e8cab38b4eeb02c23e43b3
|
||||
SHA512 (cbindgen-vendor.tar.xz) = ac3f6d2b94f052dc9a5003a5789470e9a5b50590c95d3da8fe29bbbd08d5f3e4939023a4322d207c3779a4252631f33df466c3195950257b54a03b0bff62579a
|
||||
SHA512 (icecat-140.15.0-langpacks.tar.gz) = dc0978aaa1f381887ada136d684620425305c3499f97040601ec01f1a6c663c87e6acc5df85a03a972dc99469a4df2e3ab5a55746aa23c17029782ffb0827668
|
||||
SHA512 (icecat-140.15.0-rh1.tar.bz2) = aaaddd0a94f2c7b7cbb085f53a129139dc87fcea729e0b11f40650c63cb98e1f62a44ccfd35ef48083ef718a6e5830138e3a302c25df7f753366c0f04d0d25a1
|
||||
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue