Skip to content

Commit

Permalink
Rollup merge of #130788 - tgross35:memchr-pinning, r=Noratrieb,Mark-S…
Browse files Browse the repository at this point in the history
…imulacrum

Pin memchr to 2.5.0 in the library rather than rustc_ast

The latest versions of `memchr` experience LTO-related issues when compiling for windows-gnu [1], so needs to be pinned. The issue is present in the standard library.

`memchr` has been pinned in `rustc_ast`, but since the workspace was recently split, this pin no longer has any effect on library crates.

Resolve this by adding `memchr` as an _unused_ dependency in `std`, pinned to 2.5. Additionally, remove the pin in `rustc_ast` to allow non-library crates to upgrade to the latest version.

Link: #127890 [1]

try-job: x86_64-mingw
try-job: x86_64-msvc
  • Loading branch information
tgross35 authored Sep 24, 2024
2 parents 3b45f8f + e95d15a commit 9bdef3c
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 4 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2177,9 +2177,9 @@ dependencies = [

[[package]]
name = "memchr"
version = "2.5.0"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"

[[package]]
name = "memmap2"
Expand Down
3 changes: 1 addition & 2 deletions compiler/rustc_ast/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ version = "0.0.0"
edition = "2021"

[dependencies]
# FIXME: bumping memchr to 2.7.1 causes linker errors in MSVC thin-lto
# tidy-alphabetical-start
bitflags = "2.4.1"
memchr = "=2.5.0"
memchr = "2.7.4"
rustc_ast_ir = { path = "../rustc_ast_ir" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_index = { path = "../rustc_index" }
Expand Down
1 change: 1 addition & 0 deletions library/Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,7 @@ dependencies = [
"hashbrown",
"hermit-abi",
"libc",
"memchr",
"miniz_oxide",
"object",
"panic_abort",
Expand Down
4 changes: 4 additions & 0 deletions library/std/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ unwind = { path = "../unwind" }
hashbrown = { version = "0.14", default-features = false, features = [
'rustc-dep-of-std',
] }
# FIXME(#127890): `object` depends on `memchr`, but `memchr` > v2.5 causes
# issues with LTO. This dependency is not used directly, but pin it here so
# it resolves to 2.5. To be removed once rust-lang/rust#127890 is fixed.
memchr = { version = "=2.5.0", default-features = false, features = ["rustc-dep-of-std"] }
std_detect = { path = "../stdarch/crates/std_detect", default-features = false, features = [
'rustc-dep-of-std',
] }
Expand Down

0 comments on commit 9bdef3c

Please sign in to comment.