Skip to content

Commit 8460ca8

Browse files
committed
Auto merge of rust-lang#109335 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum
[stable] 1.68.1 release This packages up a set of release notes, version bump, and backports of: * Don't eagerly convert principal to string rust-lang#108162 * Revert "enable ThinLTO for rustc on x86_64-pc-windows-msvc dist builds" rust-lang#109094 * Create dirs for build_triple rust-lang#109111 * Fix linker detection for clang with prefix rust-lang#109156 * ci: use apt install --download-only for solaris debs rust-lang#108951 The last of those is not yet stable-accepted but I expect it to be, we will drop it and rebuild artifacts if we don't actually approve it. r? `@Mark-Simulacrum`
2 parents 2c8cc34 + 51bdb0f commit 8460ca8

File tree

11 files changed

+46
-14
lines changed

11 files changed

+46
-14
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ jobs:
438438
os: windows-latest-xl
439439
- name: dist-x86_64-msvc
440440
env:
441-
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --host=x86_64-pc-windows-msvc --target=x86_64-pc-windows-msvc --enable-full-tools --enable-profiler --set rust.lto=thin"
441+
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --host=x86_64-pc-windows-msvc --target=x86_64-pc-windows-msvc --enable-full-tools --enable-profiler"
442442
SCRIPT: PGO_HOST=x86_64-pc-windows-msvc src/ci/pgo.sh python x.py dist bootstrap --include-default-paths
443443
DIST_REQUIRE_ALL_TOOLS: 1
444444
os: windows-latest-xl

