Commit 6add60c
committed
rust: Upgrade to version 1.65.0.
Pkgsrc changes:
* We now manage to build for mipsel-unknown-netbsd, but despite the
target spec saying cpu = "mips3", the compiler manages to emit 64-bit
instructions which cause "illegal instruction" error. Will need more
work. The mipsel-unknown-netbsd entry is commentd out since there
is no 1.64.0 bootstrap.
* Managed to retain the build of aarch64_be, llvm needed a patch to
avoid use of neon instructions in the BE case (llvm doesn't support
use of neon in BE mode). Ref. patch to
src/llvm-project/llvm/lib/Support/BLAKE3/blake3_impl.h.
* The minimum gcc version is now 7.x, and that includes the cross-compiler
for the targets. For i386 this also needs to /usr/include/gcc-7 include
files in the target root, because immintrin.h from gcc 5 is not
compatible with gcc 7.x. This applies for the targets where we build
against a root from netbsd-8 (sparc64, powerpc, i386), and files/gcc-wrap
gets a hack for this.
* Pick up tweak for -latomic inclusion from
rust-lang/rust#104220
and
rust-lang/rust#104572
* Retain ability to do 32-bit NetBSD, by changing from 64 to 32 bit
types in library/std/src/sys/unix/thread_parker/netbsd.rs.
* I've struggled a bit to get the "openssl-src" build with -latomic
where it's needed. I introduce "NetBSD-generic32" system type and
use it for the NetBSD mipsel target. There is another attempt to
do the same in the patch to vendor/openssl-sys/build/main.rs.
* Bump bootstraps to 1.64.0, checksum updates.
Upstream changes:
Version 1.65.0 (2022-11-03)
==========================
Language
--------
- [Error on `as` casts of enums with `#[non_exhaustive]` variants]
(rust-lang/rust#92744)
- [Stabilize `let else`](rust-lang/rust#93628)
- [Stabilize generic associated types (GATs)]
(rust-lang/rust#96709)
- [Add lints `let_underscore_drop`, `let_underscore_lock`, and
`let_underscore_must_use` from Clippy]
(rust-lang/rust#97739)
- [Stabilize `break`ing from arbitrary labeled blocks ("label-break-value")]
(rust-lang/rust#99332)
- [Uninitialized integers, floats, and raw pointers are now considered
immediate UB](rust-lang/rust#98919).
Usage of `MaybeUninit` is the correct way to work with uninitialized
memory.
- [Stabilize raw-dylib for Windows x86_64, aarch64, and thumbv7a]
(rust-lang/rust#99916)
- [Do not allow `Drop` impl on foreign ADTs]
(rust-lang/rust#99576)
Compiler
--------
- [Stabilize -Csplit-debuginfo on Linux]
(rust-lang/rust#98051)
- [Use niche-filling optimization even when multiple variants have
data] (rust-lang/rust#94075)
- [Associated type projections are now verified to be well-formed
prior to resolving the underlying type]
(rust-lang/rust#99217)
- [Stringify non-shorthand visibility correctly]
(rust-lang/rust#100350)
- [Normalize struct field types when unsizing]
(rust-lang/rust#101831)
- [Update to LLVM 15](rust-lang/rust#99464)
- [Fix aarch64 call abi to correctly zeroext when needed]
(rust-lang/rust#97800)
- [debuginfo: Generalize C++-like encoding for enums]
(rust-lang/rust#98393)
- [Add `special_module_name` lint]
(rust-lang/rust#94467)
- [Add support for generating unique profraw files by default when
using `-C instrument-coverage`]
(rust-lang/rust#100384)
- [Allow dynamic linking for iOS/tvOS targets]
(rust-lang/rust#100636)
New targets:
- [Add armv4t-none-eabi as a tier 3 target]
(rust-lang/rust#100244)
- [Add powerpc64-unknown-openbsd and riscv64-unknown-openbsd as tier 3 targets]
(rust-lang/rust#101025)
- Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
Libraries
---------
- [Don't generate `PartialEq::ne` in derive(PartialEq)]
(rust-lang/rust#98655)
- [Windows RNG: Use `BCRYPT_RNG_ALG_HANDLE` by default]
(rust-lang/rust#101325)
- [Forbid mixing `System` with direct system allocator calls]
(rust-lang/rust#101394)
- [Document no support for writing to non-blocking stdio/stderr]
(rust-lang/rust#101416)
- [`std::layout::Layout` size must not overflow `isize::MAX` when
rounded up to `align`](rust-lang/rust#95295)
This also changes the safety conditions on
`Layout::from_size_align_unchecked`.
Stabilized APIs
---------------
- [`std::backtrace::Backtrace`]
(https://doc.rust-lang.org/stable/std/backtrace/struct.Backtrace.html)
- [`Bound::as_ref`]
(https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.as_ref)
- [`std::io::read_to_string`]
(https://doc.rust-lang.org/stable/std/io/fn.read_to_string.html)
- [`<*const T>::cast_mut`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.cast_mut)
- [`<*mut T>::cast_const`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.cast_const)
These APIs are now stable in const contexts:
- [`<*const T>::offset_from`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from)
- [`<*mut T>::offset_from`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from)
Cargo
-----
- [Apply GitHub fast path even for partial hashes]
(rust-lang/cargo#10807)
- [Do not add home bin path to PATH if it's already there]
(rust-lang/cargo#11023)
- [Take priority into account within the pending queue]
(rust-lang/cargo#11032).
This slightly optimizes job scheduling by Cargo, with typically
small improvements on larger crate graph builds.
Compatibility Notes
-------------------
- [`std::layout::Layout` size must not overflow `isize::MAX` when
rounded up to `align`] (rust-lang/rust#95295).
This also changes the safety conditions on
`Layout::from_size_align_unchecked`.
- [`PollFn` now only implements `Unpin` if the closure is `Unpin`]
(rust-lang/rust#102737).
This is a possible breaking change if users were relying on the
blanket unpin implementation. See discussion on the PR for
details of why this change was made.
- [Drop ExactSizeIterator impl from std::char::EscapeAscii]
(rust-lang/rust#99880)
This is a backwards-incompatible change to the standard library's
surface area, but is unlikely to affect real world usage.
- [Do not consider a single repeated lifetime eligible for elision
in the return type] (rust-lang/rust#103450)
This behavior was unintentionally changed in 1.64.0, and this
release reverts that change by making this an error again.
- [Reenable disabled early syntax gates as future-incompatibility
lints] (rust-lang/rust#99935)
- [Update the minimum external LLVM to 13]
(rust-lang/rust#100460)
- [Don't duplicate file descriptors into stdio fds]
(rust-lang/rust#101426)
- [Sunset RLS](rust-lang/rust#100863)
- [Deny usage of `#![cfg_attr(..., crate_type = ...)]` to set the
crate type] (rust-lang/rust#99784)
This strengthens the forward compatibility lint
deprecated_cfg_attr_crate_type_name to deny.
- [`llvm-has-rust-patches` allows setting the build system to treat
the LLVM as having Rust-specific patches]
(rust-lang/rust#101072)
This option may need to be set for distributions that are building
Rust with a patched LLVM via `llvm-config`, not the built-in
LLVM.
Internal Changes
----------------
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
- [Add `x.sh` and `x.ps1` shell scripts]
(rust-lang/rust#99992)
- [compiletest: use target cfg instead of hard-coded tables]
(rust-lang/rust#100260)
- [Use object instead of LLVM for reading bitcode from rlibs]
(rust-lang/rust#98100)
- [Enable MIR inlining for optimized compilations]
(rust-lang/rust#91743)
This provides a 3-10% improvement in compiletimes for real world
crates. See [perf results]
(https://perf.rust-lang.org/compare.html?start=aedf78e56b2279cc869962feac5153b6ba7001ed&end=0075bb4fad68e64b6d1be06bf2db366c30bc75e1&stat=instructions:u).1 parent 58e7dc3 commit 6add60c
File tree
24 files changed
+509
-272
lines changed- rust
- files
- patches
24 files changed
+509
-272
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
| 198 | + | |
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | | - | |
| 205 | + | |
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
212 | | - | |
| 212 | + | |
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
219 | | - | |
| 219 | + | |
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
226 | | - | |
| 226 | + | |
227 | 227 | | |
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
233 | | - | |
| 233 | + | |
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
240 | | - | |
| 240 | + | |
241 | 241 | | |
242 | 242 | | |
243 | 243 | | |
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
265 | | - | |
| 265 | + | |
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
272 | | - | |
| 272 | + | |
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
| |||
289 | 289 | | |
290 | 290 | | |
291 | 291 | | |
292 | | - | |
| 292 | + | |
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
296 | 296 | | |
297 | 297 | | |
298 | 298 | | |
299 | | - | |
| 299 | + | |
300 | 300 | | |
301 | 301 | | |
302 | 302 | | |
| |||
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
322 | | - | |
| 322 | + | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
| |||
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
331 | | - | |
| 331 | + | |
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
340 | | - | |
| 340 | + | |
341 | 341 | | |
342 | 342 | | |
343 | 343 | | |
| |||
347 | 347 | | |
348 | 348 | | |
349 | 349 | | |
350 | | - | |
| 350 | + | |
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
| |||
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
| 359 | + | |
369 | 360 | | |
370 | 361 | | |
371 | 362 | | |
372 | 363 | | |
373 | 364 | | |
374 | 365 | | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| |||
406 | 406 | | |
407 | 407 | | |
408 | 408 | | |
409 | | - | |
| 409 | + | |
410 | 410 | | |
411 | 411 | | |
412 | | - | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
418 | 418 | | |
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
422 | 422 | | |
423 | | - | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | 423 | | |
428 | 424 | | |
429 | 425 | | |
| |||
458 | 454 | | |
459 | 455 | | |
460 | 456 | | |
461 | | - | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
462 | 464 | | |
463 | 465 | | |
464 | 466 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
0 commit comments