Update to 1.65.0.

rust-analyzer now obsoletes rls.
This commit is contained in:
Josh Stone 2022-11-03 10:40:06 -07:00
parent fbf19ab00e
commit f5bf4afaf1
9 changed files with 326 additions and 142 deletions

2
.gitignore vendored
View File

@ -405,3 +405,5 @@
/rustc-1.62.1-src.tar.xz /rustc-1.62.1-src.tar.xz
/rustc-1.63.0-src.tar.xz /rustc-1.63.0-src.tar.xz
/rustc-1.64.0-src.tar.xz /rustc-1.64.0-src.tar.xz
/rustc-1.65.0-src.tar.xz
/wasi-libc-wasi-sdk-16.tar.gz

View File

@ -0,0 +1,182 @@
From 92b0b20e4119241aaeabb4b91189a9fca8ff8b5d Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Fri, 14 Oct 2022 16:11:28 -0700
Subject: [PATCH] compiletest: set the dylib path when gathering target cfg
If the compiler is built with `rpath = false`, then it won't find its
own libraries unless the library search path is set. We already do that
while running the actual compiletests, but #100260 added another rustc
command for getting the target cfg.
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
thread 'main' panicked at 'error: failed to get cfg info from "[...]/build/x86_64-unknown-linux-gnu/stage1/bin/rustc"
--- stdout
--- stderr
[...]/build/x86_64-unknown-linux-gnu/stage1/bin/rustc: error while loading shared libraries: librustc_driver-a2a76dc626cd02d2.so: cannot open shared object file: No such file or directory
', src/tools/compiletest/src/common.rs:476:13
Now the library path is set here as well, so it works without rpath.
(cherry picked from commit 97c3608326d123f5462e3504409a3a069611c0fb)
---
src/tools/compiletest/src/common.rs | 17 ++++++++++-------
src/tools/compiletest/src/runtest.rs | 27 +++------------------------
src/tools/compiletest/src/util.rs | 23 +++++++++++++++++++++++
3 files changed, 36 insertions(+), 31 deletions(-)
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
index 64df76e27720..53b64e7d1fc3 100644
--- a/src/tools/compiletest/src/common.rs
+++ b/src/tools/compiletest/src/common.rs
@@ -2,11 +2,12 @@
use std::ffi::OsString;
use std::fmt;
+use std::iter;
use std::path::{Path, PathBuf};
use std::process::Command;
use std::str::FromStr;
-use crate::util::PathBufExt;
+use crate::util::{add_dylib_path, PathBufExt};
use lazycell::LazyCell;
use test::ColorConfig;
@@ -389,7 +390,7 @@ pub fn run_enabled(&self) -> bool {
}
fn target_cfg(&self) -> &TargetCfg {
- self.target_cfg.borrow_with(|| TargetCfg::new(&self.rustc_path, &self.target))
+ self.target_cfg.borrow_with(|| TargetCfg::new(self))
}
pub fn matches_arch(&self, arch: &str) -> bool {
@@ -455,20 +456,22 @@ pub enum Endian {
}
impl TargetCfg {
- fn new(rustc_path: &Path, target: &str) -> TargetCfg {
- let output = match Command::new(rustc_path)
+ fn new(config: &Config) -> TargetCfg {
+ let mut command = Command::new(&config.rustc_path);
+ add_dylib_path(&mut command, iter::once(&config.compile_lib_path));
+ let output = match command
.arg("--print=cfg")
.arg("--target")
- .arg(target)
+ .arg(&config.target)
.output()
{
Ok(output) => output,
- Err(e) => panic!("error: failed to get cfg info from {:?}: {e}", rustc_path),
+ Err(e) => panic!("error: failed to get cfg info from {:?}: {e}", config.rustc_path),
};
if !output.status.success() {
panic!(
"error: failed to get cfg info from {:?}\n--- stdout\n{}\n--- stderr\n{}",
- rustc_path,
+ config.rustc_path,
String::from_utf8(output.stdout).unwrap(),
String::from_utf8(output.stderr).unwrap(),
);
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs
index 8f289876f730..eb467170249d 100644
--- a/src/tools/compiletest/src/runtest.rs
+++ b/src/tools/compiletest/src/runtest.rs
@@ -13,7 +13,7 @@
use crate::header::TestProps;
use crate::json;
use crate::read2::read2_abbreviated;
-use crate::util::{logv, PathBufExt};
+use crate::util::{add_dylib_path, dylib_env_var, logv, PathBufExt};
use crate::ColorConfig;
use regex::{Captures, Regex};
use rustfix::{apply_suggestions, get_suggestions_from_json, Filter};
@@ -26,6 +26,7 @@
use std::hash::{Hash, Hasher};
use std::io::prelude::*;
use std::io::{self, BufReader};
+use std::iter;
use std::path::{Path, PathBuf};
use std::process::{Child, Command, ExitStatus, Output, Stdio};
use std::str;
@@ -72,19 +73,6 @@ fn disable_error_reporting<F: FnOnce() -> R, R>(f: F) -> R {
f()
}
-/// The name of the environment variable that holds dynamic library locations.
-pub fn dylib_env_var() -> &'static str {
- if cfg!(windows) {
- "PATH"
- } else if cfg!(target_os = "macos") {
- "DYLD_LIBRARY_PATH"
- } else if cfg!(target_os = "haiku") {
- "LIBRARY_PATH"
- } else {
- "LD_LIBRARY_PATH"
- }
-}
-
/// The platform-specific library name
pub fn get_lib_name(lib: &str, dylib: bool) -> String {
// In some casess (e.g. MUSL), we build a static
@@ -1826,16 +1814,7 @@ fn compose_and_run(
// Need to be sure to put both the lib_path and the aux path in the dylib
// search path for the child.
- let mut path =
- env::split_paths(&env::var_os(dylib_env_var()).unwrap_or_default()).collect::<Vec<_>>();
- if let Some(p) = aux_path {
- path.insert(0, PathBuf::from(p))
- }
- path.insert(0, PathBuf::from(lib_path));
-
- // Add the new dylib search path var
- let newpath = env::join_paths(&path).unwrap();
- command.env(dylib_env_var(), newpath);
+ add_dylib_path(&mut command, iter::once(lib_path).chain(aux_path));
let mut child = disable_error_reporting(|| command.spawn())
.unwrap_or_else(|_| panic!("failed to exec `{:?}`", &command));
diff --git a/src/tools/compiletest/src/util.rs b/src/tools/compiletest/src/util.rs
index 9d047b63c859..4b73be0fbb90 100644
--- a/src/tools/compiletest/src/util.rs
+++ b/src/tools/compiletest/src/util.rs
@@ -2,6 +2,7 @@
use std::env;
use std::ffi::OsStr;
use std::path::PathBuf;
+use std::process::Command;
use tracing::*;
@@ -105,3 +106,25 @@ fn with_extra_extension<S: AsRef<OsStr>>(&self, extension: S) -> PathBuf {
}
}
}
+
+/// The name of the environment variable that holds dynamic library locations.
+pub fn dylib_env_var() -> &'static str {
+ if cfg!(windows) {
+ "PATH"
+ } else if cfg!(target_os = "macos") {
+ "DYLD_LIBRARY_PATH"
+ } else if cfg!(target_os = "haiku") {
+ "LIBRARY_PATH"
+ } else {
+ "LD_LIBRARY_PATH"
+ }
+}
+
+/// Adds a list of lookup paths to `cmd`'s dynamic library lookup path.
+/// If the dylib_path_var is already set for this cmd, the old value will be overwritten!
+pub fn add_dylib_path(cmd: &mut Command, paths: impl Iterator<Item = impl Into<PathBuf>>) {
+ let path_env = env::var_os(dylib_env_var());
+ let old_paths = path_env.as_ref().map(env::split_paths);
+ let new_paths = paths.map(Into::into).chain(old_paths.into_iter().flatten());
+ cmd.env(dylib_env_var(), env::join_paths(new_paths).unwrap());
+}
--
2.37.3

View File

@ -1,27 +1,26 @@
From 2946828fcb8e2e68a16839dfcf4319bf119f8acd Mon Sep 17 00:00:00 2001 From a72666ed56ec5f1b6d254c7020cf86143edc6dbd Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com> From: Josh Stone <jistone@redhat.com>
Date: Tue, 20 Sep 2022 13:03:43 -0700 Date: Tue, 20 Sep 2022 13:03:43 -0700
Subject: [PATCH] rustc_transmute: fix big-endian discriminants Subject: [PATCH] rustc_transmute: fix big-endian discriminants
(cherry picked from commit a72666ed56ec5f1b6d254c7020cf86143edc6dbd)
--- ---
compiler/rustc_transmute/src/layout/tree.rs | 22 +++++++++++++++------ compiler/rustc_transmute/src/layout/tree.rs | 22 +++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-) 1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/compiler/rustc_transmute/src/layout/tree.rs b/compiler/rustc_transmute/src/layout/tree.rs diff --git a/compiler/rustc_transmute/src/layout/tree.rs b/compiler/rustc_transmute/src/layout/tree.rs
index 70b3ba02b05b..e4fcde35ed37 100644 index 211c813b8001..acd4fa63d782 100644
--- a/compiler/rustc_transmute/src/layout/tree.rs --- a/compiler/rustc_transmute/src/layout/tree.rs
+++ b/compiler/rustc_transmute/src/layout/tree.rs +++ b/compiler/rustc_transmute/src/layout/tree.rs
@@ -402,7 +402,7 @@ fn from_repr_c_variant( @@ -404,7 +404,7 @@ fn from_repr_c_variant(
.unwrap(); .unwrap();
tracing::trace!(?discr_layout, "computed discriminant layout"); trace!(?discr_layout, "computed discriminant layout");
variant_layout = variant_layout.extend(discr_layout).unwrap().0; variant_layout = variant_layout.extend(discr_layout).unwrap().0;
- tree = tree.then(Self::from_disr(discr, tcx, layout_summary.discriminant_size)); - tree = tree.then(Self::from_disr(discr, tcx, layout_summary.discriminant_size));
+ tree = tree.then(Self::from_discr(discr, tcx, layout_summary.discriminant_size)); + tree = tree.then(Self::from_discr(discr, tcx, layout_summary.discriminant_size));
} }
// Next come fields. // Next come fields.
@@ -442,11 +442,21 @@ fn from_repr_c_variant( @@ -444,11 +444,21 @@ fn from_repr_c_variant(
Ok(tree) Ok(tree)
} }

146
rust.spec
View File

@ -8,9 +8,9 @@
# To bootstrap from scratch, set the channel and date from src/stage0.json # 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 # e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13
# or nightly wants some beta-YYYY-MM-DD # or nightly wants some beta-YYYY-MM-DD
%global bootstrap_version 1.63.0 %global bootstrap_version 1.64.0
%global bootstrap_channel 1.63.0 %global bootstrap_channel 1.64.0
%global bootstrap_date 2022-08-11 %global bootstrap_date 2022-09-22
# Only the specified arches will use bootstrap binaries. # Only the specified arches will use bootstrap binaries.
# NOTE: Those binaries used to be uploaded with every new release, but that was # NOTE: Those binaries used to be uploaded with every new release, but that was
@ -35,9 +35,9 @@
# src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh # src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh
# (updated per https://github.com/rust-lang/rust/pull/96907) # (updated per https://github.com/rust-lang/rust/pull/96907)
%global wasi_libc_url https://github.com/WebAssembly/wasi-libc %global wasi_libc_url https://github.com/WebAssembly/wasi-libc
%global wasi_libc_commit 9886d3d6200fcc3726329966860fc058707406cd %global wasi_libc_ref wasi-sdk-16
%global wasi_libc_name wasi-libc-%{wasi_libc_commit} %global wasi_libc_name wasi-libc-%{wasi_libc_ref}
%global wasi_libc_source %{wasi_libc_url}/archive/%{wasi_libc_commit}/%{wasi_libc_name}.tar.gz %global wasi_libc_source %{wasi_libc_url}/archive/%{wasi_libc_ref}/%{wasi_libc_name}.tar.gz
%global wasi_libc_dir %{_builddir}/%{wasi_libc_name} %global wasi_libc_dir %{_builddir}/%{wasi_libc_name}
# Using llvm-static may be helpful as an opt-in, e.g. to aid LLVM rebases. # Using llvm-static may be helpful as an opt-in, e.g. to aid LLVM rebases.
@ -45,15 +45,15 @@
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM # We can also choose to just use Rust's bundled LLVM, in case the system LLVM
# is insufficient. Rust currently requires LLVM 12.0+. # is insufficient. Rust currently requires LLVM 12.0+.
%global min_llvm_version 12.0.0 %global min_llvm_version 13.0.0
%global bundled_llvm_version 14.0.6 %global bundled_llvm_version 15.0.0
%bcond_with bundled_llvm %bcond_with bundled_llvm
# Requires stable libgit2 1.4, and not the next minor soname change. # Requires stable libgit2 1.5, and not the next minor soname change.
# This needs to be consistent with the bindings in vendor/libgit2-sys. # This needs to be consistent with the bindings in vendor/libgit2-sys.
%global min_libgit2_version 1.4.0 %global min_libgit2_version 1.5.0
%global next_libgit2_version 1.5.0~ %global next_libgit2_version 1.6.0~
%global bundled_libgit2_version 1.4.2 %global bundled_libgit2_version 1.5.0
%if 0%{?fedora} >= 99 %if 0%{?fedora} >= 99
%bcond_with bundled_libgit2 %bcond_with bundled_libgit2
%else %else
@ -83,7 +83,7 @@
%endif %endif
Name: rust Name: rust
Version: 1.64.0 Version: 1.65.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: The Rust Programming Language Summary: The Rust Programming Language
License: (ASL 2.0 or MIT) and (BSD and MIT) License: (ASL 2.0 or MIT) and (BSD and MIT)
@ -109,21 +109,24 @@ Patch2: rustc-1.61.0-rust-gdb-substitute-path.patch
# https://github.com/rust-lang/rust/pull/102076 # https://github.com/rust-lang/rust/pull/102076
Patch3: 0001-rustc_transmute-fix-big-endian-discriminants.patch Patch3: 0001-rustc_transmute-fix-big-endian-discriminants.patch
# https://github.com/rust-lang/rust/pull/103072
Patch4: 0001-compiletest-set-the-dylib-path-when-gathering-target.patch
### RHEL-specific patches below ### ### RHEL-specific patches below ###
# Simple rpm macros for rust-toolset (as opposed to full rust-packaging) # Simple rpm macros for rust-toolset (as opposed to full rust-packaging)
Source100: macros.rust-toolset Source100: macros.rust-toolset
# Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949)
Patch100: rustc-1.59.0-disable-libssh2.patch Patch100: rustc-1.65.0-disable-libssh2.patch
# libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys # 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. # will try to build it statically -- instead we turn off the feature.
Patch101: rustc-1.63.0-disable-http2.patch Patch101: rustc-1.65.0-disable-http2.patch
# kernel rh1410097 causes too-small stacks for PIE. # kernel rh1410097 causes too-small stacks for PIE.
# (affects RHEL6 kernels when building for RHEL7) # (affects RHEL6 kernels when building for RHEL7)
Patch102: rustc-1.64.0-no-default-pie.patch Patch102: rustc-1.65.0-no-default-pie.patch
# Get the Rust triple for any arch. # Get the Rust triple for any arch.
@ -440,6 +443,12 @@ Summary: Documentation for Rust
# Koji will fail the build in rpmdiff if two architectures build a noarch # Koji will fail the build in rpmdiff if two architectures build a noarch
# subpackage differently, so instead we have to keep its arch. # subpackage differently, so instead we have to keep its arch.
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
# We used to keep a shim cargo-doc package, but now that's merged too.
Obsoletes: cargo-doc < 1.65.0~
Provides: cargo-doc = %{version}-%{release}
%description doc %description doc
This package includes HTML documentation for the Rust programming language and This package includes HTML documentation for the Rust programming language and
its standard library. its standard library.
@ -465,17 +474,6 @@ Cargo is a tool that allows Rust projects to declare their various dependencies
and ensure that you'll always get a repeatable build. and ensure that you'll always get a repeatable build.
%package -n cargo-doc
Summary: Documentation for Cargo
BuildArch: noarch
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
Requires: %{name}-doc = %{version}-%{release}
%description -n cargo-doc
This package includes HTML documentation for Cargo.
%package -n rustfmt %package -n rustfmt
Summary: Tool to find and fix Rust formatting issues Summary: Tool to find and fix Rust formatting issues
Requires: cargo Requires: cargo
@ -488,29 +486,22 @@ Provides: rustfmt-preview = %{version}-%{release}
A tool for formatting Rust code according to style guidelines. A tool for formatting Rust code according to style guidelines.
%package -n rls
Summary: Rust Language Server for IDE integration (deprecated)
%if %with bundled_libgit2
Provides: bundled(libgit2) = %{bundled_libgit2_version}
%endif
Requires: %{name}-analysis
# /usr/bin/rls is dynamically linked against internal rustc libs
Requires: %{name}%{?_isa} = %{version}-%{release}
# The component/package was rls-preview until Rust 1.31.
Obsoletes: rls-preview < 1.31.6
Provides: rls-preview = %{version}-%{release}
%description -n rls
The Rust Language Server provides a server that runs in the background,
providing IDEs, editors, and other tools with information about Rust programs.
RLS is being deprecated in favor of rust-analyzer, and may be removed in the future.
https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html
%package analyzer %package analyzer
Summary: Rust implementation of the Language Server Protocol 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.
Obsoletes: rls < 1.65.0~
# The component/package was rls-preview until Rust 1.31.
Obsoletes: rls-preview < 1.31.6
%description analyzer %description analyzer
rust-analyzer is an implementation of Language Server Protocol for the Rust rust-analyzer is an implementation of Language Server Protocol for the Rust
programming language. It provides features like completion and goto definition programming language. It provides features like completion and goto definition
@ -534,6 +525,11 @@ A collection of lints to catch common mistakes and improve your Rust code.
%package src %package src
Summary: Sources for the Rust standard library Summary: Sources for the Rust standard library
BuildArch: noarch BuildArch: noarch
%if 0%{?rhel} && 0%{?rhel} < 8
Requires: %{name}-std-static = %{version}-%{release}
%else
Supplements: %{name}-std-static = %{version}-%{release}
%endif
%description src %description src
This package includes source files for the Rust standard library. It may be This package includes source files for the Rust standard library. It may be
@ -542,7 +538,11 @@ useful as a reference for code completion tools in various editors.
%package analysis %package analysis
Summary: Compiler analysis data for the Rust standard library Summary: Compiler analysis data for the Rust standard library
%if 0%{?rhel} && 0%{?rhel} < 8
Requires: %{name}-std-static%{?_isa} = %{version}-%{release} Requires: %{name}-std-static%{?_isa} = %{version}-%{release}
%else
Supplements: %{name}-std-static%{?_isa} = %{version}-%{release}
%endif
%description analysis %description analysis
This package contains analysis data files produced with rustc's -Zsave-analysis This package contains analysis data files produced with rustc's -Zsave-analysis
@ -587,6 +587,7 @@ test -f '%{local_rust_root}/bin/rustc'
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1
%if %with disabled_libssh2 %if %with disabled_libssh2
%patch100 -p1 %patch100 -p1
@ -671,7 +672,7 @@ find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+'
%build %build
%{export_rust_env} %{export_rust_env}
%ifarch %{arm} %{ix86} s390x %ifarch %{arm} %{ix86}
# full debuginfo is exhausting memory; just do libstd for now # full debuginfo is exhausting memory; just do libstd for now
# https://github.com/rust-lang/rust/issues/45854 # https://github.com/rust-lang/rust/issues/45854
%if 0%{?rhel} && 0%{?rhel} < 8 %if 0%{?rhel} && 0%{?rhel} < 8
@ -748,6 +749,10 @@ end}
--disable-rpath \ --disable-rpath \
%{enable_debuginfo} \ %{enable_debuginfo} \
--set rust.codegen-units-std=1 \ --set rust.codegen-units-std=1 \
--set build.build-stage=2 \
--set build.doc-stage=2 \
--set build.install-stage=2 \
--set build.test-stage=2 \
--enable-extended \ --enable-extended \
--tools=analysis,cargo,clippy,rls,rust-analyzer,rustfmt,src \ --tools=analysis,cargo,clippy,rls,rust-analyzer,rustfmt,src \
--enable-vendor \ --enable-vendor \
@ -756,11 +761,11 @@ end}
--release-channel=%{channel} \ --release-channel=%{channel} \
--release-description="%{?fedora:Fedora }%{?rhel:Red Hat }%{version}-%{release}" --release-description="%{?fedora:Fedora }%{?rhel:Red Hat }%{version}-%{release}"
%{__python3} ./x.py build -j "$ncpus" --stage 2 %{__python3} ./x.py build -j "$ncpus"
%{__python3} ./x.py doc --stage 2 %{__python3} ./x.py doc
for triple in %{?mingw_targets} %{?wasm_targets}; do for triple in %{?mingw_targets} %{?wasm_targets}; do
%{__python3} ./x.py build --stage 2 --target=$triple std %{__python3} ./x.py build --target=$triple std
done done
%install %install
@ -772,6 +777,9 @@ for triple in %{?mingw_targets} %{?wasm_targets}; do
DESTDIR=%{buildroot} %{__python3} ./x.py install --target=$triple std DESTDIR=%{buildroot} %{__python3} ./x.py install --target=$triple std
done done
# The rls stub doesn't have an install target, but we can just copy it.
%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls
# These are transient files used by x.py dist and install # These are transient files used by x.py dist and install
rm -rf ./build/dist/ ./build/tmp/ rm -rf ./build/dist/ ./build/tmp/
@ -865,20 +873,17 @@ done
# The results are not stable on koji, so mask errors and just log it. # The results are not stable on koji, so mask errors and just log it.
# Some of the larger test artifacts are manually cleaned to save space. # Some of the larger test artifacts are manually cleaned to save space.
%{__python3} ./x.py test --no-fail-fast --stage 2 || : %{__python3} ./x.py test --no-fail-fast || :
rm -rf "./build/%{rust_triple}/test/" rm -rf "./build/%{rust_triple}/test/"
%{__python3} ./x.py test --no-fail-fast --stage 2 cargo || : %{__python3} ./x.py test --no-fail-fast cargo || :
rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/"
%{__python3} ./x.py test --no-fail-fast --stage 2 clippy || : %{__python3} ./x.py test --no-fail-fast clippy || :
env RLS_TEST_WAIT_FOR_AGES=1 \ %{__python3} ./x.py test --no-fail-fast rust-analyzer || :
%{__python3} ./x.py test --no-fail-fast --stage 2 rls || :
%{__python3} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : %{__python3} ./x.py test --no-fail-fast rustfmt || :
%{__python3} ./x.py test --no-fail-fast --stage 2 rustfmt || :
%ldconfig_scriptlets %ldconfig_scriptlets
@ -992,10 +997,14 @@ end}
%{_docdir}/%{name}/html/*.woff2 %{_docdir}/%{name}/html/*.woff2
%license %{_docdir}/%{name}/html/*.txt %license %{_docdir}/%{name}/html/*.txt
%license %{_docdir}/%{name}/html/*.md %license %{_docdir}/%{name}/html/*.md
# former cargo-doc
%docdir %{_docdir}/cargo
%dir %{_docdir}/cargo
%{_docdir}/cargo/html
%files -n cargo %files -n cargo
%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY %license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
%doc src/tools/cargo/README.md %doc src/tools/cargo/README.md
%{_bindir}/cargo %{_bindir}/cargo
%{_libexecdir}/cargo* %{_libexecdir}/cargo*
@ -1006,12 +1015,6 @@ end}
%dir %{_datadir}/cargo/registry %dir %{_datadir}/cargo/registry
%files -n cargo-doc
%docdir %{_docdir}/cargo
%dir %{_docdir}/cargo
%{_docdir}/cargo/html
%files -n rustfmt %files -n rustfmt
%{_bindir}/rustfmt %{_bindir}/rustfmt
%{_bindir}/cargo-fmt %{_bindir}/cargo-fmt
@ -1019,13 +1022,8 @@ end}
%license src/tools/rustfmt/LICENSE-{APACHE,MIT} %license src/tools/rustfmt/LICENSE-{APACHE,MIT}
%files -n rls
%{_bindir}/rls
%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md}
%license src/tools/rls/LICENSE-{APACHE,MIT}
%files analyzer %files analyzer
%{_bindir}/rls
%{_bindir}/rust-analyzer %{_bindir}/rust-analyzer
%doc src/tools/rust-analyzer/README.md %doc src/tools/rust-analyzer/README.md
%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} %license src/tools/rust-analyzer/LICENSE-{APACHE,MIT}
@ -1054,6 +1052,10 @@ end}
%changelog %changelog
* Thu Nov 03 2022 Josh Stone <jistone@redhat.com> - 1.65.0-1
- Update to 1.65.0.
- rust-analyzer now obsoletes rls.
* Thu Sep 22 2022 Josh Stone <jistone@redhat.com> - 1.64.0-1 * Thu Sep 22 2022 Josh Stone <jistone@redhat.com> - 1.64.0-1
- Update to 1.64.0. - Update to 1.64.0.
- Add rust-analyzer. - Add rust-analyzer.

View File

@ -1,42 +0,0 @@
--- rustc-1.59.0-src/Cargo.lock.orig 2022-02-21 18:48:37.000000000 -0800
+++ rustc-1.59.0-src/Cargo.lock 2022-02-22 10:16:10.381962862 -0800
@@ -1935,7 +1935,6 @@
dependencies = [
"cc",
"libc",
- "libssh2-sys",
"libz-sys",
"openssl-sys",
"pkg-config",
@@ -1968,20 +1967,6 @@
]
[[package]]
-name = "libssh2-sys"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
name = "libz-sys"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
--- rustc-1.59.0-src/vendor/git2/Cargo.toml.orig 2022-02-21 20:14:37.000000000 -0800
+++ rustc-1.59.0-src/vendor/git2/Cargo.toml 2022-02-22 10:12:23.021772490 -0800
@@ -51,7 +51,7 @@
version = "0.1.39"
[features]
-default = ["ssh", "https", "ssh_key_from_memory"]
+default = ["https"]
https = ["libgit2-sys/https", "openssl-sys", "openssl-probe"]
ssh = ["libgit2-sys/ssh"]
ssh_key_from_memory = ["libgit2-sys/ssh_key_from_memory"]

View File

@ -1,6 +1,6 @@
--- rustc-1.63.0-src/Cargo.lock.orig 2022-08-10 12:25:16.512185135 -0700 --- rustc-beta-src/Cargo.lock.orig 2022-10-04 10:55:48.797517289 -0700
+++ rustc-1.63.0-src/Cargo.lock 2022-08-10 12:25:16.513185114 -0700 +++ rustc-beta-src/Cargo.lock 2022-10-04 10:55:48.799517248 -0700
@@ -1054,7 +1054,6 @@ @@ -1026,7 +1026,6 @@
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@ -8,7 +8,7 @@
"libz-sys", "libz-sys",
"openssl-sys", "openssl-sys",
"pkg-config", "pkg-config",
@@ -2160,16 +2159,6 @@ @@ -1993,16 +1992,6 @@
checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
[[package]] [[package]]
@ -25,19 +25,19 @@
name = "libz-sys" name = "libz-sys"
version = "1.1.3" version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
--- rustc-1.63.0-src/src/tools/cargo/Cargo.toml.orig 2022-08-10 12:25:16.514185093 -0700 --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2022-10-04 10:55:48.799517248 -0700
+++ rustc-1.63.0-src/src/tools/cargo/Cargo.toml 2022-08-10 12:25:51.441455282 -0700 +++ rustc-beta-src/src/tools/cargo/Cargo.toml 2022-10-04 11:00:55.057162743 -0700
@@ -22,7 +22,7 @@ @@ -21,7 +21,7 @@
cargo-platform = { path = "crates/cargo-platform", version = "0.1.2" }
cargo-util = { path = "crates/cargo-util", version = "0.2.1" } cargo-util = { path = "crates/cargo-util", version = "0.2.1" }
crates-io = { path = "crates/crates-io", version = "0.34.0" } crates-io = { path = "crates/crates-io", version = "0.34.0" }
crossbeam-utils = "0.8"
-curl = { version = "0.4.43", features = ["http2"] } -curl = { version = "0.4.43", features = ["http2"] }
+curl = { version = "0.4.43", features = [] } +curl = { version = "0.4.43", features = [] }
curl-sys = "0.4.55" curl-sys = "0.4.55"
env_logger = "0.9.0" env_logger = "0.9.0"
pretty_env_logger = { version = "0.4", optional = true } pretty_env_logger = { version = "0.4", optional = true }
--- rustc-1.63.0-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2022-08-08 15:47:35.000000000 -0700 --- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2022-09-24 10:23:17.000000000 -0700
+++ rustc-1.63.0-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2022-08-10 12:25:16.514185093 -0700 +++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2022-10-04 10:55:48.799517248 -0700
@@ -192,16 +192,8 @@ @@ -192,16 +192,8 @@
} }
self.fetch_started = true; self.fetch_started = true;
@ -57,8 +57,8 @@
self.config self.config
.shell() .shell()
--- rustc-1.63.0-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-08-08 15:47:35.000000000 -0700 --- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-09-24 10:23:17.000000000 -0700
+++ rustc-1.63.0-src/src/tools/cargo/src/cargo/core/package.rs 2022-08-10 12:25:16.514185093 -0700 +++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2022-10-04 10:55:48.800517227 -0700
@@ -403,16 +403,9 @@ @@ -403,16 +403,9 @@
sources: SourceMap<'cfg>, sources: SourceMap<'cfg>,
config: &'cfg Config, config: &'cfg Config,

View File

@ -0,0 +1,43 @@
--- rustc-beta-src/Cargo.lock.orig 2022-09-24 10:20:14.000000000 -0700
+++ rustc-beta-src/Cargo.lock 2022-10-04 10:26:35.490270607 -0700
@@ -1971,7 +1971,6 @@
dependencies = [
"cc",
"libc",
- "libssh2-sys",
"libz-sys",
"openssl-sys",
"pkg-config",
@@ -2004,20 +2003,6 @@
]
[[package]]
-name = "libssh2-sys"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
name = "libz-sys"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
--- rustc-beta-src/vendor/git2/Cargo.toml.orig 2022-10-04 10:26:35.490270607 -0700
+++ rustc-beta-src/vendor/git2/Cargo.toml 2022-10-04 10:28:14.002187686 -0700
@@ -58,9 +58,7 @@
[features]
default = [
- "ssh",
"https",
- "ssh_key_from_memory",
]
https = [
"libgit2-sys/https",

View File

@ -1,8 +1,6 @@
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs --- rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs.orig 2022-09-24 10:20:14.000000000 -0700
index 63207803e327..f5757760c409 100644 +++ rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs 2022-10-05 11:24:21.759564185 -0700
--- a/compiler/rustc_codegen_ssa/src/back/link.rs @@ -755,7 +755,7 @@
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -741,7 +741,7 @@ fn link_natively<'a>(
&& cmd.get_args().iter().any(|e| e.to_string_lossy() == "-no-pie") && cmd.get_args().iter().any(|e| e.to_string_lossy() == "-no-pie")
{ {
info!("linker output: {:?}", out); info!("linker output: {:?}", out);
@ -11,7 +9,7 @@ index 63207803e327..f5757760c409 100644
for arg in cmd.take_args() { for arg in cmd.take_args() {
if arg.to_string_lossy() != "-no-pie" { if arg.to_string_lossy() != "-no-pie" {
cmd.arg(arg); cmd.arg(arg);
@@ -760,7 +760,7 @@ fn link_natively<'a>( @@ -774,7 +774,7 @@
&& cmd.get_args().iter().any(|e| e.to_string_lossy() == "-static-pie") && cmd.get_args().iter().any(|e| e.to_string_lossy() == "-static-pie")
{ {
info!("linker output: {:?}", out); info!("linker output: {:?}", out);
@ -20,13 +18,13 @@ index 63207803e327..f5757760c409 100644
"Linker does not support -static-pie command line option. Retrying with -static instead." "Linker does not support -static-pie command line option. Retrying with -static instead."
); );
// Mirror `add_(pre,post)_link_objects` to replace CRT objects. // Mirror `add_(pre,post)_link_objects` to replace CRT objects.
@@ -1507,15 +1507,15 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -1520,15 +1520,15 @@
} }
fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind { fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind {
- let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) { - let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) {
+ // Only use PIE if explicitly specified. + // Only use PIE if explicitly specified.
+ #[cfg_attr(not(bootstrap), allow(rustc::bad_opt_access))] + #[allow(rustc::bad_opt_access)]
+ let explicit_pic = + let explicit_pic =
+ matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic | RelocModel::Pie)); + matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic | RelocModel::Pie));
+ let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) { + let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) {

View File

@ -1,2 +1,2 @@
SHA512 (rustc-1.64.0-src.tar.xz) = 919f40acd8c6eaaef399aa3248503bea19feb96697ab221aaede9ee789ce340b47cb899d1e0e41a31e5d7756653968a10d2faaa4aee83294c9f1243949b43516 SHA512 (rustc-1.65.0-src.tar.xz) = 3d0369ed3028209c4ecb9b9e7b5f5e3a20be8cc05199675df4f091d62a96c0734bc1dbd7630928fe162792392ec6d0daf9ceed10771531ce022200c7b631e3be
SHA512 (wasi-libc-9886d3d6200fcc3726329966860fc058707406cd.tar.gz) = 5b6af0f7133d31c2c068606737eff957126a3045e09c1e95bd2650e0c5637d4797d7036b9beb167829d38d58f6d4199852832f61b0c8836f05e945cd0cf68132 SHA512 (wasi-libc-wasi-sdk-16.tar.gz) = 4d3d12e233b2b3321e5287c0851a950d744208e05ed2c6d995dd2e7ff51452c7cfe62451589ed6d3ac58065f8cc87fc5c74a1853ed798e108662d1b0d3ad8a0e