RELEASES.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
Version 1.68.1 (2023-03-23)
2+
===========================
3+
4+
- [Fix miscompilation in produced Windows MSVC artifacts](https://github.com/rust-lang/rust/pull/109094)
5+
This was introduced by enabling ThinLTO for the distributed rustc which led
6+
to miscompilations in the resulting binary. Currently this is believed to be
7+
limited to the -Zdylib-lto flag used for rustc compilation, rather than a
8+
general bug in ThinLTO, so only rustc artifacts should be affected.
9+
- [Fix --enable-local-rust builds](https://github.com/rust-lang/rust/pull/109111/)
10+
- [Treat `$prefix-clang` as `clang` in linker detection code](https://github.com/rust-lang/rust/pull/109156)
11+
- [Fix panic in compiler code](https://github.com/rust-lang/rust/pull/108162)
12+
113
Version 1.68.0 (2023-03-09)
214
==========================
315

compiler/rustc_codegen_ssa/src/back/link.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -1237,15 +1237,17 @@ pub fn linker_and_flavor(sess: &Session) -> (PathBuf, LinkerFlavor) {
12371237
.and_then(|(lhs, rhs)| rhs.chars().all(char::is_numeric).then_some(lhs))
12381238
.unwrap_or(stem);
12391239

1240-
// GCC can have an optional target prefix.
1240+
// GCC/Clang can have an optional target prefix.
12411241
let flavor = if stem == "emcc" {
12421242
LinkerFlavor::EmCc
12431243
} else if stem == "gcc"
12441244
|| stem.ends_with("-gcc")
12451245
|| stem == "g++"
12461246
|| stem.ends_with("-g++")
12471247
|| stem == "clang"
1248+
|| stem.ends_with("-clang")
12481249
|| stem == "clang++"
1250+
|| stem.ends_with("-clang++")
12491251
{
12501252
LinkerFlavor::from_cli(LinkerFlavorCli::Gcc, &sess.target)
12511253
} else if stem == "wasm-ld" || stem.ends_with("-wasm-ld") {

compiler/rustc_lint/src/deref_into_dyn_supertrait.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ impl<'tcx> LateLintPass<'tcx> for DerefIntoDynSupertrait {
7878
});
7979
cx.emit_spanned_lint(DEREF_INTO_DYN_SUPERTRAIT, cx.tcx.def_span(item.owner_id.def_id), SupertraitAsDerefTarget {
8080
t,
81-
target_principal: target_principal.to_string(),
81+
target_principal,
8282
label,
8383
});
8484
}

compiler/rustc_lint/src/lints.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use rustc_errors::{
88
};
99
use rustc_hir::def_id::DefId;
1010
use rustc_macros::{LintDiagnostic, Subdiagnostic};
11-
use rustc_middle::ty::{Predicate, Ty, TyCtxt};
11+
use rustc_middle::ty::{PolyExistentialTraitRef, Predicate, Ty, TyCtxt};
1212
use rustc_session::parse::ParseSess;
1313
use rustc_span::{edition::Edition, sym, symbol::Ident, Span, Symbol};
1414

@@ -556,8 +556,7 @@ pub struct BuiltinUnexpectedCliConfigValue {
556556
#[diag(lint_supertrait_as_deref_target)]
557557
pub struct SupertraitAsDerefTarget<'a> {
558558
pub t: Ty<'a>,
559-
pub target_principal: String,
560-
// pub target_principal: Binder<'a, ExistentialTraitRef<'b>>,
559+
pub target_principal: PolyExistentialTraitRef<'a>,
561560
#[subdiagnostic]
562561
pub label: Option<SupertraitAsDerefTargetLabel>,
563562
}

compiler/rustc_middle/src/ty/sty.rs

+6
Original file line numberDiff line numberDiff line change
@@ -931,6 +931,12 @@ impl<'tcx> PolyExistentialTraitRef<'tcx> {
931931
}
932932
}
933933

934+
impl rustc_errors::IntoDiagnosticArg for PolyExistentialTraitRef<'_> {
935+
fn into_diagnostic_arg(self) -> rustc_errors::DiagnosticArgValue<'static> {
936+
self.to_string().into_diagnostic_arg()
937+
}
938+
}
939+
934940
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, TyEncodable, TyDecodable)]
935941
#[derive(HashStable)]
936942
pub enum BoundVariableKind {

src/bootstrap/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,7 @@ impl Build {
593593

594594
// Make a symbolic link so we can use a consistent directory in the documentation.
595595
let build_triple = build.out.join(&build.build.triple);
596+
t!(fs::create_dir_all(&build_triple));
596597
let host = build.out.join("host");
597598
if let Err(e) = symlink_dir(&build.config, &build_triple, &host) {
598599
if e.kind() != ErrorKind::AlreadyExists {

src/ci/docker/host-x86_64/dist-various-2/build-solaris-toolchain.sh

+4-6
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,22 @@ cd solaris
3232

3333
dpkg --add-architecture $APT_ARCH
3434
apt-get update
35-
apt-get download $(apt-cache depends --recurse --no-replaces \
35+
apt-get install -y --download-only \
3636
libc:$APT_ARCH \
37-
liblgrp-dev:$APT_ARCH \
3837
liblgrp:$APT_ARCH \
3938
libm-dev:$APT_ARCH \
4039
libpthread:$APT_ARCH \
4140
libresolv:$APT_ARCH \
4241
librt:$APT_ARCH \
43-
libsendfile-dev:$APT_ARCH \
4442
libsendfile:$APT_ARCH \
4543
libsocket:$APT_ARCH \
4644
system-crt:$APT_ARCH \
47-
system-header:$APT_ARCH \
48-
| grep "^\w")
45+
system-header:$APT_ARCH
4946

50-
for deb in *$APT_ARCH.deb; do
47+
for deb in /var/cache/apt/archives/*$APT_ARCH.deb; do
5148
dpkg -x $deb .
5249
done
50+
apt-get clean
5351

5452
# The -dev packages are not available from the apt repository we're using.
5553
# However, those packages are just symlinks from *.so to *.so.<version>.

src/ci/github-actions/ci.yml

-1
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,6 @@ jobs:
675675
--target=x86_64-pc-windows-msvc
676676
--enable-full-tools
677677
--enable-profiler
678-
--set rust.lto=thin
679678
SCRIPT: PGO_HOST=x86_64-pc-windows-msvc src/ci/pgo.sh python x.py dist bootstrap --include-default-paths
680679
DIST_REQUIRE_ALL_TOOLS: 1
681680
<<: *job-windows-xl

src/version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.68.0
1+
1.68.1

tests/ui/lint/issue-108155.rs

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// check-pass
2+
// check that `deref_into_dyn_supertrait` doesn't cause ICE by eagerly converting
3+
// a cancelled lint
4+
5+
#![allow(deref_into_dyn_supertrait)]
6+
7+
trait Trait {}
8+
impl std::ops::Deref for dyn Trait + Send + Sync {
9+
type Target = dyn Trait;
10+
fn deref(&self) -> &Self::Target {
11+
self
12+
}
13+
}
14+
15+
fn main() {}

0 commit comments

Comments
 (0)