summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xdebian/bin/rust-lld2
-rw-r--r--debian/changelog39
-rw-r--r--debian/control30
-rw-r--r--debian/copyright122
-rw-r--r--debian/libstd-rust-1.64.lintian-overrides13
-rw-r--r--debian/libstd-rust-1.65.install (renamed from debian/libstd-rust-1.64.install)0
-rw-r--r--debian/libstd-rust-1.65.lintian-overrides13
-rw-r--r--debian/patches/d-0000-ignore-removed-submodules.patch143
-rw-r--r--debian/patches/d-0004-clippy-feature-sync.patch8
-rw-r--r--debian/patches/d-0005-no-jemalloc.patch9
-rw-r--r--debian/patches/d-bootstrap-cargo-check-cfg.patch2
-rw-r--r--debian/patches/d-bootstrap-custom-debuginfo-path.patch2
-rw-r--r--debian/patches/d-bootstrap-disable-git.patch2
-rw-r--r--debian/patches/d-bootstrap-read-beta-version-from-file.patch2
-rw-r--r--debian/patches/d-bootstrap-rustflags.patch2
-rw-r--r--debian/patches/d-rust-lldb-paths2
-rw-r--r--debian/patches/d-rustc-add-soname.patch2
-rw-r--r--debian/patches/d-rustc-windows-ssp.patch2
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/u-arm-compiler-builtins-add-sync-builtin-fallbacks.patch223
-rw-r--r--debian/patches/u-fix-backtrace-tests.patch54
-rw-r--r--debian/patches/u-ignore-bpf-test.patch18
-rw-r--r--debian/patches/u-make-compiletest-work-without-rpath.patch187
-rw-r--r--debian/patches/u-rustc-llvm-cross-flags.patch2
-rw-r--r--debian/patches/ubuntu-Revert-Use-constant-eval-to-do-strict-validity-check.patch569
-rw-r--r--debian/patches/ubuntu-disable-ppc64el-asm-tests.patch6
-rwxr-xr-xdebian/rules11
-rw-r--r--debian/rust-lldb.links2
-rw-r--r--debian/rustc.links6
-rw-r--r--debian/upstream-tarball-unsuspicious.txt308
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