Update to 1.73.0.
Drop el7 conditionals from the spec.
This commit is contained in:
parent
afbd2cf0c4
commit
0b6ffb1d4a
1
.gitignore
vendored
1
.gitignore
vendored
@ -426,3 +426,4 @@
|
||||
/wasi-libc-7018e24d8fe248596819d2e884761676f3542a04.tar.gz
|
||||
/rustc-1.72.1-src.tar.xz
|
||||
/wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz
|
||||
/rustc-1.73.0-src.tar.xz
|
||||
|
@ -1,142 +0,0 @@
|
||||
From e276ae1cb702fa830be126cccce4bb9e8676f9fb Mon Sep 17 00:00:00 2001
|
||||
From: Josh Stone <jistone@redhat.com>
|
||||
Date: Tue, 25 Jul 2023 13:11:50 -0700
|
||||
Subject: [PATCH] Allow using external builds of the compiler-rt profile lib
|
||||
|
||||
This changes the bootstrap config `target.*.profiler` from a plain bool
|
||||
to also allow a string, which will be used as a path to the pre-built
|
||||
profiling runtime for that target. Then `profiler_builtins/build.rs`
|
||||
reads that in a `LLVM_PROFILER_RT_LIB` environment variable.
|
||||
---
|
||||
config.example.toml | 6 ++++--
|
||||
library/profiler_builtins/build.rs | 6 ++++++
|
||||
src/bootstrap/compile.rs | 4 ++++
|
||||
src/bootstrap/config.rs | 30 ++++++++++++++++++++++++------
|
||||
4 files changed, 38 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/config.example.toml b/config.example.toml
|
||||
index 0c65b25fe138..249847013259 100644
|
||||
--- a/config.example.toml
|
||||
+++ b/config.example.toml
|
||||
@@ -752,8 +752,10 @@ changelog-seen = 2
|
||||
# This option will override the same option under [build] section.
|
||||
#sanitizers = build.sanitizers (bool)
|
||||
|
||||
-# Build the profiler runtime for this target(required when compiling with options that depend
|
||||
-# on this runtime, such as `-C profile-generate` or `-C instrument-coverage`).
|
||||
+# When true, build the profiler runtime for this target(required when compiling
|
||||
+# with options that depend on this runtime, such as `-C profile-generate` or
|
||||
+# `-C instrument-coverage`). This may also be given a path to an existing build
|
||||
+# of the profiling runtime library from LLVM's compiler-rt.
|
||||
# This option will override the same option under [build] section.
|
||||
#profiler = build.profiler (bool)
|
||||
|
||||
diff --git a/library/profiler_builtins/build.rs b/library/profiler_builtins/build.rs
|
||||
index 1b1f11798d74..d14d0b82229a 100644
|
||||
--- a/library/profiler_builtins/build.rs
|
||||
+++ b/library/profiler_builtins/build.rs
|
||||
@@ -6,6 +6,12 @@
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
+ println!("cargo:rerun-if-env-changed=LLVM_PROFILER_RT_LIB");
|
||||
+ if let Ok(rt) = env::var("LLVM_PROFILER_RT_LIB") {
|
||||
+ println!("cargo:rustc-link-lib=static:+verbatim={rt}");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
let target = env::var("TARGET").expect("TARGET was not set");
|
||||
let cfg = &mut cc::Build::new();
|
||||
|
||||
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
|
||||
index 14c3ef79a78f..64bdcd1a3b97 100644
|
||||
--- a/src/bootstrap/compile.rs
|
||||
+++ b/src/bootstrap/compile.rs
|
||||
@@ -336,6 +336,10 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
|
||||
cargo.env("MACOSX_DEPLOYMENT_TARGET", target);
|
||||
}
|
||||
|
||||
+ if let Some(path) = builder.config.profiler_path(target) {
|
||||
+ cargo.env("LLVM_PROFILER_RT_LIB", path);
|
||||
+ }
|
||||
+
|
||||
// Determine if we're going to compile in optimized C intrinsics to
|
||||
// the `compiler-builtins` crate. These intrinsics live in LLVM's
|
||||
// `compiler-rt` repository, but our `src/llvm-project` submodule isn't
|
||||
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
|
||||
index fe932fd6bd30..45a743082415 100644
|
||||
--- a/src/bootstrap/config.rs
|
||||
+++ b/src/bootstrap/config.rs
|
||||
@@ -533,7 +533,7 @@ pub struct Target {
|
||||
pub linker: Option<PathBuf>,
|
||||
pub ndk: Option<PathBuf>,
|
||||
pub sanitizers: Option<bool>,
|
||||
- pub profiler: Option<bool>,
|
||||
+ pub profiler: Option<StringOrBool>,
|
||||
pub rpath: Option<bool>,
|
||||
pub crt_static: Option<bool>,
|
||||
pub musl_root: Option<PathBuf>,
|
||||
@@ -862,9 +862,9 @@ struct Dist {
|
||||
}
|
||||
}
|
||||
|
||||
-#[derive(Debug, Deserialize)]
|
||||
+#[derive(Clone, Debug, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
-enum StringOrBool {
|
||||
+pub enum StringOrBool {
|
||||
String(String),
|
||||
Bool(bool),
|
||||
}
|
||||
@@ -875,6 +875,12 @@ fn default() -> StringOrBool {
|
||||
}
|
||||
}
|
||||
|
||||
+impl StringOrBool {
|
||||
+ fn is_string_or_true(&self) -> bool {
|
||||
+ matches!(self, Self::String(_) | Self::Bool(true))
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
#[derive(Clone, Debug, Deserialize, PartialEq, Eq)]
|
||||
#[serde(untagged)]
|
||||
pub enum RustOptimize {
|
||||
@@ -991,7 +997,7 @@ struct TomlTarget {
|
||||
llvm_libunwind: Option<String> = "llvm-libunwind",
|
||||
android_ndk: Option<String> = "android-ndk",
|
||||
sanitizers: Option<bool> = "sanitizers",
|
||||
- profiler: Option<bool> = "profiler",
|
||||
+ profiler: Option<StringOrBool> = "profiler",
|
||||
rpath: Option<bool> = "rpath",
|
||||
crt_static: Option<bool> = "crt-static",
|
||||
musl_root: Option<String> = "musl-root",
|
||||
@@ -1864,12 +1870,24 @@ pub fn any_sanitizers_enabled(&self) -> bool {
|
||||
self.target_config.values().any(|t| t.sanitizers == Some(true)) || self.sanitizers
|
||||
}
|
||||
|
||||
+ pub fn profiler_path(&self, target: TargetSelection) -> Option<&str> {
|
||||
+ match self.target_config.get(&target)?.profiler.as_ref()? {
|
||||
+ StringOrBool::String(s) => Some(s),
|
||||
+ StringOrBool::Bool(_) => None,
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
pub fn profiler_enabled(&self, target: TargetSelection) -> bool {
|
||||
- self.target_config.get(&target).map(|t| t.profiler).flatten().unwrap_or(self.profiler)
|
||||
+ self.target_config
|
||||
+ .get(&target)
|
||||
+ .and_then(|t| t.profiler.as_ref())
|
||||
+ .map(StringOrBool::is_string_or_true)
|
||||
+ .unwrap_or(self.profiler)
|
||||
}
|
||||
|
||||
pub fn any_profiler_enabled(&self) -> bool {
|
||||
- self.target_config.values().any(|t| t.profiler == Some(true)) || self.profiler
|
||||
+ self.target_config.values().any(|t| matches!(&t.profiler, Some(p) if p.is_string_or_true()))
|
||||
+ || self.profiler
|
||||
}
|
||||
|
||||
pub fn rpath_enabled(&self, target: TargetSelection) -> bool {
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,201 +0,0 @@
|
||||
From 98336f8f6e701ea99275f32d6e2127a621041994 Mon Sep 17 00:00:00 2001
|
||||
From: Guillaume Gomez <guillaume.gomez@huawei.com>
|
||||
Date: Tue, 11 Jul 2023 17:01:35 +0200
|
||||
Subject: [PATCH] Don't fail early if `try_run` returns an error
|
||||
|
||||
---
|
||||
src/bootstrap/download.rs | 2 +-
|
||||
src/bootstrap/run.rs | 11 +++++------
|
||||
src/bootstrap/test.rs | 36 ++++++++++++++++--------------------
|
||||
3 files changed, 22 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/src/bootstrap/download.rs b/src/bootstrap/download.rs
|
||||
index cb40521dda76..9478ac7d9cea 100644
|
||||
--- a/src/bootstrap/download.rs
|
||||
+++ b/src/bootstrap/download.rs
|
||||
@@ -188,7 +188,7 @@ fn fix_bin_or_dylib(&self, fname: &Path) {
|
||||
patchelf.args(&["--set-interpreter", dynamic_linker.trim_end()]);
|
||||
}
|
||||
|
||||
- self.try_run(patchelf.arg(fname)).unwrap();
|
||||
+ let _ = self.try_run(patchelf.arg(fname));
|
||||
}
|
||||
|
||||
fn download_file(&self, url: &str, dest_path: &Path, help_on_error: &str) {
|
||||
diff --git a/src/bootstrap/run.rs b/src/bootstrap/run.rs
|
||||
index c97b75927371..70b917000433 100644
|
||||
--- a/src/bootstrap/run.rs
|
||||
+++ b/src/bootstrap/run.rs
|
||||
@@ -27,8 +27,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
try_run(
|
||||
builder,
|
||||
&mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("generate").arg(&builder.src),
|
||||
- )
|
||||
- .unwrap();
|
||||
+ );
|
||||
}
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
@@ -40,17 +39,17 @@ fn make_run(run: RunConfig<'_>) {
|
||||
}
|
||||
}
|
||||
|
||||
-fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> Result<(), ()> {
|
||||
+fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> bool {
|
||||
if !builder.fail_fast {
|
||||
- if let Err(e) = builder.try_run(cmd) {
|
||||
+ if builder.try_run(cmd).is_err() {
|
||||
let mut failures = builder.delayed_failures.borrow_mut();
|
||||
failures.push(format!("{:?}", cmd));
|
||||
- return Err(e);
|
||||
+ return false;
|
||||
}
|
||||
} else {
|
||||
builder.run(cmd);
|
||||
}
|
||||
- Ok(())
|
||||
+ true
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)]
|
||||
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
|
||||
index 0907291b54da..13576aa787b6 100644
|
||||
--- a/src/bootstrap/test.rs
|
||||
+++ b/src/bootstrap/test.rs
|
||||
@@ -48,17 +48,17 @@
|
||||
// build for, so there is no entry for "aarch64-apple-darwin" here.
|
||||
];
|
||||
|
||||
-fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> Result<(), ()> {
|
||||
+fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> bool {
|
||||
if !builder.fail_fast {
|
||||
- if let Err(e) = builder.try_run(cmd) {
|
||||
+ if builder.try_run(cmd).is_err() {
|
||||
let mut failures = builder.delayed_failures.borrow_mut();
|
||||
failures.push(format!("{:?}", cmd));
|
||||
- return Err(e);
|
||||
+ return false;
|
||||
}
|
||||
} else {
|
||||
builder.run(cmd);
|
||||
}
|
||||
- Ok(())
|
||||
+ true
|
||||
}
|
||||
|
||||
fn try_run_quiet(builder: &Builder<'_>, cmd: &mut Command) -> bool {
|
||||
@@ -187,8 +187,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
try_run(
|
||||
builder,
|
||||
builder.tool_cmd(Tool::Linkchecker).arg(builder.out.join(host.triple).join("doc")),
|
||||
- )
|
||||
- .unwrap();
|
||||
+ );
|
||||
}
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
@@ -241,8 +240,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
builder.default_doc(&[]);
|
||||
builder.ensure(crate::doc::Rustc::new(builder.top_stage, self.target, builder));
|
||||
|
||||
- try_run(builder, builder.tool_cmd(Tool::HtmlChecker).arg(builder.doc_out(self.target)))
|
||||
- .unwrap();
|
||||
+ try_run(builder, builder.tool_cmd(Tool::HtmlChecker).arg(builder.doc_out(self.target)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,8 +286,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
.args(builder.config.test_args())
|
||||
.env("RUSTC", builder.rustc(compiler))
|
||||
.env("RUSTDOC", builder.rustdoc(compiler)),
|
||||
- )
|
||||
- .unwrap();
|
||||
+ );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -855,7 +852,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
util::lld_flag_no_threads(self.compiler.host.contains("windows")),
|
||||
);
|
||||
}
|
||||
- try_run(builder, &mut cmd).unwrap();
|
||||
+ try_run(builder, &mut cmd);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1106,7 +1103,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
}
|
||||
|
||||
builder.info("tidy check");
|
||||
- try_run(builder, &mut cmd).unwrap();
|
||||
+ try_run(builder, &mut cmd);
|
||||
|
||||
builder.ensure(ExpandYamlAnchors);
|
||||
|
||||
@@ -1154,8 +1151,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
try_run(
|
||||
builder,
|
||||
&mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("check").arg(&builder.src),
|
||||
- )
|
||||
- .unwrap();
|
||||
+ );
|
||||
}
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
@@ -1948,7 +1944,7 @@ fn run_ext_doc(self, builder: &Builder<'_>) {
|
||||
compiler.host,
|
||||
);
|
||||
let _time = util::timeit(&builder);
|
||||
- let toolstate = if try_run(builder, &mut rustbook_cmd).is_ok() {
|
||||
+ let toolstate = if try_run(builder, &mut rustbook_cmd) {
|
||||
ToolState::TestPass
|
||||
} else {
|
||||
ToolState::TestFail
|
||||
@@ -2106,7 +2102,7 @@ fn markdown_test(builder: &Builder<'_>, compiler: Compiler, markdown: &Path) ->
|
||||
cmd.arg("--test-args").arg(test_args);
|
||||
|
||||
if builder.config.verbose_tests {
|
||||
- try_run(builder, &mut cmd).is_ok()
|
||||
+ try_run(builder, &mut cmd)
|
||||
} else {
|
||||
try_run_quiet(builder, &mut cmd)
|
||||
}
|
||||
@@ -2134,7 +2130,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
|
||||
let src = builder.src.join(relative_path);
|
||||
let mut rustbook_cmd = builder.tool_cmd(Tool::Rustbook);
|
||||
- let toolstate = if try_run(builder, rustbook_cmd.arg("linkcheck").arg(&src)).is_ok() {
|
||||
+ let toolstate = if try_run(builder, rustbook_cmd.arg("linkcheck").arg(&src)) {
|
||||
ToolState::TestPass
|
||||
} else {
|
||||
ToolState::TestFail
|
||||
@@ -2684,7 +2680,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
.current_dir(builder.src.join("src/bootstrap/"));
|
||||
// NOTE: we intentionally don't pass test_args here because the args for unittest and cargo test are mutually incompatible.
|
||||
// Use `python -m unittest` manually if you want to pass arguments.
|
||||
- try_run(builder, &mut check_bootstrap).unwrap();
|
||||
+ try_run(builder, &mut check_bootstrap);
|
||||
|
||||
let host = builder.config.build;
|
||||
let compiler = builder.compiler(0, host);
|
||||
@@ -2756,7 +2752,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
}
|
||||
|
||||
builder.info("platform support check");
|
||||
- try_run(builder, &mut cargo.into()).unwrap();
|
||||
+ try_run(builder, &mut cargo.into());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2836,7 +2832,7 @@ fn run(self, builder: &Builder<'_>) {
|
||||
cmd.env("CARGO", &builder.initial_cargo);
|
||||
cmd.env("RUSTC", &builder.initial_rustc);
|
||||
cmd.env("TMP_DIR", &tmpdir);
|
||||
- try_run(builder, &mut cmd).unwrap();
|
||||
+ try_run(builder, &mut cmd);
|
||||
}
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,21 +1,19 @@
|
||||
From ab9c5148956c2b7d177cc94533370d6a01a8d15f Mon Sep 17 00:00:00 2001
|
||||
From 35187c7e6474d346eea3113c4ae34d26d6b18756 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Stone <jistone@redhat.com>
|
||||
Date: Tue, 22 Aug 2023 10:42:12 -0700
|
||||
Subject: [PATCH] Skip ExpandYamlAnchors when the config is missing
|
||||
|
||||
The dist-src tarball does not include `.github/` at all, so we can't
|
||||
check whether it needs to be regenerated.
|
||||
|
||||
(cherry picked from commit 35187c7e6474d346eea3113c4ae34d26d6b18756)
|
||||
---
|
||||
src/bootstrap/test.rs | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
|
||||
index eed7a584b603..d41850783c6d 100644
|
||||
index db3b7ffbea4e..d1018978f78c 100644
|
||||
--- a/src/bootstrap/test.rs
|
||||
+++ b/src/bootstrap/test.rs
|
||||
@@ -1150,6 +1150,11 @@ impl Step for ExpandYamlAnchors {
|
||||
@@ -1174,6 +1174,11 @@ impl Step for ExpandYamlAnchors {
|
||||
/// appropriate configuration for all our CI providers. This step ensures the tool was called
|
||||
/// by the user before committing CI changes.
|
||||
fn run(self, builder: &Builder<'_>) {
|
||||
@ -25,8 +23,8 @@ index eed7a584b603..d41850783c6d 100644
|
||||
+ return;
|
||||
+ }
|
||||
builder.info("Ensuring the YAML anchors in the GitHub Actions config were expanded");
|
||||
try_run(
|
||||
builder,
|
||||
builder.run_delaying_failure(
|
||||
&mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("check").arg(&builder.src),
|
||||
--
|
||||
2.41.0
|
||||
|
||||
|
118
rust.spec
118
rust.spec
@ -8,9 +8,9 @@
|
||||
# To bootstrap from scratch, set the channel and date from src/stage0.json
|
||||
# e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13
|
||||
# or nightly wants some beta-YYYY-MM-DD
|
||||
%global bootstrap_version 1.71.0
|
||||
%global bootstrap_channel 1.71.0
|
||||
%global bootstrap_date 2023-07-13
|
||||
%global bootstrap_version 1.72.0
|
||||
%global bootstrap_channel 1.72.0
|
||||
%global bootstrap_date 2023-08-24
|
||||
|
||||
# Only the specified arches will use bootstrap binaries.
|
||||
# NOTE: Those binaries used to be uploaded with every new release, but that was
|
||||
@ -26,9 +26,7 @@
|
||||
%if 0%{?fedora}
|
||||
%global mingw_targets i686-pc-windows-gnu x86_64-pc-windows-gnu
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||
%global wasm_targets wasm32-unknown-unknown wasm32-wasi
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 10
|
||||
%global extra_targets x86_64-unknown-none x86_64-unknown-uefi
|
||||
%endif
|
||||
@ -57,9 +55,9 @@
|
||||
%bcond_with llvm_static
|
||||
|
||||
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM
|
||||
# is insufficient. Rust currently requires LLVM 14.0+.
|
||||
%global min_llvm_version 14.0.0
|
||||
%global bundled_llvm_version 16.0.5
|
||||
# is insufficient. Rust currently requires LLVM 15.0+.
|
||||
%global min_llvm_version 15.0.0
|
||||
%global bundled_llvm_version 17.0.2
|
||||
%bcond_with bundled_llvm
|
||||
|
||||
# Requires stable libgit2 1.6, and not the next minor soname change.
|
||||
@ -82,22 +80,9 @@
|
||||
%bcond_with disabled_libssh2
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
%bcond_with curl_http2
|
||||
%else
|
||||
%bcond_without curl_http2
|
||||
%endif
|
||||
|
||||
# LLDB isn't available everywhere...
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
%bcond_with lldb
|
||||
%else
|
||||
%bcond_without lldb
|
||||
%endif
|
||||
|
||||
Name: rust
|
||||
Version: 1.72.1
|
||||
Release: 3%{?dist}
|
||||
Version: 1.73.0
|
||||
Release: 1%{?dist}
|
||||
Summary: The Rust Programming Language
|
||||
License: (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-DFS-2016)
|
||||
# ^ written as: (rust itself) and (bundled libraries)
|
||||
@ -129,21 +114,13 @@ Patch3: 0001-Let-environment-variables-override-some-default-CPUs.patch
|
||||
Patch4: 0001-bootstrap-allow-disabling-target-self-contained.patch
|
||||
Patch5: 0002-set-an-external-library-path-for-wasm32-wasi.patch
|
||||
|
||||
# Enable the profiler runtime for native hosts
|
||||
# https://github.com/rust-lang/rust/pull/114069
|
||||
Patch6: 0001-Allow-using-external-builds-of-the-compiler-rt-profi.patch
|
||||
|
||||
# Fix --no-fail-fast
|
||||
# https://github.com/rust-lang/rust/pull/113214
|
||||
Patch7: 0001-Don-t-fail-early-if-try_run-returns-an-error.patch
|
||||
|
||||
# The dist-src tarball doesn't include .github/
|
||||
# https://github.com/rust-lang/rust/pull/115109
|
||||
Patch8: 0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch
|
||||
Patch6: 0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch
|
||||
|
||||
# wasi: round up the size for aligned_alloc
|
||||
# https://github.com/rust-lang/rust/pull/115254
|
||||
Patch9: 0001-wasi-round-up-the-size-for-aligned_alloc.patch
|
||||
Patch7: 0001-wasi-round-up-the-size-for-aligned_alloc.patch
|
||||
|
||||
### RHEL-specific patches below ###
|
||||
|
||||
@ -151,11 +128,7 @@ Patch9: 0001-wasi-round-up-the-size-for-aligned_alloc.patch
|
||||
Source100: macros.rust-toolset
|
||||
|
||||
# Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949)
|
||||
Patch100: rustc-1.72.0-disable-libssh2.patch
|
||||
|
||||
# libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys
|
||||
# will try to build it statically -- instead we turn off the feature.
|
||||
Patch101: rustc-1.72.0-disable-http2.patch
|
||||
Patch100: rustc-1.73.0-disable-libssh2.patch
|
||||
|
||||
# Get the Rust triple for any arch.
|
||||
%{lua: function rust_triple(arch)
|
||||
@ -212,12 +185,7 @@ end}
|
||||
Provides: bundled(%{name}-bootstrap) = %{bootstrap_version}
|
||||
%else
|
||||
BuildRequires: cargo >= %{bootstrap_version}
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
BuildRequires: %{name} >= %{bootstrap_version}
|
||||
BuildConflicts: %{name} > %{version}
|
||||
%else
|
||||
BuildRequires: (%{name} >= %{bootstrap_version} with %{name} <= %{version})
|
||||
%endif
|
||||
%global local_rust_root %{_prefix}
|
||||
%endif
|
||||
|
||||
@ -256,10 +224,6 @@ BuildRequires: cmake >= 2.8.11
|
||||
%if 0%{?epel} == 7
|
||||
%global llvm llvm14
|
||||
%endif
|
||||
# not ready for llvm-17 yet...
|
||||
%if 0%{?fedora} >= 39 || 0%{?rhel} >= 10
|
||||
%global llvm llvm16
|
||||
%endif
|
||||
%if %defined llvm
|
||||
%global llvm_root %{_libdir}/%{llvm}
|
||||
%else
|
||||
@ -319,14 +283,7 @@ BuildRequires: %{devtoolset_name}-gcc-c++
|
||||
# While we don't want to encourage dynamic linking to Rust shared libraries, as
|
||||
# there's no stable ABI, we still need the unallocated metadata (.rustc) to
|
||||
# support custom-derive plugins like #[proc_macro_derive(Foo)].
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
# eu-strip is very eager by default, so we have to limit it to -g, only debugging symbols.
|
||||
%global _find_debuginfo_opts -g
|
||||
%undefine _include_minidebuginfo
|
||||
%else
|
||||
# Newer find-debuginfo.sh supports --keep-section, which is preferable. rhbz1465997
|
||||
%global _find_debuginfo_opts --keep-section .rustc
|
||||
%endif
|
||||
|
||||
%if %{without bundled_llvm}
|
||||
%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1}
|
||||
@ -364,10 +321,8 @@ find '%{buildroot}%{rustlibdir}'/wasm*/lib -type f -regex '.*\\.\\(a\\|rlib\\)'
|
||||
%{nil}
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||
# For profiler_builtins
|
||||
BuildRequires: compiler-rt
|
||||
%endif
|
||||
|
||||
# This component was removed as of Rust 1.69.0.
|
||||
# https://github.com/rust-lang/rust/pull/101841
|
||||
@ -473,8 +428,6 @@ This package includes the rust-gdb script, which allows easier debugging of Rust
|
||||
programs.
|
||||
|
||||
|
||||
%if %with lldb
|
||||
|
||||
%package lldb
|
||||
Summary: LLDB pretty printers for Rust
|
||||
BuildArch: noarch
|
||||
@ -486,8 +439,6 @@ Requires: %{name}-debugger-common = %{version}-%{release}
|
||||
This package includes the rust-lldb script, which allows easier debugging of Rust
|
||||
programs.
|
||||
|
||||
%endif
|
||||
|
||||
|
||||
%package doc
|
||||
Summary: Documentation for Rust
|
||||
@ -546,11 +497,7 @@ A tool for formatting Rust code according to style guidelines.
|
||||
Summary: Rust implementation of the Language Server Protocol
|
||||
|
||||
# The standard library sources are needed for most functionality.
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
Requires: %{name}-src
|
||||
%else
|
||||
Recommends: %{name}-src
|
||||
%endif
|
||||
|
||||
# RLS is no longer available as of Rust 1.65, but we're including the stub
|
||||
# binary that implements LSP just enough to recommend rust-analyzer.
|
||||
@ -581,11 +528,7 @@ A collection of lints to catch common mistakes and improve your Rust code.
|
||||
%package src
|
||||
Summary: Sources for the Rust standard library
|
||||
BuildArch: noarch
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
Requires: %{name}-std-static = %{version}-%{release}
|
||||
%else
|
||||
Recommends: %{name}-std-static = %{version}-%{release}
|
||||
%endif
|
||||
|
||||
%description src
|
||||
This package includes source files for the Rust standard library. It may be
|
||||
@ -637,18 +580,11 @@ rm -rf %{wasi_libc_dir}/dlmalloc/
|
||||
%endif
|
||||
%patch -P6 -p1
|
||||
%patch -P7 -p1
|
||||
%patch -P8 -p1
|
||||
%patch -P9 -p1
|
||||
|
||||
%if %with disabled_libssh2
|
||||
%patch -P100 -p1
|
||||
%endif
|
||||
|
||||
%if %without curl_http2
|
||||
%patch -P101 -p1
|
||||
rm -rf vendor/libnghttp2-sys*/
|
||||
%endif
|
||||
|
||||
# Use our explicit python3 first
|
||||
sed -i.try-python -e '/^try python3 /i try "%{__python3}" "$@"' ./configure
|
||||
|
||||
@ -740,13 +676,7 @@ end}
|
||||
%ifarch %{arm} %{ix86}
|
||||
# full debuginfo is exhausting memory; just do libstd for now
|
||||
# https://github.com/rust-lang/rust/issues/45854
|
||||
%if 0%{?rhel} && 0%{?rhel} < 8
|
||||
# Older rpmbuild didn't work with partial debuginfo coverage.
|
||||
%global debug_package %{nil}
|
||||
%define enable_debuginfo --debuginfo-level=0
|
||||
%else
|
||||
%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2
|
||||
%endif
|
||||
%else
|
||||
%define enable_debuginfo --debuginfo-level=2
|
||||
%endif
|
||||
@ -786,16 +716,14 @@ fi
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||
# Find the compiler-rt library for the Rust profiler_builtins crate.
|
||||
%if 0%{?clang_major_version} >= 17
|
||||
PROFILER='%{clang_resource_dir}/lib/%{_arch}-redhat-linux-gnu/libclang_rt.profile.a'
|
||||
%define profiler %{clang_resource_dir}/lib/%{_arch}-redhat-linux-gnu/libclang_rt.profile.a
|
||||
%else
|
||||
# The exact profiler path is version dependent..
|
||||
PROFILER=$(echo %{_libdir}/clang/*/lib/libclang_rt.profile-%{_arch}.a)
|
||||
%endif
|
||||
test -r "$PROFILER"
|
||||
%define profiler %(echo %{_libdir}/clang/*/lib/libclang_rt.profile-%{_arch}.a)
|
||||
%endif
|
||||
test -r "%{profiler}"
|
||||
|
||||
%configure --disable-option-checking \
|
||||
--libdir=%{common_libdir} \
|
||||
@ -805,7 +733,7 @@ test -r "$PROFILER"
|
||||
--set target.%{rust_triple}.cxx=%{__cxx} \
|
||||
--set target.%{rust_triple}.ar=%{__ar} \
|
||||
--set target.%{rust_triple}.ranlib=%{__ranlib} \
|
||||
${PROFILER:+--set target.%{rust_triple}.profiler="$PROFILER"} \
|
||||
--set target.%{rust_triple}.profiler="%{profiler}" \
|
||||
%{?mingw_target_config} \
|
||||
%{?wasm_target_config} \
|
||||
--python=%{__python3} \
|
||||
@ -916,11 +844,6 @@ mkdir -p %{buildroot}%{_datadir}/cargo/registry
|
||||
mkdir -p %{buildroot}%{_docdir}/cargo
|
||||
ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
|
||||
|
||||
%if %without lldb
|
||||
rm -f %{buildroot}%{_bindir}/rust-lldb
|
||||
rm -f %{buildroot}%{rustlibdir}/etc/lldb_*
|
||||
%endif
|
||||
|
||||
# We don't want Rust copies of LLVM tools (rust-lld, rust-llvm-dwp)
|
||||
rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll*
|
||||
|
||||
@ -944,11 +867,9 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll*
|
||||
LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH"
|
||||
%{buildroot}%{_bindir}/cargo run --verbose
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||
# Sanity-check that code-coverage builds and runs
|
||||
env RUSTFLAGS="-Cinstrument-coverage" %{buildroot}%{_bindir}/cargo run --verbose
|
||||
test -r default_*.profraw
|
||||
%endif
|
||||
|
||||
# Try a build sanity-check for other std-enabled targets
|
||||
for triple in %{?mingw_targets} %{?wasm_targets}; do
|
||||
@ -961,7 +882,7 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll*
|
||||
|
||||
# Bootstrap is excluded because it's not something we ship, and a lot of its
|
||||
# tests are geared toward the upstream CI environment.
|
||||
%{__python3} ./x.py test --no-fail-fast --exclude src/bootstrap || :
|
||||
%{__python3} ./x.py test --no-fail-fast --skip src/bootstrap || :
|
||||
rm -rf "./build/%{rust_triple}/test/"
|
||||
|
||||
%{__python3} ./x.py test --no-fail-fast cargo || :
|
||||
@ -1053,11 +974,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/"
|
||||
%exclude %{_bindir}/rust-gdbgui
|
||||
|
||||
|
||||
%if %with lldb
|
||||
%files lldb
|
||||
%{_bindir}/rust-lldb
|
||||
%{rustlibdir}/etc/lldb_*
|
||||
%endif
|
||||
|
||||
|
||||
%files doc
|
||||
@ -1074,7 +993,6 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/"
|
||||
%license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
|
||||
%doc src/tools/cargo/README.md
|
||||
%{_bindir}/cargo
|
||||
%{_libexecdir}/cargo*
|
||||
%{_mandir}/man1/cargo*.1*
|
||||
%{_sysconfdir}/bash_completion.d/cargo
|
||||
%{_datadir}/zsh/site-functions/_cargo
|
||||
@ -1115,6 +1033,10 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/"
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Oct 05 2023 Josh Stone <jistone@redhat.com> - 1.73.0-1
|
||||
- Update to 1.73.0.
|
||||
- Drop el7 conditionals from the spec.
|
||||
|
||||
* Fri Sep 29 2023 Josh Stone <jistone@redhat.com> - 1.72.1-3
|
||||
- Fix the profiler runtime with compiler-rt-17
|
||||
- Switch to unbundled wasi-libc on Fedora
|
||||
|
@ -1,92 +0,0 @@
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-08-21 11:00:15.341608892 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-08-21 11:00:46.074984901 -0700
|
||||
@@ -743,7 +743,6 @@
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
- "libnghttp2-sys",
|
||||
"libz-sys",
|
||||
"openssl-sys",
|
||||
"pkg-config",
|
||||
@@ -2011,16 +2010,6 @@
|
||||
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
|
||||
|
||||
[[package]]
|
||||
-name = "libnghttp2-sys"
|
||||
-version = "0.1.7+1.45.0"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
|
||||
-dependencies = [
|
||||
- "cc",
|
||||
- "libc",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-08-21 11:00:15.341608892 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-08-21 11:00:15.342608871 -0700
|
||||
@@ -118,7 +118,7 @@
|
||||
cargo-util.workspace = true
|
||||
clap = { workspace = true, features = ["wrap_help"] }
|
||||
crates-io.workspace = true
|
||||
-curl = { workspace = true, features = ["http2"] }
|
||||
+curl = { workspace = true, features = [] }
|
||||
curl-sys.workspace = true
|
||||
env_logger.workspace = true
|
||||
filetime.workspace = true
|
||||
--- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2023-08-17 20:58:39.000000000 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2023-08-21 11:00:15.343608851 -0700
|
||||
@@ -408,16 +408,9 @@
|
||||
sources: SourceMap<'cfg>,
|
||||
config: &'cfg Config,
|
||||
) -> CargoResult<PackageSet<'cfg>> {
|
||||
- // We've enabled the `http2` feature of `curl` in Cargo, so treat
|
||||
- // failures here as fatal as it would indicate a build-time problem.
|
||||
- let mut multi = Multi::new();
|
||||
- let multiplexing = config.http_config()?.multiplexing.unwrap_or(true);
|
||||
- multi
|
||||
- .pipelining(false, multiplexing)
|
||||
- .with_context(|| "failed to enable multiplexing/pipelining in curl")?;
|
||||
-
|
||||
- // let's not flood crates.io with connections
|
||||
- multi.set_max_host_connections(2)?;
|
||||
+ // Multiplexing is disabled because the system libcurl doesn't support it.
|
||||
+ let multi = Multi::new();
|
||||
+ let multiplexing = false;
|
||||
|
||||
Ok(PackageSet {
|
||||
packages: package_ids
|
||||
--- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2023-08-17 20:58:39.000000000 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2023-08-21 11:00:15.343608851 -0700
|
||||
@@ -250,16 +250,8 @@
|
||||
}
|
||||
self.fetch_started = true;
|
||||
|
||||
- // We've enabled the `http2` feature of `curl` in Cargo, so treat
|
||||
- // failures here as fatal as it would indicate a build-time problem.
|
||||
- self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true);
|
||||
-
|
||||
- self.multi
|
||||
- .pipelining(false, self.multiplexing)
|
||||
- .with_context(|| "failed to enable multiplexing/pipelining in curl")?;
|
||||
-
|
||||
- // let's not flood the server with connections
|
||||
- self.multi.set_max_host_connections(2)?;
|
||||
+ // Multiplexing is disabled because the system libcurl doesn't support it.
|
||||
+ self.multiplexing = false;
|
||||
|
||||
if !self.quiet {
|
||||
self.config
|
||||
--- rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs.orig 2023-08-21 11:00:15.343608851 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs 2023-08-21 11:02:01.969443986 -0700
|
||||
@@ -27,7 +27,7 @@
|
||||
macro_rules! try_old_curl {
|
||||
($e:expr, $msg:expr) => {
|
||||
let result = $e;
|
||||
- if cfg!(target_os = "macos") {
|
||||
+ if cfg!(any(target_os = "linux", target_os = "macos")) {
|
||||
if let Err(e) = result {
|
||||
::log::warn!("ignoring libcurl {} error: {}", $msg, e);
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-08-17 20:58:39.000000000 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-08-21 10:52:50.520622927 -0700
|
||||
@@ -1999,7 +1999,6 @@
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-09-01 10:51:15.000000000 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-09-05 16:59:08.837345133 -0700
|
||||
@@ -1973,7 +1973,6 @@
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
@ -8,7 +8,7 @@
|
||||
"libz-sys",
|
||||
"openssl-sys",
|
||||
"pkg-config",
|
||||
@@ -2022,20 +2021,6 @@
|
||||
@@ -2006,20 +2005,6 @@
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -29,14 +29,14 @@
|
||||
name = "libz-sys"
|
||||
version = "1.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-08-21 10:49:34.852578202 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-08-21 10:52:11.858404449 -0700
|
||||
@@ -31,7 +31,7 @@
|
||||
filetime = "0.2.9"
|
||||
flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] }
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-09-05 16:59:08.837345133 -0700
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-09-05 17:00:00.828461993 -0700
|
||||
@@ -37,7 +37,7 @@
|
||||
filetime = "0.2.21"
|
||||
flate2 = { version = "1.0.26", default-features = false, features = ["zlib"] }
|
||||
fwdansi = "1.1.0"
|
||||
-git2 = "0.17.1"
|
||||
+git2 = { version = "0.17.1", default-features = false, features = ["https"] }
|
||||
-git2 = "0.17.2"
|
||||
+git2 = { version = "0.17.2", default-features = false, features = ["https"] }
|
||||
git2-curl = "0.18.0"
|
||||
gix = { version = "0.45.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree"] }
|
||||
gix-features-for-configuration-only = { version = "0.30.0", package = "gix-features", features = [ "parallel" ] }
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (rustc-1.72.1-src.tar.xz) = 08232b5bf36f82a995d67f3d03d5e35b7d8914d31fb4491d4c37b72a830bc438e9d18d9e138d398b1b6ae4aa09f7f8e1e9b68da6273ab74bdae4c6123586a21b
|
||||
SHA512 (rustc-1.73.0-src.tar.xz) = 75c59680a82cb9d076b9434744a1c65908524ef769293952f5d9c5779d9a9c6fa4d9aa0c7e7d6b7566a21a50a27cd6ae452b5283a4d4606b2fa1acc24dfd8e0c
|
||||
SHA512 (wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz) = 01e5cc3ebdab239f57816ff80f939fd87a5491a28951daf74b3310b118b4820c098ac9417771c9c6af55ca91d2cabe6498975ab9db4914aba754d87067cd1066
|
||||
|
Loading…
Reference in New Issue
Block a user