diff options
Diffstat (limited to '')
30 files changed, 628 insertions, 1158 deletions
diff --git a/debian/bin/rust-lld b/debian/bin/rust-lld index 04aec84b4..285f1b0da 100755 --- a/debian/bin/rust-lld +++ b/debian/bin/rust-lld @@ -6,4 +6,4 @@ # However the tests fail for other reasons, namely we can't build rustdoc # (which runs the tests) in wasm32 yet. So this is just WIP at the moment, # it is not expect to work nor to be installed on user machines. -exec /usr/bin/lld-14 "${@/#-Wl,/}" +exec /usr/bin/lld-15 "${@/#-Wl,/}" diff --git a/debian/changelog b/debian/changelog index e4e72ad6d..eaf375290 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,42 @@ +rustc (1.65.0+dfsg1-2) unstable; urgency=medium + + * Team upload + * Source-only upload + + -- Jeremy Bícha <jbicha@ubuntu.com> Mon, 26 Jun 2023 17:16:27 -0400 + +rustc (1.65.0+dfsg1-1) unstable; urgency=medium + + * Upload to unstable + + -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Tue, 20 Jun 2023 20:16:50 +0200 + +rustc (1.65.0+dfsg1-1~exp3) experimental; urgency=medium + + * d/rules: fix typo in mipsel workaround + + -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Sun, 12 Mar 2023 08:54:15 +0100 + +rustc (1.65.0+dfsg1-1~exp2) experimental; urgency=medium + + [ Fabian Grünbichler ] + * d/control: add myself to Uploaders + * cherry-pick fix for failing backtrace test + * bump mipsel test failure allowance to work around broken gdb 13.1 + * drop duplicate lintian override + + -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Sat, 11 Mar 2023 18:50:19 +0100 + +rustc (1.65.0+dfsg1-1~exp1) experimental; urgency=medium + + [ Fabian Grünbichler ] + * New upstream version 1.65.0+dfsg1 + * switch to LLVM-15 + * cherry-pick fix for compiletest with rpath=false + * add overrides for rust-analyzer test data + + -- Fabian Gruenbichler <debian@fabian.gruenbichler.email> Wed, 15 Feb 2023 20:12:05 +0100 + rustc (1.64.0+dfsg1-1~progress7.99u1) graograman-backports; urgency=medium * Initial reupload to graograman-backports. diff --git a/debian/control b/debian/control index abaf245fe..f466d8a2d 100644 --- a/debian/control +++ b/debian/control @@ -17,13 +17,13 @@ Build-Depends: dpkg-dev (>= 1.17.14), python3:native, cargo:native (>= 0.60.0) <!pkg.rustc.dlstage0>, - rustc:native (>= 1.63.0+dfsg) <!pkg.rustc.dlstage0>, - rustc:native (<= 1.64.0++) <!pkg.rustc.dlstage0>, - llvm-14-dev:native, - llvm-14-tools:native, + rustc:native (>= 1.64.0+dfsg) <!pkg.rustc.dlstage0>, + rustc:native (<= 1.65.0++) <!pkg.rustc.dlstage0>, + llvm-15-dev:native, + llvm-15-tools:native, gcc-mingw-w64-x86-64-posix:native [amd64] <!nowindows>, gcc-mingw-w64-i686-posix:native [i386] <!nowindows>, - libllvm14 (>= 1:14.0.0), + libllvm15 (>= 1:15.0.0), cmake (>= 3.0) | cmake3, # needed by some vendor crates pkg-config, @@ -44,7 +44,7 @@ Build-Depends: Build-Depends-Indep: wasi-libc (>= 0.0~git20220510.9886d3d~~) <!nowasm>, wasi-libc (<= 0.0~git20220510.9886d3d++) <!nowasm>, - clang-14:native, + clang-15:native, Build-Conflicts: gdb-minimal <!nocheck> Standards-Version: 4.2.1 Homepage: http://www.rust-lang.org/ @@ -61,12 +61,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libstd-rust-dev (= ${binary:Version}), gcc, libc-dev, binutils (>= 2.26) Recommends: - cargo (>= 0.65.0~~), cargo (<< 0.66.0~~), + cargo (>= 0.66.0~~), cargo (<< 0.67.0~~), # llvm is needed for llvm-dwp for -C split-debuginfo=packed - llvm-14, + llvm-15, Suggests: # lld and clang are needed for wasm compilation - lld-14, clang-14, + lld-15, clang-15, Replaces: libstd-rust-dev (<< 1.25.0+dfsg1-2~~) Breaks: libstd-rust-dev (<< 1.25.0+dfsg1-2~~) Description: Rust systems programming language @@ -82,7 +82,7 @@ Description: Rust systems programming language generic programming and meta-programming, in both static and dynamic styles. -Package: libstd-rust-1.64 +Package: libstd-rust-1.65 Section: libs Architecture: any Multi-Arch: same @@ -109,7 +109,7 @@ Section: libdevel Architecture: any Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends}, - libstd-rust-1.64 (= ${binary:Version}), + libstd-rust-1.65 (= ${binary:Version}), Description: Rust standard libraries - development files Rust is a curly-brace, block-structured expression language. It visually resembles the C language family, but differs significantly @@ -161,7 +161,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends} # Embeds wasi-libc so doesn't need to depend on it # None of its licenses require source redistrib, so no need for Built-Using Recommends: - lld-14, clang-14, + lld-15, clang-15, Suggests: # nodejs contains wasi-node for running the program nodejs (>= 12.16), @@ -207,7 +207,7 @@ Description: Rust debugger (gdb) Package: rust-lldb Architecture: all # When updating, also update rust-lldb.links -Depends: lldb-14, ${misc:Depends}, python3-lldb-14 +Depends: lldb-15, ${misc:Depends}, python3-lldb-15 Replaces: rustc (<< 1.1.0+dfsg1-1) Description: Rust debugger (lldb) Rust is a curly-brace, block-structured expression language. It @@ -272,7 +272,7 @@ Package: rust-clippy Architecture: any Multi-Arch: allowed Depends: ${misc:Depends}, ${shlibs:Depends}, - libstd-rust-1.64 (= ${binary:Version}) + libstd-rust-1.65 (= ${binary:Version}) Recommends: cargo Description: Rust linter Rust is a curly-brace, block-structured expression language. It @@ -327,7 +327,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, rust-gdb (>= ${binary:Version}) | rust-lldb (>= ${binary:Version}), cargo, Recommends: - cargo (>= 0.65.0~~), cargo (<< 0.66.0~~) + cargo (>= 0.66.0~~), cargo (<< 0.67.0~~) Suggests: rust-doc (>= ${binary:Version}), rust-src (>= ${binary:Version}), diff --git a/debian/copyright b/debian/copyright index 03380c208..cd920fe5a 100644 --- a/debian/copyright +++ b/debian/copyright @@ -42,17 +42,16 @@ Files-Excluded: # unused dependencies, generated by debian/prune-unused-deps # DO NOT EDIT below, AUTOGENERATED vendor/ahash-0.7.4 - vendor/anyhow-1.0.56 - vendor/anyhow-1.0.58 + vendor/anyhow-1.0.60 + vendor/anyhow-1.0.62 vendor/anymap vendor/arbitrary vendor/ar vendor/arrayvec-0.7.0 - vendor/backtrace-0.3.65 vendor/bitmaps - vendor/byteorder-1.3.4 + vendor/byteorder vendor/bytesize - vendor/cc-1.0.69 + vendor/camino-1.0.9 vendor/chalk-derive vendor/chalk-ir vendor/chalk-recursive @@ -79,16 +78,18 @@ Files-Excluded: vendor/cranelift-module vendor/cranelift-native vendor/cranelift-object + vendor/crossbeam vendor/crossbeam-channel-0.5.4 + vendor/crossbeam-deque-0.8.1 vendor/crossbeam-epoch-0.9.6 vendor/crossbeam-epoch-0.9.8 + vendor/crossbeam-queue vendor/crossbeam-utils-0.8.8 vendor/crypto-common-0.1.2 vendor/crypto-hash vendor/curl vendor/curl-sys vendor/derive_arbitrary - vendor/derive_more vendor/diff-0.1.12 vendor/difference vendor/digest-0.10.2 @@ -109,43 +110,36 @@ Files-Excluded: vendor/fsevent-sys vendor/fs_extra-1.1.0 vendor/fs_extra - vendor/fst-0.4.5 vendor/fst - vendor/futures-0.1.31 vendor/fwdansi vendor/fxhash vendor/generic-array-0.14.4 vendor/getrandom-0.2.0 vendor/getset + vendor/gimli-0.26.1 vendor/git2 vendor/git2-curl vendor/globset-0.4.8 - vendor/hashbrown-0.11.2 - vendor/hashbrown-0.12.1 vendor/heck-0.3.3 vendor/hex-0.3.2 vendor/hex-0.4.2 - vendor/idna-0.1.5 vendor/idna-0.2.0 vendor/im-rc vendor/indenter vendor/inotify vendor/inotify-sys vendor/itertools-0.10.1 + vendor/itoa-1.0.2 vendor/jemalloc-sys vendor/jod-thread - vendor/json - vendor/jsonrpc-client-transports - vendor/jsonrpc-core - vendor/jsonrpc-core-client - vendor/jsonrpc-derive - vendor/jsonrpc-ipc-server - vendor/jsonrpc-pubsub - vendor/jsonrpc-server-utils vendor/kqueue vendor/kqueue-sys vendor/kstring - vendor/lazycell + vendor/libc-0.2.126 + vendor/libc-0.2.127 + vendor/libc-0.2.131 + vendor/libffi + vendor/libffi-sys vendor/libgit2-sys vendor/libloading-0.6.7 vendor/libloading-0.7.1 @@ -155,64 +149,55 @@ Files-Excluded: vendor/libz-sys vendor/linked-hash-map vendor/log-0.4.14 - vendor/lsp-codec - vendor/lsp-types-0.60.0 vendor/lzma-sys-0.1.16 vendor/mach vendor/matches-0.1.8 - vendor/memchr-2.4.1 vendor/mimalloc - vendor/mio-0.7.14 vendor/mio vendor/normalize-line-endings vendor/notify - vendor/ntapi-0.3.6 - vendor/object-0.28.4 - vendor/once_cell-1.10.0 vendor/once_cell-1.12.0 + vendor/once_cell-1.13.0 vendor/oorandom vendor/openssl vendor/openssl-probe vendor/openssl-src vendor/openssl-sys - vendor/ordslice vendor/os_info vendor/owo-colors - vendor/parity-tokio-ipc vendor/paste - vendor/percent-encoding-1.0.1 vendor/pin-project-lite-0.2.8 vendor/pkg-config-0.3.18 - vendor/pretty_assertions vendor/pretty_env_logger vendor/proc-macro2-1.0.37 vendor/proc-macro2-1.0.39 - vendor/proc-macro-crate - vendor/pulldown-cmark-0.9.1 + vendor/protobuf + vendor/protobuf-support vendor/pulldown-cmark-to-cmark vendor/quote-1.0.18 - vendor/rand_xoshiro-0.4.0 vendor/redox_syscall-0.2.10 + vendor/redox_syscall-0.2.13 vendor/regalloc2 + vendor/regex-1.5.6 + vendor/regex-syntax-0.6.26 vendor/region - vendor/rls-vfs vendor/rustc_version + vendor/ryu-1.0.10 vendor/ryu-1.0.5 vendor/salsa vendor/salsa-macros vendor/schannel + vendor/scip vendor/security-framework vendor/security-framework-sys + vendor/semver-1.0.12 vendor/serde-1.0.137 - vendor/serde-1.0.138 vendor/serde_derive-1.0.137 - vendor/serde_derive-1.0.138 vendor/serde_ignored vendor/serde_json-1.0.81 - vendor/serde_repr-0.1.6 + vendor/serde_json-1.0.83 vendor/sha2-0.10.1 vendor/sharded-slab-0.1.1 - vendor/signal-hook-registry vendor/similar vendor/sized-chunks vendor/slice-group-by @@ -226,31 +211,29 @@ Files-Excluded: vendor/syn-1.0.91 vendor/syn-1.0.95 vendor/target-lexicon + vendor/thiserror-1.0.31 + vendor/thiserror-impl-1.0.31 vendor/threadpool vendor/tikv-jemallocator vendor/tikv-jemalloc-ctl vendor/tikv-jemalloc-sys vendor/tinyvec-0.3.4 - vendor/tokio-stream - vendor/tokio-util vendor/toml-0.5.7 vendor/toml_edit - vendor/tower-service - vendor/tracing-0.1.29 - vendor/tracing-attributes-0.1.18 - vendor/tracing-core-0.1.21 + vendor/tracing-0.1.35 + vendor/tracing-core-0.1.28 vendor/tracing-error vendor/tracing-log-0.1.2 vendor/tracing-subscriber-0.3.3 vendor/tracing-tree-0.2.0 vendor/typed-arena vendor/typenum-1.12.0 + vendor/ui_test vendor/unicode-bidi-0.3.4 vendor/unicode-ident-1.0.0 vendor/unicode-normalization-0.1.13 vendor/unicode-width-0.1.8 vendor/unicode-xid-0.2.2 - vendor/url-1.7.2 vendor/utf8parse vendor/vcpkg vendor/vergen @@ -460,7 +443,6 @@ Comment: see https://github.com/notriddle/ammonia Files: vendor/annotate-snippets/* - vendor/annotate-snippets-0.8.0/* Copyright: 2018-2020 Zibi Braniecki <gandalf@mozilla.com> License: Apache-2.0 or MIT Comment: see https://github.com/zbraniecki/annotate-snippets-rs @@ -503,15 +485,8 @@ Comment: see https://github.com/rust-lang/backtrace-rs Files: vendor/block-buffer/* - vendor/block-buffer-0*/* - vendor/block-padding/* - vendor/byte-tools/* vendor/digest/* - vendor/digest-0*/* - vendor/fake-simd/* vendor/md-5/* - vendor/opaque-debug/* - vendor/sha-1-0*/* vendor/sha-1/* vendor/sha2/* Copyright: 2016-2020 RustCrypto Developers @@ -533,7 +508,6 @@ License: Apache-2.0 or MIT Comment: see https://github.com/llogiq/bytecount Files: - vendor/byteorder/* vendor/globset/* vendor/ignore/* vendor/same-file/* @@ -543,7 +517,6 @@ Files: Copyright: 2015-2020 Andrew Gallant <jamslam@gmail.com> License: Unlicense or MIT Comment: - see https://github.com/BurntSushi/byteorder see https://github.com/BurntSushi/same-file see https://github.com/BurntSushi/walkdir see https://github.com/BurntSushi/winapi-util @@ -625,11 +598,9 @@ License: MIT OR Apache-2.0 Comment: see https://github.com/srijs/rust-crc32fast Files: - vendor/crossbeam/* vendor/crossbeam-channel/* vendor/crossbeam-deque/* vendor/crossbeam-epoch/* - vendor/crossbeam-queue/* vendor/crossbeam-utils/* Copyright: 2015-2022 The Crossbeam Project Developers License: MIT or Apache-2.0 @@ -791,7 +762,6 @@ Comment: see https://github.com/servo/futf Files: vendor/generic-array/* - vendor/generic-array-0*/* Copyright: 2015-2020 Bartłomiej Kamiński <fizyk20@gmail.com> 2015-2020 Aaron Trent <novacrazy@gmail.com> @@ -903,6 +873,12 @@ Copyright: 2018-2021 Changseok Han <freestrings@gmail.com> License: MIT Comment: see https://github.com/freestrings/jsonpath +Files: vendor/lazycell/* +Copyright: 2016-2020 Alex Crichton <alex@alexcrichton.com> + 2016-2020 Nikita Pekin <contact@nikitapek.in> +License: MIT or Apache-2.0 +Comment: see https://github.com/indiv0/lazycell + Files: vendor/lazy_static/* Copyright: 2014-2018 Marvin Löbel <loebel.marvin@gmail.com> License: MIT or Apache-2.0 @@ -1117,7 +1093,7 @@ Copyright: 2017-2017 Emilio Cobos Álvarez <emilio@crisal.io> License: MIT Comment: see https://github.com/emilio/precomputed-hash -Files: vendor/pretty_assertions-0.7.2/* +Files: vendor/pretty_assertions/* Copyright: 2017-2022 Colin Kiegel <kiegel@gmx.de> 2017-2022 Florent Fayolle <florent.fayolle69@gmail.com> 2017-2022 Tom Milligan <code@tommilligan.net> @@ -1153,7 +1129,6 @@ Comment: see https://github.com/mcarton/rust-punycode.git Files: vendor/quick-error/* - vendor/quick-error-1*/* Copyright: 2015-2020 Paul Colomiets <paul@colomiets.name> 2015-2020 Colin Kiegel <kiegel@gmx.de> @@ -1221,11 +1196,6 @@ Copyright: 2020-2020 flip1995 <hello@philkrones.com> License: MIT OR Apache-2.0 Comment: see https://github.com/flip1995/rustc-semver -Files: vendor/rustc_tools_util/* -Copyright: 2014-2021 Matthias Krüger <matthias.krueger@famsik.de> -License: MIT or Apache-2.0 -Comment: see https://github.com/rust-lang/rust-clippy - Files: vendor/rustfix/* Copyright: 2016-2021 Pascal Hertleif <killercup@gmail.com> @@ -1371,17 +1341,22 @@ Copyright: 2016-2020 Yuki Okushi <huyuumi.dev@gmail.com> License: MIT or Apache-2.0 Comment: see https://github.com/JohnTitor/termize -Files: vendor/textwrap/* -Copyright: 2016-2022 Martin Geisler <martin@geisler.net> -License: MIT -Comment: see https://github.com/mgeisler/textwrap - Files: vendor/text-size/* Copyright: 2018-2021 Aleksey Kladov <aleksey.kladov@gmail.com> 2018-2021 Christopher Durham (CAD97) <cad97@cad97.com> License: MIT OR Apache-2.0 Comment: see https://github.com/rust-analyzer/text-size +Files: vendor/textwrap/* +Copyright: 2016-2022 Martin Geisler <martin@geisler.net> +License: MIT +Comment: see https://github.com/mgeisler/textwrap + +Files: vendor/thin-vec/* +Copyright: 2017-2022 Aria Beingessner <a.beingessner@gmail.com> +License: MIT or Apache-2.0 +Comment: see https://github.com/gankra/thin-vec + Files: vendor/thiserror/* vendor/thiserror-impl/* @@ -1619,11 +1594,6 @@ Copyright: 2019-2022 The Cranelift Project Developers License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT Comment: see https://github.com/bytecodealliance/wasi -Files: vendor/wasi-0.10.2+wasi-snapshot-preview1/* -Copyright: 2019-2022 The Cranelift Project Developers -License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT -Comment: see https://github.com/bytecodealliance/wasi - Files: vendor/windows_aarch64_msvc/* vendor/windows_i686_gnu/* diff --git a/debian/libstd-rust-1.64.lintian-overrides b/debian/libstd-rust-1.64.lintian-overrides deleted file mode 100644 index 1a992afe2..000000000 --- a/debian/libstd-rust-1.64.lintian-overrides +++ /dev/null @@ -1,13 +0,0 @@ -# "libstd" just seemed too generic -libstd-rust-1.64 binary: package-name-doesnt-match-sonames -libstd-rust-1.64 binary: sharedobject-in-library-directory-missing-soname - -# Rust doesn't use dev shlib symlinks nor any of the other shlib support stuff -libstd-rust-1.64 binary: dev-pkg-without-shlib-symlink -libstd-rust-1.64 binary: shlib-without-versioned-soname -libstd-rust-1.64 binary: unused-shlib-entry-in-control-file - -# Libraries that use libc symbols (libterm, libstd, etc) *are* linked -# to libc. Lintian gets upset that some Rust libraries don't need -# libc, boo hoo. -libstd-rust-1.64 binary: library-not-linked-against-libc diff --git a/debian/libstd-rust-1.64.install b/debian/libstd-rust-1.65.install index cd4545cca..cd4545cca 100644 --- a/debian/libstd-rust-1.64.install +++ b/debian/libstd-rust-1.65.install diff --git a/debian/libstd-rust-1.65.lintian-overrides b/debian/libstd-rust-1.65.lintian-overrides new file mode 100644 index 000000000..3218caec4 --- /dev/null +++ b/debian/libstd-rust-1.65.lintian-overrides @@ -0,0 +1,13 @@ +# "libstd" just seemed too generic +libstd-rust-1.65 binary: package-name-doesnt-match-sonames +libstd-rust-1.65 binary: sharedobject-in-library-directory-missing-soname + +# Rust doesn't use dev shlib symlinks nor any of the other shlib support stuff +libstd-rust-1.65 binary: dev-pkg-without-shlib-symlink +libstd-rust-1.65 binary: shlib-without-versioned-soname +libstd-rust-1.65 binary: unused-shlib-entry-in-control-file + +# Libraries that use libc symbols (libterm, libstd, etc) *are* linked +# to libc. Lintian gets upset that some Rust libraries don't need +# libc, boo hoo. +libstd-rust-1.65 binary: library-not-linked-against-libc diff --git a/debian/patches/d-0000-ignore-removed-submodules.patch b/debian/patches/d-0000-ignore-removed-submodules.patch index 3dfaf06cb..26d1e4361 100644 --- a/debian/patches/d-0000-ignore-removed-submodules.patch +++ b/debian/patches/d-0000-ignore-removed-submodules.patch @@ -3,21 +3,22 @@ Date: Sat, 2 Oct 2021 01:07:59 +0100 Subject: d-0000-ignore-removed-submodules --- - Cargo.toml | 36 ++++++++---------------------------- - src/bootstrap/bootstrap.py | 4 ---- - src/bootstrap/builder.rs | 7 +------ - src/bootstrap/doc.rs | 1 - - src/bootstrap/test.rs | 12 +----------- - src/tools/clippy/Cargo.toml | 5 ----- - src/tools/rustfmt/Cargo.toml | 5 ----- - src/tools/tidy/src/deps.rs | 2 +- - 8 files changed, 11 insertions(+), 61 deletions(-) + Cargo.toml | 15 --------------- + src/bootstrap/bootstrap.py | 4 ---- + src/bootstrap/builder.rs | 11 +---------- + src/bootstrap/doc.rs | 1 - + src/bootstrap/test.rs | 12 +----------- + src/tools/clippy/Cargo.toml | 5 ----- + src/tools/rust-analyzer/Cargo.toml | 11 ++++++++++- + src/tools/rustfmt/Cargo.toml | 5 ----- + src/tools/tidy/src/deps.rs | 2 +- + 9 files changed, 13 insertions(+), 53 deletions(-) diff --git a/Cargo.toml b/Cargo.toml -index ffc886d..7231b60 100644 +index e49fe5e..863c800 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -16,25 +16,14 @@ members = [ +@@ -16,27 +16,15 @@ members = [ "src/tools/tidy", "src/tools/tier-check", "src/tools/build-manifest", @@ -38,38 +39,16 @@ index ffc886d..7231b60 100644 "src/tools/unicode-table-generator", - "src/tools/expand-yaml-anchors", "src/tools/jsondocck", + "src/tools/jsondoclint", "src/tools/html-checker", - "src/tools/bump-stage0", +- "src/tools/replace-version-placeholder", "src/tools/lld-wrapper", ] -@@ -96,25 +85,16 @@ gimli.debug = 0 - miniz_oxide.debug = 0 +@@ -99,9 +87,6 @@ miniz_oxide.debug = 0 object.debug = 0 --# We want the RLS to use the version of Cargo that we've got vendored in this --# repository to ensure that the same exact version of Cargo is used by both the --# RLS and the Cargo binary itself. The RLS depends on Cargo as a git repository --# so we use a `[patch]` here to override the github repository with our local --# vendored copy. --[patch."https://github.com/rust-lang/cargo"] --cargo = { path = "src/tools/cargo" } --cargo-util = { path = "src/tools/cargo/crates/cargo-util" } -- --[patch."https://github.com/rust-lang/rustfmt"] --# Similar to Cargo above we want the RLS to use a vendored version of `rustfmt` --# that we're shipping as well (to ensure that the rustfmt in RLS and the --# `rustfmt` executable are the same exact version). --rustfmt-nightly = { path = "src/tools/rustfmt" } -+# The only package that ever uses debug builds is bootstrap. -+# We care a lot about bootstrap's compile times, so don't include debug info for -+# dependencies, only bootstrap itself. -+[profile.dev] -+debug = 0 -+[profile.dev.package] -+# Only use debuginfo=1 to further reduce compile times. -+bootstrap.debug = 1 - [patch.crates-io] -# See comments in `src/tools/rustc-workspace-hack/README.md` for what's going on -# here @@ -78,7 +57,7 @@ index ffc886d..7231b60 100644 # See comments in `library/rustc-std-workspace-core/README.md` for what's going on # here diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py -index 03eec02..c40811f 100644 +index cc08ae5..bf7d696 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -759,10 +759,6 @@ class RustBuild(object): @@ -93,34 +72,36 @@ index 03eec02..c40811f 100644 args.append("--features") args.append("build-metrics") diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs -index 0ab4824..629e1bb 100644 +index 14e8ebd..6d43333 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs -@@ -600,7 +600,6 @@ impl<'a> Builder<'a> { +@@ -600,8 +600,6 @@ impl<'a> Builder<'a> { + tool::RemoteTestClient, tool::RustInstaller, tool::Cargo, - tool::Rls, +- tool::Rls, - tool::RustAnalyzer, tool::RustAnalyzerProcMacroSrv, tool::RustDemangler, tool::Rustdoc, -@@ -622,7 +620,6 @@ impl<'a> Builder<'a> { +@@ -622,8 +621,6 @@ impl<'a> Builder<'a> { + check::CodegenBackend, check::Clippy, check::Miri, - check::Rls, +- check::Rls, - check::RustAnalyzer, check::Rustfmt, check::Bootstrap ), -@@ -650,7 +647,6 @@ impl<'a> Builder<'a> { +@@ -650,7 +648,6 @@ impl<'a> Builder<'a> { + test::ReplacePlaceholderTest, test::Cargotest, test::Cargo, - test::Rls, - test::RustAnalyzer, test::ErrorIndex, test::Distcheck, test::RunMakeFullDeps, -@@ -698,10 +694,8 @@ impl<'a> Builder<'a> { +@@ -698,10 +695,8 @@ impl<'a> Builder<'a> { doc::RustdocBook, doc::RustByExample, doc::RustcBook, @@ -131,7 +112,15 @@ index 0ab4824..629e1bb 100644 doc::EmbeddedBook, doc::EditionGuide, ), -@@ -723,7 +717,6 @@ impl<'a> Builder<'a> { +@@ -715,15 +712,12 @@ impl<'a> Builder<'a> { + dist::Analysis, + dist::Src, + dist::Cargo, +- dist::Rls, +- dist::RustAnalyzer, + dist::Rustfmt, + dist::RustDemangler, + dist::Clippy, dist::Miri, dist::LlvmTools, dist::RustDev, @@ -139,7 +128,15 @@ index 0ab4824..629e1bb 100644 // It seems that PlainSourceTarball somehow changes how some of the tools // perceive their dependencies (see #93033) which would invalidate fingerprints // and force us to rebuild tools after vendoring dependencies. -@@ -2054,10 +2047,7 @@ impl<'a> Builder<'a> { +@@ -736,7 +725,6 @@ impl<'a> Builder<'a> { + install::Docs, + install::Std, + install::Cargo, +- install::RustAnalyzer, + install::Rustfmt, + install::RustDemangler, + install::Clippy, +@@ -2056,10 +2050,7 @@ impl<'a> Builder<'a> { } } @@ -152,7 +149,7 @@ index 0ab4824..629e1bb 100644 } diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs -index 2852442..5faa8e5 100644 +index f909ecc..8bf71b1 100644 --- a/src/bootstrap/doc.rs +++ b/src/bootstrap/doc.rs @@ -73,7 +73,6 @@ macro_rules! book { @@ -164,10 +161,10 @@ index 2852442..5faa8e5 100644 EditionGuide, "src/doc/edition-guide", "edition-guide", submodule; EmbeddedBook, "src/doc/embedded-book", "embedded-book", submodule; diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs -index c0fa8c9..8fbc390 100644 +index dd41f84..ba6227c 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs -@@ -1910,17 +1910,7 @@ impl Step for RustcGuide { +@@ -1886,17 +1886,7 @@ impl Step for RustcGuide { } fn run(self, builder: &Builder<'_>) { @@ -187,7 +184,7 @@ index c0fa8c9..8fbc390 100644 } diff --git a/src/tools/clippy/Cargo.toml b/src/tools/clippy/Cargo.toml -index 1c875c3..1aad7cf 100644 +index b7e136c..a844a5d 100644 --- a/src/tools/clippy/Cargo.toml +++ b/src/tools/clippy/Cargo.toml @@ -36,11 +36,6 @@ walkdir = "2.3" @@ -202,6 +199,26 @@ index 1c875c3..1aad7cf 100644 # UI test dependencies clippy_utils = { path = "clippy_utils" } derive-new = "0.5" +diff --git a/src/tools/rust-analyzer/Cargo.toml b/src/tools/rust-analyzer/Cargo.toml +index 6b68ca8..93f755c 100644 +--- a/src/tools/rust-analyzer/Cargo.toml ++++ b/src/tools/rust-analyzer/Cargo.toml +@@ -1,5 +1,14 @@ + [workspace] +-members = ["xtask/", "lib/*", "crates/*"] ++members = [ ++ "xtask/", ++ "lib/*", ++ "crates/proc-macro-srv", ++ "crates/proc-macro-srv-cli", ++ "crates/tt", ++ "crates/mbe", ++ "crates/paths", ++ "crates/proc-macro-api", ++] + exclude = ["crates/proc-macro-test/imp"] + + [profile.dev] diff --git a/src/tools/rustfmt/Cargo.toml b/src/tools/rustfmt/Cargo.toml index 7a4e02d..27b91f2 100644 --- a/src/tools/rustfmt/Cargo.toml @@ -219,10 +236,10 @@ index 7a4e02d..27b91f2 100644 [package.metadata.rust-analyzer] diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs -index 333f85f..4df2b54 100644 +index cbd8cfa..6b39fd6 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs -@@ -306,7 +306,7 @@ const FORBIDDEN_TO_HAVE_DUPLICATES: &[&str] = &[ +@@ -308,7 +308,7 @@ const FORBIDDEN_TO_HAVE_DUPLICATES: &[&str] = &[ // These two crates take quite a long time to build, so don't allow two versions of them // to accidentally sneak into our dependency graph, in order to ensure we keep our CI times // under control. @@ -231,23 +248,3 @@ index 333f85f..4df2b54 100644 ]; /// Dependency checks. -diff --git a/src/tools/rust-analyzer/Cargo.toml b/src.tools/rust-analyzer/Cargo.toml -index 6b68ca82389..7bc5d1bc5a0 100644 ---- a/src/tools/rust-analyzer/Cargo.toml -+++ b/src/tools/rust-analyzer/Cargo.toml -@@ -1,5 +1,14 @@ - [workspace] --members = ["xtask/", "lib/*", "crates/*"] -+members = [ -+ "xtask/", -+ "lib/*", -+ "crates/proc-macro-srv", -+ "crates/proc-macro-srv-cli", -+ "crates/tt", -+ "crates/mbe", -+ "crates/paths", -+ "crates/proc-macro-api", -+] - exclude = ["crates/proc-macro-test/imp"] - - [profile.dev] diff --git a/debian/patches/d-0004-clippy-feature-sync.patch b/debian/patches/d-0004-clippy-feature-sync.patch index 8c0c0fb97..19c75955e 100644 --- a/debian/patches/d-0004-clippy-feature-sync.patch +++ b/debian/patches/d-0004-clippy-feature-sync.patch @@ -5,15 +5,15 @@ Subject: d-0004-clippy-feature-sync enable features needed by rustfmt to make build system happy and speedup build. this is what rustc_workspace_hack does in the upstream build. --- - src/tools/clippy/Cargo.toml | 3 ++- + src/tools/clippy/Cargo.toml | 2 +- src/tools/rustfmt/Cargo.toml | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/clippy/Cargo.toml b/src/tools/clippy/Cargo.toml -index 1aad7cf..705a880 100644 +index a844a5d..4dd3f55 100644 --- a/src/tools/clippy/Cargo.toml +++ b/src/tools/clippy/Cargo.toml -@@ -42,7 +43,7 @@ if_chain = "1.0" +@@ -43,7 +43,7 @@ if_chain = "1.0" itertools = "0.10.1" quote = "1.0" serde = { version = "1.0.125", features = ["derive"] } diff --git a/debian/patches/d-0005-no-jemalloc.patch b/debian/patches/d-0005-no-jemalloc.patch index 6d8620a01..ca74117bd 100644 --- a/debian/patches/d-0005-no-jemalloc.patch +++ b/debian/patches/d-0005-no-jemalloc.patch @@ -3,8 +3,9 @@ Date: Sat, 2 Oct 2021 01:08:00 +0100 Subject: d-0005-no-jemalloc --- - compiler/rustc/Cargo.toml | 6 ------ - 1 file changed, 6 deletions(-) + compiler/rustc/Cargo.toml | 6 ------ + src/tools/rust-analyzer/crates/profile/Cargo.toml | 2 -- + 2 files changed, 8 deletions(-) diff --git a/compiler/rustc/Cargo.toml b/compiler/rustc/Cargo.toml index 27ee3dd..87fb29f 100644 @@ -25,7 +26,7 @@ index 27ee3dd..87fb29f 100644 max_level_info = ['rustc_driver/max_level_info'] rustc_use_parallel_compiler = ['rustc_driver/rustc_use_parallel_compiler'] diff --git a/src/tools/rust-analyzer/crates/profile/Cargo.toml b/src/tools/rust-analyzer/crates/profile/Cargo.toml -index 99d4179dc20..0b78a45a24b 100644 +index 0b78a45..99d4179 100644 --- a/src/tools/rust-analyzer/crates/profile/Cargo.toml +++ b/src/tools/rust-analyzer/crates/profile/Cargo.toml @@ -15,7 +15,6 @@ cfg-if = "1.0.0" @@ -36,7 +37,7 @@ index 99d4179dc20..0b78a45a24b 100644 [target.'cfg(target_os = "linux")'.dependencies] perf-event = "0.4.7" -@@ -24,7 +25,6 @@ winapi = { version = "0.3.9", features = ["processthreadsapi", "psapi"] } +@@ -25,7 +24,6 @@ winapi = { version = "0.3.9", features = ["processthreadsapi", "psapi"] } [features] cpu_profiler = [] diff --git a/debian/patches/d-bootstrap-cargo-check-cfg.patch b/debian/patches/d-bootstrap-cargo-check-cfg.patch index e15707199..c715b1f31 100644 --- a/debian/patches/d-bootstrap-cargo-check-cfg.patch +++ b/debian/patches/d-bootstrap-cargo-check-cfg.patch @@ -5,7 +5,7 @@ diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 0ab4824ac0a..76c476f449b 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs -@@ -1480,9 +1480,9 @@ impl<'a> Builder<'a> { +@@ -1472,9 +1472,9 @@ impl<'a> Builder<'a> { // complete list of features, so for that reason we don't enable checking of // features for std crates. cargo.arg(if mode != Mode::Std { diff --git a/debian/patches/d-bootstrap-custom-debuginfo-path.patch b/debian/patches/d-bootstrap-custom-debuginfo-path.patch index f955cffbf..2b548abcf 100644 --- a/debian/patches/d-bootstrap-custom-debuginfo-path.patch +++ b/debian/patches/d-bootstrap-custom-debuginfo-path.patch @@ -12,7 +12,7 @@ diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index ddc92ba..259b56e 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs -@@ -1023,10 +1023,9 @@ impl Build { +@@ -1026,10 +1026,9 @@ impl Build { match which { GitRepo::Rustc => { diff --git a/debian/patches/d-bootstrap-disable-git.patch b/debian/patches/d-bootstrap-disable-git.patch index ce02d60b3..63823f51b 100644 --- a/debian/patches/d-bootstrap-disable-git.patch +++ b/debian/patches/d-bootstrap-disable-git.patch @@ -31,7 +31,7 @@ diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs index 6181a61..5fe3600 100644 --- a/src/bootstrap/dist.rs +++ b/src/bootstrap/dist.rs -@@ -899,7 +899,10 @@ impl Step for PlainSourceTarball { +@@ -902,7 +902,10 @@ impl Step for PlainSourceTarball { } // If we're building from git sources, we need to vendor a complete distribution. diff --git a/debian/patches/d-bootstrap-read-beta-version-from-file.patch b/debian/patches/d-bootstrap-read-beta-version-from-file.patch index a5b385d13..812a653ba 100644 --- a/debian/patches/d-bootstrap-read-beta-version-from-file.patch +++ b/debian/patches/d-bootstrap-read-beta-version-from-file.patch @@ -11,7 +11,7 @@ diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 68d387b..ddc92ba 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs -@@ -1266,14 +1266,15 @@ impl Build { +@@ -1269,14 +1269,15 @@ impl Build { return s; } diff --git a/debian/patches/d-bootstrap-rustflags.patch b/debian/patches/d-bootstrap-rustflags.patch index a28810e89..dfcdee922 100644 --- a/debian/patches/d-bootstrap-rustflags.patch +++ b/debian/patches/d-bootstrap-rustflags.patch @@ -11,7 +11,7 @@ diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 23ea2fe..b2b1c54 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs -@@ -1505,6 +1505,18 @@ impl<'a> Builder<'a> { +@@ -1499,6 +1499,18 @@ impl<'a> Builder<'a> { } } diff --git a/debian/patches/d-rust-lldb-paths b/debian/patches/d-rust-lldb-paths index 15028a68f..bea7a3844 100644 --- a/debian/patches/d-rust-lldb-paths +++ b/debian/patches/d-rust-lldb-paths @@ -23,7 +23,7 @@ index bce72f1..793f593 100755 RUST_LLDB="$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb" -lldb=lldb -+lldb=lldb-14 ++lldb=lldb-15 if [ -f "$RUST_LLDB" ]; then lldb="$RUST_LLDB" else diff --git a/debian/patches/d-rustc-add-soname.patch b/debian/patches/d-rustc-add-soname.patch index 70fdf26b8..e69898bf5 100644 --- a/debian/patches/d-rustc-add-soname.patch +++ b/debian/patches/d-rustc-add-soname.patch @@ -28,7 +28,7 @@ diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codege index 04ec1e7..67296ca 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs -@@ -2175,6 +2175,13 @@ fn add_order_independent_options( +@@ -2240,6 +2240,13 @@ fn add_order_independent_options( } add_rpath_args(cmd, sess, codegen_results, out_filename); diff --git a/debian/patches/d-rustc-windows-ssp.patch b/debian/patches/d-rustc-windows-ssp.patch index 5d8ba4785..bbf00594c 100644 --- a/debian/patches/d-rustc-windows-ssp.patch +++ b/debian/patches/d-rustc-windows-ssp.patch @@ -11,7 +11,7 @@ diff --git a/compiler/rustc_target/src/spec/windows_gnu_base.rs b/compiler/rustc index d11f1f7..137f8eb 100644 --- a/compiler/rustc_target/src/spec/windows_gnu_base.rs +++ b/compiler/rustc_target/src/spec/windows_gnu_base.rs -@@ -40,6 +40,8 @@ pub fn opts() -> TargetOptions { +@@ -41,6 +41,8 @@ pub fn opts() -> TargetOptions { "-lmsvcrt", "-luser32", "-lkernel32", diff --git a/debian/patches/series b/debian/patches/series index c918b658a..d3c74ae4c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,17 +4,17 @@ u-ignore-reproducible-failure.patch u-reproducible-build.patch u-ignore-endian-big-diff.patch +u-make-compiletest-work-without-rpath.patch +u-fix-backtrace-tests.patch # fixed in 1.66 # can be dropped once upstream updates compiler_builtins u-arm-compiler-builtins-weak-linkage-arm.patch -u-arm-compiler-builtins-add-sync-builtin-fallbacks.patch # can be dropped once upstream updates rustix u-fix-rustix-for-sparc64.patch # not forwarded, or forwarded but unlikely to be merged u-ignore-ppc-hangs.patch -u-ignore-bpf-test.patch u-rustc-llvm-cross-flags.patch u-reproducible-dl-stage0.patch u-make-tests-work-without-rpath.patch @@ -67,4 +67,3 @@ d-rustdoc-disable-embedded-fonts.patch # cherry-picked from ubuntu ubuntu-disable-ppc64el-asm-tests.patch ubuntu-ignore-arm-doctest.patch -ubuntu-Revert-Use-constant-eval-to-do-strict-validity-check.patch diff --git a/debian/patches/u-arm-compiler-builtins-add-sync-builtin-fallbacks.patch b/debian/patches/u-arm-compiler-builtins-add-sync-builtin-fallbacks.patch deleted file mode 100644 index 796c17cef..000000000 --- a/debian/patches/u-arm-compiler-builtins-add-sync-builtin-fallbacks.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 56172fcd8bd045e38bbdf76697d1fcca1e965d6d Mon Sep 17 00:00:00 2001 -From: Alex Huszagh <ahuszagh@gmail.com> -Date: Fri, 29 Jul 2022 16:58:05 -0500 -Subject: [PATCH] Add compiler-rt fallbacks for sync builtins on armv5te-musl. - ---- -https://github.com/rust-lang/compiler-builtins/pull/484 - - src/arm_linux.rs | 110 +++++++++++++++++++++++++++++++---------------- - 1 file changed, 73 insertions(+), 37 deletions(-) - -diff --git a/vendor/compiler_builtins/src/arm_linux.rs b/vendor/compiler_builtins/src/arm_linux.rs -index 8fe0948..8f22eb6 100644 ---- a/vendor/compiler_builtins/src/arm_linux.rs -+++ b/vendor/compiler_builtins/src/arm_linux.rs -@@ -55,7 +55,7 @@ fn insert_aligned(aligned: u32, val: u32, shift: u32, mask: u32) -> u32 { - } - - // Generic atomic read-modify-write operation --unsafe fn atomic_rmw<T, F: Fn(u32) -> u32>(ptr: *mut T, f: F) -> u32 { -+unsafe fn atomic_rmw<T, F: Fn(u32) -> u32, G: Fn(u32, u32) -> u32>(ptr: *mut T, f: F, g: G) -> u32 { - let aligned_ptr = align_ptr(ptr); - let (shift, mask) = get_shift_mask(ptr); - -@@ -65,7 +65,7 @@ unsafe fn atomic_rmw<T, F: Fn(u32) -> u32>(ptr: *mut T, f: F) -> u32 { - let newval = f(curval); - let newval_aligned = insert_aligned(curval_aligned, newval, shift, mask); - if __kuser_cmpxchg(curval_aligned, newval_aligned, aligned_ptr) { -- return curval; -+ return g(curval, newval); - } - } - } -@@ -89,13 +89,21 @@ unsafe fn atomic_cmpxchg<T>(ptr: *mut T, oldval: u32, newval: u32) -> u32 { - } - - macro_rules! atomic_rmw { -- ($name:ident, $ty:ty, $op:expr) => { -+ ($name:ident, $ty:ty, $op:expr, $fetch:expr) => { - intrinsics! { - pub unsafe extern "C" fn $name(ptr: *mut $ty, val: $ty) -> $ty { -- atomic_rmw(ptr, |x| $op(x as $ty, val) as u32) as $ty -+ atomic_rmw(ptr, |x| $op(x as $ty, val) as u32, |old, new| $fetch(old, new)) as $ty - } - } - }; -+ -+ (@old $name:ident, $ty:ty, $op:expr) => { -+ atomic_rmw!($name, $ty, $op, |old, _| old); -+ }; -+ -+ (@new $name:ident, $ty:ty, $op:expr) => { -+ atomic_rmw!($name, $ty, $op, |_, new| new); -+ }; - } - macro_rules! atomic_cmpxchg { - ($name:ident, $ty:ty) => { -@@ -107,101 +115,129 @@ macro_rules! atomic_cmpxchg { - }; - } - --atomic_rmw!(__sync_fetch_and_add_1, u8, |a: u8, b: u8| a.wrapping_add(b)); --atomic_rmw!(__sync_fetch_and_add_2, u16, |a: u16, b: u16| a -+atomic_rmw!(@old __sync_fetch_and_add_1, u8, |a: u8, b: u8| a.wrapping_add(b)); -+atomic_rmw!(@old __sync_fetch_and_add_2, u16, |a: u16, b: u16| a -+ .wrapping_add(b)); -+atomic_rmw!(@old __sync_fetch_and_add_4, u32, |a: u32, b: u32| a -+ .wrapping_add(b)); -+ -+atomic_rmw!(@new __sync_add_and_fetch_1, u8, |a: u8, b: u8| a.wrapping_add(b)); -+atomic_rmw!(@new __sync_add_and_fetch_2, u16, |a: u16, b: u16| a - .wrapping_add(b)); --atomic_rmw!(__sync_fetch_and_add_4, u32, |a: u32, b: u32| a -+atomic_rmw!(@new __sync_add_and_fetch_4, u32, |a: u32, b: u32| a - .wrapping_add(b)); - --atomic_rmw!(__sync_fetch_and_sub_1, u8, |a: u8, b: u8| a.wrapping_sub(b)); --atomic_rmw!(__sync_fetch_and_sub_2, u16, |a: u16, b: u16| a -+atomic_rmw!(@old __sync_fetch_and_sub_1, u8, |a: u8, b: u8| a.wrapping_sub(b)); -+atomic_rmw!(@old __sync_fetch_and_sub_2, u16, |a: u16, b: u16| a - .wrapping_sub(b)); --atomic_rmw!(__sync_fetch_and_sub_4, u32, |a: u32, b: u32| a -+atomic_rmw!(@old __sync_fetch_and_sub_4, u32, |a: u32, b: u32| a - .wrapping_sub(b)); - --atomic_rmw!(__sync_fetch_and_and_1, u8, |a: u8, b: u8| a & b); --atomic_rmw!(__sync_fetch_and_and_2, u16, |a: u16, b: u16| a & b); --atomic_rmw!(__sync_fetch_and_and_4, u32, |a: u32, b: u32| a & b); -+atomic_rmw!(@new __sync_sub_and_fetch_1, u8, |a: u8, b: u8| a.wrapping_sub(b)); -+atomic_rmw!(@new __sync_sub_and_fetch_2, u16, |a: u16, b: u16| a -+ .wrapping_sub(b)); -+atomic_rmw!(@new __sync_sub_and_fetch_4, u32, |a: u32, b: u32| a -+ .wrapping_sub(b)); -+ -+atomic_rmw!(@old __sync_fetch_and_and_1, u8, |a: u8, b: u8| a & b); -+atomic_rmw!(@old __sync_fetch_and_and_2, u16, |a: u16, b: u16| a & b); -+atomic_rmw!(@old __sync_fetch_and_and_4, u32, |a: u32, b: u32| a & b); -+ -+atomic_rmw!(@new __sync_and_and_fetch_1, u8, |a: u8, b: u8| a & b); -+atomic_rmw!(@new __sync_and_and_fetch_2, u16, |a: u16, b: u16| a & b); -+atomic_rmw!(@new __sync_and_and_fetch_4, u32, |a: u32, b: u32| a & b); -+ -+atomic_rmw!(@old __sync_fetch_and_or_1, u8, |a: u8, b: u8| a | b); -+atomic_rmw!(@old __sync_fetch_and_or_2, u16, |a: u16, b: u16| a | b); -+atomic_rmw!(@old __sync_fetch_and_or_4, u32, |a: u32, b: u32| a | b); -+ -+atomic_rmw!(@new __sync_or_and_fetch_1, u8, |a: u8, b: u8| a | b); -+atomic_rmw!(@new __sync_or_and_fetch_2, u16, |a: u16, b: u16| a | b); -+atomic_rmw!(@new __sync_or_and_fetch_4, u32, |a: u32, b: u32| a | b); -+ -+atomic_rmw!(@old __sync_fetch_and_xor_1, u8, |a: u8, b: u8| a ^ b); -+atomic_rmw!(@old __sync_fetch_and_xor_2, u16, |a: u16, b: u16| a ^ b); -+atomic_rmw!(@old __sync_fetch_and_xor_4, u32, |a: u32, b: u32| a ^ b); - --atomic_rmw!(__sync_fetch_and_or_1, u8, |a: u8, b: u8| a | b); --atomic_rmw!(__sync_fetch_and_or_2, u16, |a: u16, b: u16| a | b); --atomic_rmw!(__sync_fetch_and_or_4, u32, |a: u32, b: u32| a | b); -+atomic_rmw!(@new __sync_xor_and_fetch_1, u8, |a: u8, b: u8| a ^ b); -+atomic_rmw!(@new __sync_xor_and_fetch_2, u16, |a: u16, b: u16| a ^ b); -+atomic_rmw!(@new __sync_xor_and_fetch_4, u32, |a: u32, b: u32| a ^ b); - --atomic_rmw!(__sync_fetch_and_xor_1, u8, |a: u8, b: u8| a ^ b); --atomic_rmw!(__sync_fetch_and_xor_2, u16, |a: u16, b: u16| a ^ b); --atomic_rmw!(__sync_fetch_and_xor_4, u32, |a: u32, b: u32| a ^ b); -+atomic_rmw!(@old __sync_fetch_and_nand_1, u8, |a: u8, b: u8| !(a & b)); -+atomic_rmw!(@old __sync_fetch_and_nand_2, u16, |a: u16, b: u16| !(a & b)); -+atomic_rmw!(@old __sync_fetch_and_nand_4, u32, |a: u32, b: u32| !(a & b)); - --atomic_rmw!(__sync_fetch_and_nand_1, u8, |a: u8, b: u8| !(a & b)); --atomic_rmw!(__sync_fetch_and_nand_2, u16, |a: u16, b: u16| !(a & b)); --atomic_rmw!(__sync_fetch_and_nand_4, u32, |a: u32, b: u32| !(a & b)); -+atomic_rmw!(@new __sync_nand_and_fetch_1, u8, |a: u8, b: u8| !(a & b)); -+atomic_rmw!(@new __sync_nand_and_fetch_2, u16, |a: u16, b: u16| !(a & b)); -+atomic_rmw!(@new __sync_nand_and_fetch_4, u32, |a: u32, b: u32| !(a & b)); - --atomic_rmw!(__sync_fetch_and_max_1, i8, |a: i8, b: i8| if a > b { -+atomic_rmw!(@old __sync_fetch_and_max_1, i8, |a: i8, b: i8| if a > b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_max_2, i16, |a: i16, b: i16| if a > b { -+atomic_rmw!(@old __sync_fetch_and_max_2, i16, |a: i16, b: i16| if a > b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_max_4, i32, |a: i32, b: i32| if a > b { -+atomic_rmw!(@old __sync_fetch_and_max_4, i32, |a: i32, b: i32| if a > b { - a - } else { - b - }); - --atomic_rmw!(__sync_fetch_and_umax_1, u8, |a: u8, b: u8| if a > b { -+atomic_rmw!(@old __sync_fetch_and_umax_1, u8, |a: u8, b: u8| if a > b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_umax_2, u16, |a: u16, b: u16| if a > b { -+atomic_rmw!(@old __sync_fetch_and_umax_2, u16, |a: u16, b: u16| if a > b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_umax_4, u32, |a: u32, b: u32| if a > b { -+atomic_rmw!(@old __sync_fetch_and_umax_4, u32, |a: u32, b: u32| if a > b { - a - } else { - b - }); - --atomic_rmw!(__sync_fetch_and_min_1, i8, |a: i8, b: i8| if a < b { -+atomic_rmw!(@old __sync_fetch_and_min_1, i8, |a: i8, b: i8| if a < b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_min_2, i16, |a: i16, b: i16| if a < b { -+atomic_rmw!(@old __sync_fetch_and_min_2, i16, |a: i16, b: i16| if a < b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_min_4, i32, |a: i32, b: i32| if a < b { -+atomic_rmw!(@old __sync_fetch_and_min_4, i32, |a: i32, b: i32| if a < b { - a - } else { - b - }); - --atomic_rmw!(__sync_fetch_and_umin_1, u8, |a: u8, b: u8| if a < b { -+atomic_rmw!(@old __sync_fetch_and_umin_1, u8, |a: u8, b: u8| if a < b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_umin_2, u16, |a: u16, b: u16| if a < b { -+atomic_rmw!(@old __sync_fetch_and_umin_2, u16, |a: u16, b: u16| if a < b { - a - } else { - b - }); --atomic_rmw!(__sync_fetch_and_umin_4, u32, |a: u32, b: u32| if a < b { -+atomic_rmw!(@old __sync_fetch_and_umin_4, u32, |a: u32, b: u32| if a < b { - a - } else { - b - }); - --atomic_rmw!(__sync_lock_test_and_set_1, u8, |_: u8, b: u8| b); --atomic_rmw!(__sync_lock_test_and_set_2, u16, |_: u16, b: u16| b); --atomic_rmw!(__sync_lock_test_and_set_4, u32, |_: u32, b: u32| b); -+atomic_rmw!(@old __sync_lock_test_and_set_1, u8, |_: u8, b: u8| b); -+atomic_rmw!(@old __sync_lock_test_and_set_2, u16, |_: u16, b: u16| b); -+atomic_rmw!(@old __sync_lock_test_and_set_4, u32, |_: u32, b: u32| b); - - atomic_cmpxchg!(__sync_val_compare_and_swap_1, u8); - atomic_cmpxchg!(__sync_val_compare_and_swap_2, u16); --- -2.39.0 - diff --git a/debian/patches/u-fix-backtrace-tests.patch b/debian/patches/u-fix-backtrace-tests.patch new file mode 100644 index 000000000..9a5617ad1 --- /dev/null +++ b/debian/patches/u-fix-backtrace-tests.patch @@ -0,0 +1,54 @@ +From 3d8b3e6ca179dc2ac79c038ad607b2321be70e8d Mon Sep 17 00:00:00 2001 +From: Aaron Hill <aa1ronham@gmail.com> +Date: Wed, 21 Sep 2022 10:24:16 -0500 +Subject: [PATCH] Set 'exec-env:RUST_BACKTRACE=0' in const-eval-select tests + +This allows the tests to pass even if the user has RUST_BACKTRACE +set when running 'x.py' +--- + src/test/ui/intrinsics/const-eval-select-backtrace-std.rs | 1 + + .../ui/intrinsics/const-eval-select-backtrace-std.run.stderr | 2 +- + src/test/ui/intrinsics/const-eval-select-backtrace.rs | 1 + + src/test/ui/intrinsics/const-eval-select-backtrace.run.stderr | 2 +- + 4 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/test/ui/intrinsics/const-eval-select-backtrace-std.rs b/src/test/ui/intrinsics/const-eval-select-backtrace-std.rs +index 29aefe07162b3..1164a3a5b0180 100644 +--- a/src/test/ui/intrinsics/const-eval-select-backtrace-std.rs ++++ b/src/test/ui/intrinsics/const-eval-select-backtrace-std.rs +@@ -1,6 +1,7 @@ + // See issue #100696. + // run-fail + // check-run-results ++// exec-env:RUST_BACKTRACE=0 + fn main() { + &""[1..]; + } +diff --git a/src/test/ui/intrinsics/const-eval-select-backtrace-std.run.stderr b/src/test/ui/intrinsics/const-eval-select-backtrace-std.run.stderr +index e53e6034620ca..463cd52c5aa7b 100644 +--- a/src/test/ui/intrinsics/const-eval-select-backtrace-std.run.stderr ++++ b/src/test/ui/intrinsics/const-eval-select-backtrace-std.run.stderr +@@ -1,2 +1,2 @@ +-thread 'main' panicked at 'byte index 1 is out of bounds of ``', $DIR/const-eval-select-backtrace-std.rs:5:6 ++thread 'main' panicked at 'byte index 1 is out of bounds of ``', $DIR/const-eval-select-backtrace-std.rs:6:6 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +diff --git a/src/test/ui/intrinsics/const-eval-select-backtrace.rs b/src/test/ui/intrinsics/const-eval-select-backtrace.rs +index 99f0725200c1d..ef1c7c4195b91 100644 +--- a/src/test/ui/intrinsics/const-eval-select-backtrace.rs ++++ b/src/test/ui/intrinsics/const-eval-select-backtrace.rs +@@ -2,6 +2,7 @@ + // See issue #100696. + // run-fail + // check-run-results ++// exec-env:RUST_BACKTRACE=0 + + #[track_caller] + fn uhoh() { +diff --git a/src/test/ui/intrinsics/const-eval-select-backtrace.run.stderr b/src/test/ui/intrinsics/const-eval-select-backtrace.run.stderr +index 2fd730ac7a68a..54e28db5e533d 100644 +--- a/src/test/ui/intrinsics/const-eval-select-backtrace.run.stderr ++++ b/src/test/ui/intrinsics/const-eval-select-backtrace.run.stderr +@@ -1,2 +1,2 @@ +-thread 'main' panicked at 'Aaah!', $DIR/const-eval-select-backtrace.rs:16:9 ++thread 'main' panicked at 'Aaah!', $DIR/const-eval-select-backtrace.rs:17:9 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace diff --git a/debian/patches/u-ignore-bpf-test.patch b/debian/patches/u-ignore-bpf-test.patch deleted file mode 100644 index 5fa3464ee..000000000 --- a/debian/patches/u-ignore-bpf-test.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> -Date: Thu, 14 Jul 2022 13:17:37 +0200 -Subject: u-ignore-bpf-test - -Bug: https://github.com/rust-lang/rust/issues/89689 ---- - src/test/assembly/asm/bpf-types.rs | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/test/assembly/asm/bpf-types.rs b/src/test/assembly/asm/bpf-types.rs -index 3428d93..0e129a7 100644 ---- a/src/test/assembly/asm/bpf-types.rs -+++ b/src/test/assembly/asm/bpf-types.rs -@@ -1,3 +1,4 @@ -+// ignore-test - // min-llvm-version: 13.0 - // assembly-output: emit-asm - // compile-flags: --target bpfel-unknown-none -C target_feature=+alu32 diff --git a/debian/patches/u-make-compiletest-work-without-rpath.patch b/debian/patches/u-make-compiletest-work-without-rpath.patch new file mode 100644 index 000000000..67c3badcd --- /dev/null +++ b/debian/patches/u-make-compiletest-work-without-rpath.patch @@ -0,0 +1,187 @@ +From f8a0cc2ca8a644ddb63867526711ba17cb7508c8 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 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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. + +FG: Context adapted + +Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> +--- + src/tools/compiletest/src/common.rs | 18 +++++++++++------- + src/tools/compiletest/src/runtest.rs | 27 +++------------------------ + src/tools/compiletest/src/util.rs | 23 +++++++++++++++++++++++ + 3 files changed, 37 insertions(+), 31 deletions(-) + +diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs +index 64df76e2772..98a35810cfd 100644 +--- a/src/tools/compiletest/src/common.rs ++++ b/src/tools/compiletest/src/common.rs +@@ -2,11 +2,12 @@ pub use self::Mode::*; + + 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 @@ impl Config { + } + + 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 8f289876f73..eb467170249 100644 +--- a/src/tools/compiletest/src/runtest.rs ++++ b/src/tools/compiletest/src/runtest.rs +@@ -13,7 +13,7 @@ use crate::errors::{self, Error, ErrorKind}; + 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::fs::{self, create_dir_all, File, OpenOptions}; + 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 @@ impl<'test> TestCx<'test> { + + // 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 9d047b63c85..4b73be0fbb9 100644 +--- a/src/tools/compiletest/src/util.rs ++++ b/src/tools/compiletest/src/util.rs +@@ -2,6 +2,7 @@ use crate::common::Config; + use std::env; + use std::ffi::OsStr; + use std::path::PathBuf; ++use std::process::Command; + + use tracing::*; + +@@ -105,3 +106,25 @@ impl PathBufExt for 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.30.2 + diff --git a/debian/patches/u-rustc-llvm-cross-flags.patch b/debian/patches/u-rustc-llvm-cross-flags.patch index 95988249e..0e544db8e 100644 --- a/debian/patches/u-rustc-llvm-cross-flags.patch +++ b/debian/patches/u-rustc-llvm-cross-flags.patch @@ -11,7 +11,7 @@ diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs index b8f67ee..e9b1d0a 100644 --- a/compiler/rustc_llvm/build.rs +++ b/compiler/rustc_llvm/build.rs -@@ -294,7 +294,7 @@ fn main() { +@@ -301,7 +301,7 @@ fn main() { if let Some(stripped) = lib.strip_prefix("-LIBPATH:") { println!("cargo:rustc-link-search=native={}", stripped.replace(&host, &target)); } else if let Some(stripped) = lib.strip_prefix("-L") { diff --git a/debian/patches/ubuntu-Revert-Use-constant-eval-to-do-strict-validity-check.patch b/debian/patches/ubuntu-Revert-Use-constant-eval-to-do-strict-validity-check.patch deleted file mode 100644 index c9b50d71f..000000000 --- a/debian/patches/ubuntu-Revert-Use-constant-eval-to-do-strict-validity-check.patch +++ /dev/null @@ -1,569 +0,0 @@ -From b9e588dfeecca821a4508166027afb6bda721ed6 Mon Sep 17 00:00:00 2001 -From: Simon Chopin <simon.chopin@canonical.com> -Date: Wed, 18 Jan 2023 17:03:04 +0100 -Subject: [PATCH] Revert "Use constant eval to do strict validity checks" - -This reverts commit 27412d1e3e128349bc515c16ce882860e20f037d. - -This is likely a LLVM mis-optimization, but we're not really sure. It -leads to ICE on riscv64. - -Bug: https://github.com/rust-lang/rust/issues/102155 - ---- - Cargo.lock | 1 - - .../src/intrinsics/mod.rs | 15 ++++- - compiler/rustc_codegen_ssa/Cargo.toml | 1 - - compiler/rustc_codegen_ssa/src/mir/block.rs | 9 +-- - .../src/const_eval/machine.rs | 2 +- - .../src/interpret/intrinsics.rs | 56 ++++++++-------- - compiler/rustc_const_eval/src/lib.rs | 6 -- - .../src/might_permit_raw_init.rs | 40 ----------- - compiler/rustc_middle/src/query/mod.rs | 8 --- - compiler/rustc_middle/src/ty/query.rs | 1 - - compiler/rustc_query_impl/src/keys.rs | 12 +--- - compiler/rustc_target/src/abi/mod.rs | 38 ++++++----- - .../intrinsics/panic-uninitialized-zeroed.rs | 66 +++++++------------ - 13 files changed, 94 insertions(+), 161 deletions(-) - delete mode 100644 compiler/rustc_const_eval/src/might_permit_raw_init.rs - -diff --git a/Cargo.lock b/Cargo.lock -index 2569b3e1976..b88158f9ff8 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -3731,7 +3731,6 @@ dependencies = [ - "rustc_arena", - "rustc_ast", - "rustc_attr", -- "rustc_const_eval", - "rustc_data_structures", - "rustc_errors", - "rustc_fs_util", -diff --git a/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs b/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs -index b2a83e1d4eb..4f9ced001d4 100644 ---- a/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs -+++ b/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs -@@ -22,6 +22,7 @@ macro_rules! intrinsic_args { - use rustc_middle::ty::print::with_no_trimmed_paths; - use rustc_middle::ty::subst::SubstsRef; - use rustc_span::symbol::{kw, sym, Symbol}; -+use rustc_target::abi::InitKind; - - use crate::prelude::*; - use cranelift_codegen::ir::AtomicRmwOp; -@@ -693,7 +694,12 @@ fn swap(bcx: &mut FunctionBuilder<'_>, v: Value) -> Value { - return; - } - -- if intrinsic == sym::assert_zero_valid && !fx.tcx.permits_zero_init(layout) { -+ if intrinsic == sym::assert_zero_valid -+ && !layout.might_permit_raw_init( -+ fx, -+ InitKind::Zero, -+ fx.tcx.sess.opts.unstable_opts.strict_init_checks) { -+ - with_no_trimmed_paths!({ - crate::base::codegen_panic( - fx, -@@ -707,7 +713,12 @@ fn swap(bcx: &mut FunctionBuilder<'_>, v: Value) -> Value { - return; - } - -- if intrinsic == sym::assert_uninit_valid && !fx.tcx.permits_uninit_init(layout) { -+ if intrinsic == sym::assert_uninit_valid -+ && !layout.might_permit_raw_init( -+ fx, -+ InitKind::Uninit, -+ fx.tcx.sess.opts.unstable_opts.strict_init_checks) { -+ - with_no_trimmed_paths!({ - crate::base::codegen_panic( - fx, -diff --git a/compiler/rustc_codegen_ssa/Cargo.toml b/compiler/rustc_codegen_ssa/Cargo.toml -index 46d6344dbb2..e7ee424668b 100644 ---- a/compiler/rustc_codegen_ssa/Cargo.toml -+++ b/compiler/rustc_codegen_ssa/Cargo.toml -@@ -40,7 +40,6 @@ rustc_metadata = { path = "../rustc_metadata" } - rustc_query_system = { path = "../rustc_query_system" } - rustc_target = { path = "../rustc_target" } - rustc_session = { path = "../rustc_session" } --rustc_const_eval = { path = "../rustc_const_eval" } - - [dependencies.object] - version = "0.29.0" -diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs -index 3eee58d9d1c..a9eb4ec6439 100644 ---- a/compiler/rustc_codegen_ssa/src/mir/block.rs -+++ b/compiler/rustc_codegen_ssa/src/mir/block.rs -@@ -22,7 +22,7 @@ - use rustc_span::{sym, Symbol}; - use rustc_symbol_mangling::typeid::typeid_for_fnabi; - use rustc_target::abi::call::{ArgAbi, FnAbi, PassMode}; --use rustc_target::abi::{self, HasDataLayout, WrappingRange}; -+use rustc_target::abi::{self, HasDataLayout, InitKind, WrappingRange}; - use rustc_target::spec::abi::Abi; - - /// Used by `FunctionCx::codegen_terminator` for emitting common patterns -@@ -528,6 +528,7 @@ fn codegen_panic_intrinsic( - source_info: mir::SourceInfo, - target: Option<mir::BasicBlock>, - cleanup: Option<mir::BasicBlock>, -+ strict_validity: bool, - ) -> bool { - // Emit a panic or a no-op for `assert_*` intrinsics. - // These are intrinsics that compile to panics so that we can get a message -@@ -546,13 +547,12 @@ enum AssertIntrinsic { - }); - if let Some(intrinsic) = panic_intrinsic { - use AssertIntrinsic::*; -- - let ty = instance.unwrap().substs.type_at(0); - let layout = bx.layout_of(ty); - let do_panic = match intrinsic { - Inhabited => layout.abi.is_uninhabited(), -- ZeroValid => !bx.tcx().permits_zero_init(layout), -- UninitValid => !bx.tcx().permits_uninit_init(layout), -+ ZeroValid => !layout.might_permit_raw_init(bx, InitKind::Zero, strict_validity), -+ UninitValid => !layout.might_permit_raw_init(bx, InitKind::Uninit, strict_validity), - }; - if do_panic { - let msg_str = with_no_visible_paths!({ -@@ -687,6 +687,7 @@ fn codegen_call_terminator( - source_info, - target, - cleanup, -+ self.cx.tcx().sess.opts.unstable_opts.strict_init_checks, - ) { - return; - } -diff --git a/compiler/rustc_const_eval/src/const_eval/machine.rs b/compiler/rustc_const_eval/src/const_eval/machine.rs -index fc2e6652a3d..ef6cff42ad9 100644 ---- a/compiler/rustc_const_eval/src/const_eval/machine.rs -+++ b/compiler/rustc_const_eval/src/const_eval/machine.rs -@@ -104,7 +104,7 @@ pub struct CompileTimeInterpreter<'mir, 'tcx> { - } - - impl<'mir, 'tcx> CompileTimeInterpreter<'mir, 'tcx> { -- pub(crate) fn new(const_eval_limit: Limit, can_access_statics: bool) -> Self { -+ pub(super) fn new(const_eval_limit: Limit, can_access_statics: bool) -> Self { - CompileTimeInterpreter { - steps_remaining: const_eval_limit.0, - stack: Vec::new(), -diff --git a/compiler/rustc_const_eval/src/interpret/intrinsics.rs b/compiler/rustc_const_eval/src/interpret/intrinsics.rs -index 08209eb7932..e0ce6d9acc8 100644 ---- a/compiler/rustc_const_eval/src/interpret/intrinsics.rs -+++ b/compiler/rustc_const_eval/src/interpret/intrinsics.rs -@@ -15,7 +15,7 @@ - use rustc_middle::ty::subst::SubstsRef; - use rustc_middle::ty::{Ty, TyCtxt}; - use rustc_span::symbol::{sym, Symbol}; --use rustc_target::abi::{Abi, Align, Primitive, Size}; -+use rustc_target::abi::{Abi, Align, InitKind, Primitive, Size}; - - use super::{ - util::ensure_monomorphic_enough, CheckInAllocMsg, ImmTy, InterpCx, Machine, OpTy, PlaceTy, -@@ -435,33 +435,35 @@ pub fn emulate_intrinsic( - ), - )?; - } -- -- if intrinsic_name == sym::assert_zero_valid { -- let should_panic = !self.tcx.permits_zero_init(layout); -- -- if should_panic { -- M::abort( -- self, -- format!( -- "aborted execution: attempted to zero-initialize type `{}`, which is invalid", -- ty -- ), -- )?; -- } -+ if intrinsic_name == sym::assert_zero_valid -+ && !layout.might_permit_raw_init( -+ self, -+ InitKind::Zero, -+ self.tcx.sess.opts.unstable_opts.strict_init_checks, -+ ) -+ { -+ M::abort( -+ self, -+ format!( -+ "aborted execution: attempted to zero-initialize type `{}`, which is invalid", -+ ty -+ ), -+ )?; - } -- -- if intrinsic_name == sym::assert_uninit_valid { -- let should_panic = !self.tcx.permits_uninit_init(layout); -- -- if should_panic { -- M::abort( -- self, -- format!( -- "aborted execution: attempted to leave type `{}` uninitialized, which is invalid", -- ty -- ), -- )?; -- } -+ if intrinsic_name == sym::assert_uninit_valid -+ && !layout.might_permit_raw_init( -+ self, -+ InitKind::Uninit, -+ self.tcx.sess.opts.unstable_opts.strict_init_checks, -+ ) -+ { -+ M::abort( -+ self, -+ format!( -+ "aborted execution: attempted to leave type `{}` uninitialized, which is invalid", -+ ty -+ ), -+ )?; - } - } - sym::simd_insert => { -diff --git a/compiler/rustc_const_eval/src/lib.rs b/compiler/rustc_const_eval/src/lib.rs -index 72ac6af685d..d65d4f7eb72 100644 ---- a/compiler/rustc_const_eval/src/lib.rs -+++ b/compiler/rustc_const_eval/src/lib.rs -@@ -33,13 +33,11 @@ - pub mod const_eval; - mod errors; - pub mod interpret; --mod might_permit_raw_init; - pub mod transform; - pub mod util; - - use rustc_middle::ty; - use rustc_middle::ty::query::Providers; --use rustc_target::abi::InitKind; - - pub fn provide(providers: &mut Providers) { - const_eval::provide(providers); -@@ -61,8 +59,4 @@ pub fn provide(providers: &mut Providers) { - let (param_env, value) = param_env_and_value.into_parts(); - const_eval::deref_mir_constant(tcx, param_env, value) - }; -- providers.permits_uninit_init = -- |tcx, ty| might_permit_raw_init::might_permit_raw_init(tcx, ty, InitKind::Uninit); -- providers.permits_zero_init = -- |tcx, ty| might_permit_raw_init::might_permit_raw_init(tcx, ty, InitKind::Zero); - } -diff --git a/compiler/rustc_const_eval/src/might_permit_raw_init.rs b/compiler/rustc_const_eval/src/might_permit_raw_init.rs -deleted file mode 100644 -index f971c2238c7..00000000000 ---- a/compiler/rustc_const_eval/src/might_permit_raw_init.rs -+++ /dev/null -@@ -1,40 +0,0 @@ --use crate::const_eval::CompileTimeInterpreter; --use crate::interpret::{InterpCx, MemoryKind, OpTy}; --use rustc_middle::ty::layout::LayoutCx; --use rustc_middle::ty::{layout::TyAndLayout, ParamEnv, TyCtxt}; --use rustc_session::Limit; --use rustc_target::abi::InitKind; -- --pub fn might_permit_raw_init<'tcx>( -- tcx: TyCtxt<'tcx>, -- ty: TyAndLayout<'tcx>, -- kind: InitKind, --) -> bool { -- let strict = tcx.sess.opts.unstable_opts.strict_init_checks; -- -- if strict { -- let machine = CompileTimeInterpreter::new(Limit::new(0), false); -- -- let mut cx = InterpCx::new(tcx, rustc_span::DUMMY_SP, ParamEnv::reveal_all(), machine); -- -- let allocated = cx -- .allocate(ty, MemoryKind::Machine(crate::const_eval::MemoryKind::Heap)) -- .expect("OOM: failed to allocate for uninit check"); -- -- if kind == InitKind::Zero { -- cx.write_bytes_ptr( -- allocated.ptr, -- std::iter::repeat(0_u8).take(ty.layout.size().bytes_usize()), -- ) -- .expect("failed to write bytes for zero valid check"); -- } -- -- let ot: OpTy<'_, _> = allocated.into(); -- -- // Assume that if it failed, it's a validation failure. -- cx.validate_operand(&ot).is_ok() -- } else { -- let layout_cx = LayoutCx { tcx, param_env: ParamEnv::reveal_all() }; -- ty.might_permit_raw_init(&layout_cx, kind) -- } --} -diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs -index d8483e7e409..e498015a4a5 100644 ---- a/compiler/rustc_middle/src/query/mod.rs -+++ b/compiler/rustc_middle/src/query/mod.rs -@@ -2049,12 +2049,4 @@ - desc { |tcx| "looking up generator diagnostic data of `{}`", tcx.def_path_str(key) } - separate_provide_extern - } -- -- query permits_uninit_init(key: TyAndLayout<'tcx>) -> bool { -- desc { "checking to see if {:?} permits being left uninit", key.ty } -- } -- -- query permits_zero_init(key: TyAndLayout<'tcx>) -> bool { -- desc { "checking to see if {:?} permits being left zeroed", key.ty } -- } - } -diff --git a/compiler/rustc_middle/src/ty/query.rs b/compiler/rustc_middle/src/ty/query.rs -index 2452bcf6a61..3d662ed5de4 100644 ---- a/compiler/rustc_middle/src/ty/query.rs -+++ b/compiler/rustc_middle/src/ty/query.rs -@@ -28,7 +28,6 @@ - use crate::traits::specialization_graph; - use crate::traits::{self, ImplSource}; - use crate::ty::fast_reject::SimplifiedType; --use crate::ty::layout::TyAndLayout; - use crate::ty::subst::{GenericArg, SubstsRef}; - use crate::ty::util::AlwaysRequiresDrop; - use crate::ty::GeneratorDiagnosticData; -diff --git a/compiler/rustc_query_impl/src/keys.rs b/compiler/rustc_query_impl/src/keys.rs -index 49175e97f41..4d6bb02c38e 100644 ---- a/compiler/rustc_query_impl/src/keys.rs -+++ b/compiler/rustc_query_impl/src/keys.rs -@@ -6,7 +6,7 @@ - use rustc_middle::traits; - use rustc_middle::ty::fast_reject::SimplifiedType; - use rustc_middle::ty::subst::{GenericArg, SubstsRef}; --use rustc_middle::ty::{self, layout::TyAndLayout, Ty, TyCtxt}; -+use rustc_middle::ty::{self, Ty, TyCtxt}; - use rustc_span::symbol::{Ident, Symbol}; - use rustc_span::{Span, DUMMY_SP}; - -@@ -395,16 +395,6 @@ fn default_span(&self, _: TyCtxt<'_>) -> Span { - } - } - --impl<'tcx> Key for TyAndLayout<'tcx> { -- #[inline(always)] -- fn query_crate_is_local(&self) -> bool { -- true -- } -- fn default_span(&self, _: TyCtxt<'_>) -> Span { -- DUMMY_SP -- } --} -- - impl<'tcx> Key for (Ty<'tcx>, Ty<'tcx>) { - #[inline(always)] - fn query_crate_is_local(&self) -> bool { -diff --git a/compiler/rustc_target/src/abi/mod.rs b/compiler/rustc_target/src/abi/mod.rs -index 92ce4d91d84..d103a06060d 100644 ---- a/compiler/rustc_target/src/abi/mod.rs -+++ b/compiler/rustc_target/src/abi/mod.rs -@@ -1378,7 +1378,7 @@ pub struct PointeeInfo { - - /// Used in `might_permit_raw_init` to indicate the kind of initialisation - /// that is checked to be valid --#[derive(Copy, Clone, Debug, PartialEq, Eq)] -+#[derive(Copy, Clone, Debug)] - pub enum InitKind { - Zero, - Uninit, -@@ -1493,18 +1493,14 @@ pub fn is_zst(&self) -> bool { - /// - /// `init_kind` indicates if the memory is zero-initialized or left uninitialized. - /// -- /// This code is intentionally conservative, and will not detect -- /// * zero init of an enum whose 0 variant does not allow zero initialization -- /// * making uninitialized types who have a full valid range (ints, floats, raw pointers) -- /// * Any form of invalid value being made inside an array (unless the value is uninhabited) -+ /// `strict` is an opt-in debugging flag added in #97323 that enables more checks. - /// -- /// A strict form of these checks that uses const evaluation exists in -- /// `rustc_const_eval::might_permit_raw_init`, and a tracking issue for making these checks -- /// stricter is <https://github.com/rust-lang/rust/issues/66151>. -+ /// This is conservative: in doubt, it will answer `true`. - /// -- /// FIXME: Once all the conservatism is removed from here, and the checks are ran by default, -- /// we can use the const evaluation checks always instead. -- pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind) -> bool -+ /// FIXME: Once we removed all the conservatism, we could alternatively -+ /// create an all-0/all-undef constant and run the const value validator to see if -+ /// this is a valid value for the given type. -+ pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind, strict: bool) -> bool - where - Self: Copy, - Ty: TyAbiInterface<'a, C>, -@@ -1517,8 +1513,13 @@ pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind) -> bool - s.valid_range(cx).contains(0) - } - InitKind::Uninit => { -- // The range must include all values. -- s.is_always_valid(cx) -+ if strict { -+ // The type must be allowed to be uninit (which means "is a union"). -+ s.is_uninit_valid() -+ } else { -+ // The range must include all values. -+ s.is_always_valid(cx) -+ } - } - } - }; -@@ -1539,12 +1540,19 @@ pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind) -> bool - // If we have not found an error yet, we need to recursively descend into fields. - match &self.fields { - FieldsShape::Primitive | FieldsShape::Union { .. } => {} -- FieldsShape::Array { .. } => { -+ FieldsShape::Array { count, .. } => { - // FIXME(#66151): For now, we are conservative and do not check arrays by default. -+ if strict -+ && *count > 0 -+ && !self.field(cx, 0).might_permit_raw_init(cx, init_kind, strict) -+ { -+ // Found non empty array with a type that is unhappy about this kind of initialization -+ return false; -+ } - } - FieldsShape::Arbitrary { offsets, .. } => { - for idx in 0..offsets.len() { -- if !self.field(cx, idx).might_permit_raw_init(cx, init_kind) { -+ if !self.field(cx, idx).might_permit_raw_init(cx, init_kind, strict) { - // We found a field that is unhappy with this kind of initialization. - return false; - } -diff --git a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs -index 255151a9603..3ffd35ecdb8 100644 ---- a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs -+++ b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs -@@ -57,13 +57,6 @@ enum LR_NonZero { - - struct ZeroSized; - --#[allow(dead_code)] --#[repr(i32)] --enum ZeroIsValid { -- Zero(u8) = 0, -- One(NonNull<()>) = 1, --} -- - fn test_panic_msg<T>(op: impl (FnOnce() -> T) + panic::UnwindSafe, msg: &str) { - let err = panic::catch_unwind(op).err(); - assert_eq!( -@@ -159,12 +152,33 @@ fn main() { - "attempted to zero-initialize type `*const dyn core::marker::Send`, which is invalid" - ); - -+ /* FIXME(#66151) we conservatively do not error here yet. -+ test_panic_msg( -+ || mem::uninitialized::<LR_NonZero>(), -+ "attempted to leave type `LR_NonZero` uninitialized, which is invalid" -+ ); -+ test_panic_msg( -+ || mem::zeroed::<LR_NonZero>(), -+ "attempted to zero-initialize type `LR_NonZero`, which is invalid" -+ ); -+ -+ test_panic_msg( -+ || mem::uninitialized::<ManuallyDrop<LR_NonZero>>(), -+ "attempted to leave type `std::mem::ManuallyDrop<LR_NonZero>` uninitialized, \ -+ which is invalid" -+ ); -+ test_panic_msg( -+ || mem::zeroed::<ManuallyDrop<LR_NonZero>>(), -+ "attempted to zero-initialize type `std::mem::ManuallyDrop<LR_NonZero>`, \ -+ which is invalid" -+ ); -+ */ -+ - test_panic_msg( - || mem::uninitialized::<(NonNull<u32>, u32, u32)>(), - "attempted to leave type `(core::ptr::non_null::NonNull<u32>, u32, u32)` uninitialized, \ - which is invalid" - ); -- - test_panic_msg( - || mem::zeroed::<(NonNull<u32>, u32, u32)>(), - "attempted to zero-initialize type `(core::ptr::non_null::NonNull<u32>, u32, u32)`, \ -@@ -182,23 +196,11 @@ fn main() { - which is invalid" - ); - -- test_panic_msg( -- || mem::uninitialized::<LR_NonZero>(), -- "attempted to leave type `LR_NonZero` uninitialized, which is invalid" -- ); -- -- test_panic_msg( -- || mem::uninitialized::<ManuallyDrop<LR_NonZero>>(), -- "attempted to leave type `core::mem::manually_drop::ManuallyDrop<LR_NonZero>` uninitialized, \ -- which is invalid" -- ); -- - test_panic_msg( - || mem::uninitialized::<NoNullVariant>(), - "attempted to leave type `NoNullVariant` uninitialized, \ - which is invalid" - ); -- - test_panic_msg( - || mem::zeroed::<NoNullVariant>(), - "attempted to zero-initialize type `NoNullVariant`, \ -@@ -210,12 +212,10 @@ fn main() { - || mem::uninitialized::<bool>(), - "attempted to leave type `bool` uninitialized, which is invalid" - ); -- - test_panic_msg( - || mem::uninitialized::<LR>(), - "attempted to leave type `LR` uninitialized, which is invalid" - ); -- - test_panic_msg( - || mem::uninitialized::<ManuallyDrop<LR>>(), - "attempted to leave type `core::mem::manually_drop::ManuallyDrop<LR>` uninitialized, which is invalid" -@@ -229,7 +229,6 @@ fn main() { - let _val = mem::zeroed::<Option<&'static i32>>(); - let _val = mem::zeroed::<MaybeUninit<NonNull<u32>>>(); - let _val = mem::zeroed::<[!; 0]>(); -- let _val = mem::zeroed::<ZeroIsValid>(); - let _val = mem::uninitialized::<MaybeUninit<bool>>(); - let _val = mem::uninitialized::<[!; 0]>(); - let _val = mem::uninitialized::<()>(); -@@ -260,33 +259,12 @@ fn main() { - || mem::zeroed::<[NonNull<()>; 1]>(), - "attempted to zero-initialize type `[core::ptr::non_null::NonNull<()>; 1]`, which is invalid" - ); -- -- // FIXME(#66151) we conservatively do not error here yet (by default). -- test_panic_msg( -- || mem::zeroed::<LR_NonZero>(), -- "attempted to zero-initialize type `LR_NonZero`, which is invalid" -- ); -- -- test_panic_msg( -- || mem::zeroed::<ManuallyDrop<LR_NonZero>>(), -- "attempted to zero-initialize type `core::mem::manually_drop::ManuallyDrop<LR_NonZero>`, \ -- which is invalid" -- ); - } else { - // These are UB because they have not been officially blessed, but we await the resolution - // of <https://github.com/rust-lang/unsafe-code-guidelines/issues/71> before doing - // anything about that. - let _val = mem::uninitialized::<i32>(); - let _val = mem::uninitialized::<*const ()>(); -- -- // These are UB, but best to test them to ensure we don't become unintentionally -- // stricter. -- -- // It's currently unchecked to create invalid enums and values inside arrays. -- let _val = mem::zeroed::<LR_NonZero>(); -- let _val = mem::zeroed::<[LR_NonZero; 1]>(); -- let _val = mem::zeroed::<[NonNull<()>; 1]>(); -- let _val = mem::uninitialized::<[NonNull<()>; 1]>(); - } - } - } --- -2.37.2 - diff --git a/debian/patches/ubuntu-disable-ppc64el-asm-tests.patch b/debian/patches/ubuntu-disable-ppc64el-asm-tests.patch index bc841cc8b..001305b6e 100644 --- a/debian/patches/ubuntu-disable-ppc64el-asm-tests.patch +++ b/debian/patches/ubuntu-disable-ppc64el-asm-tests.patch @@ -1,6 +1,6 @@ --- a/compiler/rustc_lint_defs/src/builtin.rs +++ b/compiler/rustc_lint_defs/src/builtin.rs -@@ -2749,11 +2749,13 @@ +@@ -2913,11 +2913,13 @@ declare_lint! { /// /// use std::arch::asm; /// @@ -17,7 +17,7 @@ --- a/src/test/run-make-fulldeps/intrinsic-unreachable/Makefile +++ b/src/test/run-make-fulldeps/intrinsic-unreachable/Makefile @@ -1,6 +1,7 @@ - -include ../tools.mk + include ../tools.mk # ignore-windows-msvc +# needs-asm-support @@ -26,7 +26,7 @@ # https://github.com/llvm-mirror/llvm/commit/64b2297786f7fd6f5fa24cdd4db0298fbf211466 --- a/compiler/rustc_lint/src/builtin.rs +++ b/compiler/rustc_lint/src/builtin.rs -@@ -3136,6 +3136,10 @@ +@@ -3053,6 +3053,10 @@ declare_lint! { /// ### Example /// /// ```rust,compile_fail diff --git a/debian/rules b/debian/rules index 8b83b8272..97f2f071d 100755 --- a/debian/rules +++ b/debian/rules @@ -28,8 +28,8 @@ export RUST_LONG_VERSION DEB_DESTDIR := $(CURDIR)/debian/tmp # Use system LLVM (comment out to use vendored LLVM) -LLVM_VERSION = 14 -OLD_LLVM_VERSION = 13 +LLVM_VERSION = 15 +OLD_LLVM_VERSION = 14 # Make it easier to test against a custom LLVM ifneq (,$(LLVM_DESTDIR)) LLVM_LIBRARY_PATH := $(LLVM_DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH):$(LLVM_DESTDIR)/usr/lib @@ -278,9 +278,14 @@ FAILURES_ALLOWED = 8 ifneq (,$(filter $(DEB_BUILD_ARCH), armhf)) FAILURES_ALLOWED = 12 endif -ifneq (,$(filter $(DEB_BUILD_ARCH), armel mips mipsel mips64el)) +ifneq (,$(filter $(DEB_BUILD_ARCH), armel mips mips64el)) FAILURES_ALLOWED = 24 endif +# workaround broken gdb 13.1 - revert to 24 once fixed +# #1031946 / #1032785 +ifneq (,$(filter $(DEB_BUILD_ARCH), mipsel)) + FAILURES_ALLOWED = 25 +endif ifneq (,$(filter $(DEB_BUILD_ARCH), ppc64 s390x)) FAILURES_ALLOWED = 40 endif diff --git a/debian/rust-lldb.links b/debian/rust-lldb.links index d9de18f77..561aff8b5 100644 --- a/debian/rust-lldb.links +++ b/debian/rust-lldb.links @@ -1 +1 @@ -usr/share/man/man1/lldb-14.1.gz usr/share/man/man1/rust-lldb.1.gz +usr/share/man/man1/lldb-15.1.gz usr/share/man/man1/rust-lldb.1.gz diff --git a/debian/rustc.links b/debian/rustc.links index db024ff24..10826e2ef 100644 --- a/debian/rustc.links +++ b/debian/rustc.links @@ -1,6 +1,6 @@ -usr/bin/lld-14 usr/bin/rust-lld -usr/bin/clang-14 usr/bin/rust-clang -usr/bin/llvm-dwp-14 usr/bin/rust-llvm-dwp +usr/bin/lld-15 usr/bin/rust-lld +usr/bin/clang-15 usr/bin/rust-clang +usr/bin/llvm-dwp-15 usr/bin/rust-llvm-dwp # for -Z gcc-ld=lld, see compiler/rustc_codegen_ssa/src/back/link.rs for logic usr/bin/rust-lld usr/lib/rustlib/${env:DEB_HOST_RUST_TYPE}/bin/gcc-ld/ld usr/bin/rust-lld usr/lib/rustlib/${env:DEB_HOST_RUST_TYPE}/bin/gcc-ld/ld64 diff --git a/debian/upstream-tarball-unsuspicious.txt b/debian/upstream-tarball-unsuspicious.txt index 216c81b8f..5d9dbaf38 100644 --- a/debian/upstream-tarball-unsuspicious.txt +++ b/debian/upstream-tarball-unsuspicious.txt @@ -5,9 +5,19 @@ # probably Doing It Wrong. Ask in #debian-rust or the mailing list for pointers. # False-positive, file(1) misidentifies mime type +compiler/rustc_error_codes/src/error_codes/E0469.md +src/doc/reference/src/crates-and-source-files.md +src/doc/reference/src/items/extern-crates.md +src/doc/reference/src/items/modules.md +src/doc/reference/src/types-redirect.html +src/tools/clippy/src/docs/alloc_instead_of_core.txt +src/tools/clippy/src/docs/only_used_in_recursion.txt +vendor/chalk-solve-0.80.0/src/infer/test.rs +vendor/getrandom-0.1.14/src/wasm32_stdweb.rs vendor/itertools*/examples/iris.data -vendor/regex/tests/unicode.rs +vendor/minifier/src/js/tools.rs vendor/regex/tests/suffix_reverse.rs +vendor/regex/tests/unicode.rs vendor/term/src/terminfo/parser/names.rs # False-positive, "verylongtext" but OK @@ -21,6 +31,7 @@ library/portable-simd/*.md library/std/src/sys/sgx/abi/entry.S library/stdarch/CONTRIBUTING.md library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs +src/doc/*/CODE_OF_CONDUCT.md src/doc/book/first-edition/src/the-stack-and-the-heap.md src/doc/edition-guide/src/rust-2018/index.md src/doc/edition-guide/src/rust-2021/disjoint-capture-in-closures.md @@ -33,41 +44,43 @@ src/doc/rust-by-example/src/flow_control/if_let.md src/doc/rust-by-example/src/std/arc.md src/doc/rust-by-example/src/trait/dyn.md src/doc/rust-by-example/src/unsafe/asm.md +src/doc/rustc-dev-guide/src/*.md +src/doc/rustc-dev-guide/src/*/*.md src/doc/rustc/src/instrument-coverage.md src/doc/rustc/src/lints/groups.md -src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md +src/doc/rustc/src/platform-support/armeb-unknown-linux-gnueabi.md src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md +src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md src/doc/rustc/src/targets/known-issues.md -src/doc/rustc-dev-guide/src/*.md -src/doc/rustc-dev-guide/src/*/*.md src/doc/rustdoc/src/*.md -src/doc/*/CODE_OF_CONDUCT.md src/doc/unstable-book/src/*/*.md src/etc/third-party/README.txt src/librustdoc/html/highlight/fixtures/sample.html src/librustdoc/html/static/scrape-examples-help.md -src/tools/rustfmt/*.md -src/tools/rust-analyzer/docs/user/manual.adoc +src/tools/clippy/src/docs/trailing_empty_array.txt src/tools/rust-analyzer/crates/rust-analyzer/src/diagnostics/to_proto.rs -vendor/*/Cargo.toml +src/tools/rust-analyzer/docs/user/manual.adoc +src/tools/rustfmt/*.md +vendor/*/*/*/LICENSE +vendor/*/*/LICENSE vendor/*/CHANGELOG.md vendor/*/CODE_OF_CONDUCT.md -vendor/*/README.md -vendor/*/README.tpl +vendor/*/Cargo.toml vendor/*/LICENSE vendor/*/LICENSE-MIT -vendor/*/*/LICENSE -vendor/*/*/*/LICENSE +vendor/*/README.md vendor/ahash/FAQ.md vendor/ammonia/src/lib.rs -vendor/clap/examples/derive_ref/README.md +vendor/clap/examples/demo.md +vendor/clap/examples/tutorial_*/*.md vendor/generic-array/DESIGN.md vendor/handlebars/src/lib.rs +vendor/handlebars/src/render.rs vendor/handlebars/src/template.rs +vendor/lazy_static/src/lib.rs vendor/maplit/README.rst vendor/mdbook/CONTRIBUTING.md vendor/miniz_oxide/Readme.md -vendor/lazy_static/src/lib.rs vendor/pulldown-cmark/tests/suite/footnotes.rs vendor/rustc-demangle/src/legacy.rs vendor/stable_deref_trait/src/lib.rs @@ -76,15 +89,15 @@ vendor/tracing-subscriber/src/fmt/format/json.rs vendor/unicase/src/lib.rs vendor/unicode-normalization/src/stream_safe.rs vendor/winapi/src/lib.rs +vendor/windows-sys-0.*/src/Windows/Win32/*.rs +vendor/windows-sys-0.*/src/Windows/Win32/*/*.rs +vendor/windows-sys-0.*/src/Windows/Win32/*/*/*.rs +vendor/windows-sys-0.*/src/Windows/Win32/*/*/*/*.rs vendor/windows-sys/readme.md vendor/windows-sys/src/Windows/Win32/*.rs vendor/windows-sys/src/Windows/Win32/*/*.rs vendor/windows-sys/src/Windows/Win32/*/*/*.rs vendor/windows-sys/src/Windows/Win32/*/*/*/*.rs -vendor/windows-sys-0.*/src/Windows/Win32/*.rs -vendor/windows-sys-0.*/src/Windows/Win32/*/*.rs -vendor/windows-sys-0.*/src/Windows/Win32/*/*/*.rs -vendor/windows-sys-0.*/src/Windows/Win32/*/*/*/*.rs # False-positive, audit-vendor-source automatically flags JS/C files # The below ones are OK since they're actually part of rust's own source code @@ -92,18 +105,20 @@ vendor/windows-sys-0.*/src/Windows/Win32/*/*/*/*.rs src/ci/docker/scripts/qemu-bare-bones-addentropy.c src/doc/book/*/ferris.js src/doc/book/ferris.js +src/doc/reference/src/attributes-redirect.html src/doc/rustc-dev-guide/mermaid-init.js src/etc/wasm32-shim.js -src/librustdoc/html/static/js/*.js src/librustdoc/html/static/.eslintrc.js +src/librustdoc/html/static/js/*.js src/test/auxiliary/rust_test_helpers.c +src/test/run-make-fulldeps/*/*.c src/test/run-make/*/*.c src/test/run-make/wasm-*/*.js -src/test/run-make-fulldeps/*/*.c -src/test/rustdoc-js/*.js src/test/rustdoc-js-std/*.js -src/tools/rustdoc-js/tester.js +src/test/rustdoc-js/*.js +src/tools/error_index_generator/*.js src/tools/rustdoc-gui/tester.js +src/tools/rustdoc-js/tester.js # Embedded libraries, justified in README.source vendor/dlmalloc/src/dlmalloc.c @@ -129,85 +144,85 @@ src/tools/clippy/.remarkrc vendor/elasticlunr-rs/src/lang/*.rs # False-positive, hand-editable small image -src/etc/installer/gfx/ -src/doc/embedded-book/src/assets/*.png -src/doc/embedded-book/src/assets/*.svg -src/doc/embedded-book/src/assets/f3.jpg -src/doc/embedded-book/src/assets/verify.jpeg -src/doc/nomicon/src/img/safeandunsafe.svg +src/doc/book/2018-edition/src/img/*.png +src/doc/book/2018-edition/src/img/*.svg +src/doc/book/2018-edition/src/img/ferris/*.svg src/doc/book/second-edition/src/img/*.png src/doc/book/second-edition/src/img/*.svg -src/doc/book/src/img/ferris/*.svg src/doc/book/src/img/*.png src/doc/book/src/img/*.svg -src/doc/book/2018-edition/src/img/ferris/*.svg -src/doc/book/2018-edition/src/img/*.svg -src/doc/book/2018-edition/src/img/*.png +src/doc/book/src/img/ferris/*.svg src/doc/book/tools/docx-to-md.xsl -src/doc/rustc/src/images/*.png +src/doc/embedded-book/src/assets/*.png +src/doc/embedded-book/src/assets/*.svg +src/doc/embedded-book/src/assets/f3.jpg +src/doc/embedded-book/src/assets/verify.jpeg +src/doc/nomicon/src/img/safeandunsafe.svg +src/doc/rustc-dev-guide/src/img/*.png src/doc/rustc-dev-guide/src/img/rustc_stages.svg src/doc/rustc-dev-guide/src/queries/example-0.png -src/doc/rustc-dev-guide/src/img/*.png +src/doc/rustc/src/images/*.png +src/etc/installer/gfx/ src/librustdoc/html/static/images/*.svg src/librustdoc/html/static/images/favicon-*.png src/test/mir-opt/coverage_graphviz.*.InstrumentCoverage.0.dot src/tools/rust-analyzer/assets/logo-*.svg -vendor/mdbook/src/theme/favicon.svg vendor/mdbook/src/theme/favicon.png -vendor/pretty_assertions-0.7.2/examples/*.png +vendor/mdbook/src/theme/favicon.svg +vendor/pretty_assertions/examples/*.png # Example code vendor/html5ever/examples/capi/tokenize.c vendor/sysinfo/examples/simple.c # Test data -library/portable-simd/crates/core_simd/webdriver.json +library/core/benches/str.rs +library/core/tests/num/dec2flt/parse.rs library/portable-simd/crates/core_simd/tests/mask_ops_impl/*.rs +library/portable-simd/crates/core_simd/webdriver.json library/std/src/sys/windows/path/tests.rs library/stdarch/ci/gba.json +library/stdarch/crates/std_detect/src/detect/test_data/*.auxv library/stdarch/crates/stdarch-verify/arm-intrinsics.html library/stdarch/crates/stdarch-verify/x86-intel.xml -library/stdarch/crates/std_detect/src/detect/test_data/*.auxv -library/core/benches/str.rs -library/core/tests/num/dec2flt/parse.rs -src/test/debuginfo/type-names.cdb.js -src/test/mir-opt/*.mir -src/test/mir-opt/*.diff -src/test/mir-opt/*/*.mir -src/test/mir-opt/*/*.diff -src/test/rustdoc/tuples.link2_i32.html src/test/*/*.rs -src/test/*/*.stdout -src/test/*/issues/*.rs -src/test/*/*/issue-*.rs -src/test/*/*/issues/*.rs src/test/*/*.stderr -src/test/*/*/*.rs +src/test/*/*.stdout src/test/*/*/*.json +src/test/*/*/*.rs src/test/*/*/*.stderr src/test/*/*/*.stdout -src/test/*/*/*/*.stdout src/test/*/*/*/*.stderr +src/test/*/*/*/*.stdout src/test/*/*/*/*/*.stderr -src/test/run-make/*-sgx-lvi/enclave/*/*/*.c +src/test/*/*/issue-*.rs +src/test/*/*/issues/*.rs +src/test/*/issues/*.rs +src/test/debuginfo/type-names.cdb.js +src/test/mir-opt/*.diff +src/test/mir-opt/*.mir +src/test/mir-opt/*/*.diff +src/test/mir-opt/*/*.mir src/test/run-make/*-sgx-lvi/enclave/*.c +src/test/run-make/*-sgx-lvi/enclave/*/*/*.c src/test/rustdoc/*.html +src/test/rustdoc/tuples.link2_i32.html src/test/ui/macros/not-utf8.bin src/tools/*/tests/*/*.stderr src/tools/clippy/tests/ui-toml/*/*.stderr src/tools/clippy/tests/ui-toml/large_include_file/too_big.txt src/tools/clippy/tests/ui/wildcard_enum_match_arm.fixed -src/tools/rustfmt/tests/writemode/target/*.json -src/tools/rustfmt/tests/writemode/target/*.xml -src/tools/rustfmt/tests/source/*.rs -src/tools/rustfmt/tests/source/*/*.rs -src/tools/rustfmt/tests/target/issue-5088/very_long_comment_wrap_comments_false.rs src/tools/rust-analyzer/bench_data/numerous_macro_rules -src/tools/rust-analyzer/crates/syntax/test_data/reparse/fuzz-failures/0005.rs +src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/test_data/highlight_*.html +src/tools/rust-analyzer/crates/parser/test_data/lexer/ok/* src/tools/rust-analyzer/crates/project-model/test_data/*.json src/tools/rust-analyzer/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt -src/tools/rust-analyzer/crates/parser/test_data/lexer/ok/* -src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/test_data/highlight_*.html +src/tools/rust-analyzer/crates/syntax/test_data/reparse/fuzz-failures/0005.rs +src/tools/rustfmt/tests/source/*.rs +src/tools/rustfmt/tests/source/*/*.rs +src/tools/rustfmt/tests/target/issue-5088/very_long_comment_wrap_comments_false.rs +src/tools/rustfmt/tests/writemode/target/*.json +src/tools/rustfmt/tests/writemode/target/*.xml vendor/annotate-snippets/tests/fixtures/no-color/strip_line_non_ws.toml vendor/bstr/src/unicode/data/*Test.txt vendor/cargo_metadata*/tests/test_samples.rs @@ -221,6 +236,7 @@ vendor/fluent-syntax/benches/parser.rs vendor/gimli-0*/fixtures/self/* vendor/gimli/fixtures/self/* vendor/gsgdt/tests/*.json +vendor/handlebars/tests/helper_with_space.rs vendor/html5ever/data/bench/*.html vendor/idna/tests/IdnaTest*.txt vendor/idna/tests/punycode_tests.json @@ -245,8 +261,6 @@ vendor/regex/tests/fowler.rs vendor/rustc-demangle/src/lib.rs vendor/rustc-demangle/src/v0-large-test-symbols/early-recursion-limit vendor/serde_json/tests/lexical/parse.rs -vendor/sha-1-0*/tests/data/*.bin -vendor/sha-1-0*/tests/data/*.blb vendor/sha-1/tests/data/*.blb vendor/sha2/tests/data/*.blb vendor/term/tests/data/* @@ -278,101 +292,115 @@ src/librustdoc/html/static/fonts/*.woff2 vendor/bstr/src/unicode/fsm/*.dfa # file brokenness (detected as Algol source code) -vendor/digest/src/core_api/wrapper.rs -vendor/digest/src/core_api/rt_variable.rs +compiler/rustc_apfloat/src/lib.rs +compiler/rustc_driver/src/lib.rs +compiler/rustc_expand/src/mbe/quoted.rs +compiler/rustc_macros/src/symbols/tests.rs +library/std/src/sys/unix/process/process_unix.rs +library/stdarch/crates/stdarch-verify/src/lib.rs +src/librustdoc/html/markdown/tests.rs +src/test/run-make-fulldeps/symbol-visibility/Makefile +src/test/ui/proc-macro/auxiliary/*.rs +src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs +src/tools/clippy/clippy_lints/src/pass_by_ref_or_value.rs +src/tools/clippy/src/docs/from_str_radix_10.txt +src/tools/rust-analyzer/crates/ide-assists/src/handlers/number_representation.rs +src/tools/rustfmt/src/formatting.rs +src/tools/rustfmt/src/parse/parser.rs +src/tools/rustfmt/src/string.rs vendor/ahash/src/hash_quality_test.rs +vendor/ahash/src/lib.rs +vendor/aho-corasick/src/nfa.rs +vendor/askama_shared/src/generator.rs +vendor/block-buffer/tests/mod.rs vendor/clap/src/derive.rs +vendor/compiler_builtins/libm/src/math/atan.rs +vendor/datafrog/src/lib.rs +vendor/digest/src/core_api/rt_variable.rs +vendor/digest/src/core_api/wrapper.rs +vendor/digest/src/dev.rs +vendor/env_logger-0.*/src/fmt/writer/mod.rs +vendor/env_logger/src/fmt/writer/mod.rs +vendor/flate2/src/mem.rs +vendor/flate2/src/zio.rs +vendor/futures-macro/src/lib.rs vendor/futures-macro/src/select.rs -vendor/nom/src/error.rs -vendor/nom/src/internal.rs +vendor/gimli-0.25.0/src/read/aranges.rs +vendor/gimli-0.25.0/src/read/line.rs +vendor/gimli-0.25.0/src/read/loclists.rs +vendor/gimli-0.25.0/src/read/lookup.rs +vendor/gimli-0.25.0/src/read/rnglists.rs +vendor/gimli-0.25.0/src/read/unit.rs +vendor/gimli/src/read/aranges.rs +vendor/gimli/src/read/line.rs +vendor/gimli/src/read/loclists.rs +vendor/gimli/src/read/lookup.rs +vendor/gimli/src/read/rnglists.rs +vendor/gimli/src/read/unit.rs +vendor/indoc/src/lib.rs +vendor/libm/src/math/atan.rs +vendor/miniz_oxide-0.4.0/src/deflate/mod.rs +vendor/miniz_oxide-0.4.0/src/inflate/mod.rs +vendor/miniz_oxide/src/deflate/mod.rs +vendor/miniz_oxide/src/inflate/mod.rs +vendor/nom/src/bits/complete.rs vendor/nom/src/bits/mod.rs vendor/nom/src/bits/streaming.rs -vendor/nom/src/bits/complete.rs -vendor/nom/src/bytes/streaming.rs -vendor/nom/src/bytes/complete.rs vendor/nom/src/branch/mod.rs vendor/nom/src/branch/tests.rs -vendor/nom/src/multi/tests.rs +vendor/nom/src/bytes/complete.rs +vendor/nom/src/bytes/streaming.rs +vendor/nom/src/character/complete.rs +vendor/nom/src/character/streaming.rs +vendor/nom/src/combinator/mod.rs +vendor/nom/src/combinator/tests.rs +vendor/nom/src/error.rs +vendor/nom/src/internal.rs vendor/nom/src/multi/mod.rs +vendor/nom/src/multi/tests.rs vendor/nom/src/number/complete.rs vendor/nom/src/number/streaming.rs -vendor/nom/src/combinator/tests.rs -vendor/nom/src/character/streaming.rs -vendor/nom/src/character/complete.rs vendor/nom/src/sequence/mod.rs -vendor/nom/tests/multiline.rs vendor/nom/tests/css.rs -vendor/askama_shared/src/generator.rs -vendor/block-buffer/tests/mod.rs -src/tools/rustfmt/src/parse/parser.rs -vendor/libm/src/math/atan.rs -vendor/pest/tests/calculator.rs -vendor/pest/src/position.rs +vendor/nom/tests/issues.rs +vendor/nom/tests/json.rs +vendor/nom/tests/mp4.rs +vendor/nom/tests/multiline.rs vendor/pest/src/parser_state.rs +vendor/pest/src/position.rs vendor/pest/src/span.rs -vendor/aho-corasick/src/nfa.rs -vendor/miniz_oxide/src/deflate/mod.rs -vendor/miniz_oxide/src/inflate/mod.rs -vendor/miniz_oxide-0.4.0/src/deflate/mod.rs -vendor/miniz_oxide-0.4.0/src/inflate/mod.rs -vendor/thiserror-impl/src/attr.rs -vendor/shlex/src/lib.rs -vendor/semver/src/parse.rs -vendor/rustc-rayon/tests/sort-panic-safe.rs -vendor/url/src/parser.rs -vendor/utf-8/tests/unit.rs -vendor/rustversion/src/attr.rs -vendor/env_logger/src/fmt/writer/mod.rs -vendor/env_logger-0.*/src/fmt/writer/mod.rs +vendor/pest/tests/calculator.rs vendor/pest_generator/src/generator.rs -vendor/digest/src/dev.rs vendor/proc-macro2/src/parse.rs -vendor/xz2/src/stream.rs -vendor/xz2/src/bufread.rs -vendor/digest-0.8.1/src/dev.rs -vendor/pulldown-cmark/tests/lib.rs -vendor/pulldown-cmark/src/linklabel.rs vendor/pulldown-cmark/benches/html_rendering.rs -vendor/gimli/src/read/aranges.rs -vendor/gimli/src/read/rnglists.rs -vendor/gimli/src/read/unit.rs -vendor/gimli/src/read/loclists.rs -vendor/gimli/src/read/line.rs -vendor/gimli/src/read/lookup.rs -vendor/gimli-0.25.0/src/read/aranges.rs -vendor/gimli-0.25.0/src/read/rnglists.rs -vendor/gimli-0.25.0/src/read/unit.rs -vendor/gimli-0.25.0/src/read/loclists.rs -vendor/gimli-0.25.0/src/read/line.rs -vendor/gimli-0.25.0/src/read/lookup.rs -vendor/regex-automata/src/regex.rs +vendor/pulldown-cmark/src/linklabel.rs +vendor/pulldown-cmark/tests/lib.rs vendor/rayon/tests/sort-panic-safe.rs -vendor/syn/tests/test_meta.rs -vendor/syn/src/punctuated.rs -vendor/syn/src/derive.rs -vendor/syn/src/token.rs +vendor/regex-automata/src/regex.rs +vendor/rustc-rayon/tests/sort-panic-safe.rs +vendor/rustversion/src/attr.rs +vendor/rustversion/src/lib.rs +vendor/semver/src/parse.rs +vendor/sha2/src/sha256.rs +vendor/sha2/src/sha512.rs +vendor/shlex/src/lib.rs +vendor/snap/src/compress.rs +vendor/snap/src/decompress.rs +vendor/syn/src/attr.rs +vendor/syn/src/custom_punctuation.rs vendor/syn/src/data.rs -vendor/syn/src/ty.rs -vendor/syn/src/stmt.rs +vendor/syn/src/derive.rs +vendor/syn/src/group.rs vendor/syn/src/pat.rs -vendor/syn/src/custom_punctuation.rs vendor/syn/src/path.rs -vendor/syn/src/attr.rs -vendor/syn/src/group.rs -vendor/sha2/src/sha512.rs -vendor/sha2/src/sha256.rs -vendor/compiler_builtins/libm/src/math/atan.rs -vendor/snap/src/decompress.rs -vendor/snap/src/compress.rs -vendor/flate2/src/mem.rs -vendor/flate2/src/zio.rs -compiler/rustc_expand/src/mbe/quoted.rs -compiler/rustc_macros/src/symbols/tests.rs -src/librustdoc/html/markdown/tests.rs -src/test/run-make-fulldeps/symbol-visibility/Makefile -src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs -src/tools/clippy/clippy_lints/src/pass_by_ref_or_value.rs -src/tools/rust-analyzer/crates/ide-assists/src/handlers/number_representation.rs -src/tools/rustfmt/src/string.rs -src/tools/rustfmt/src/formatting.rs -library/std/src/sys/unix/process/process_unix.rs +vendor/syn/src/punctuated.rs +vendor/syn/src/stmt.rs +vendor/syn/src/token.rs +vendor/syn/src/ty.rs +vendor/syn/tests/test_meta.rs +vendor/thiserror-impl/src/attr.rs +vendor/url/src/parser.rs +vendor/utf-8/benches/from_utf8_lossy.rs +vendor/utf-8/tests/unit.rs +vendor/xz2/src/bufread.rs +vendor/xz2/src/stream.rs |