-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 12 pull requests #134067
Closed
Closed
Rollup of 12 pull requests #134067
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
When upgrading [Zed](zed-industries/zed#19349) to Rust 1.82 I've encountered a test failure in our test suite. Specifically, one of our extension tests started hanging. I've tracked it down to a call to std::fs::remove_dir_all not returning when an extension is compiled with Rust 1.82 Our extension system uses WASM components, thus I've looked at the diff between 1.81 and 1.82 with respect to WASI and found 736f773 As it turned out, calling remove_dir_all from extension returned io::ErrorKind::NotFound in 1.81; the underlying issue is that the ReadDir iterator never actually terminates iteration, however since it loops around, with 1.81 we'd come across an entry second time and fail to remove it, since it would've been removed previously. With 1.82 and 736f773 it is no longer the case, thus we're seeing the hang. This commit makes ReadDir::next adhere to readdir contract, namely it will no longer call readdir once the returned # of bytes is smaller than the size of a passed-in buffer. Previously we'd only terminate the loop if readdir returned 0.
first steps of codegen for `#[naked]` functions using `global_asm!` configure external linkage if no linkage is explicitly set create a `FunctionCx` and properly evaluate consts inline attribute is no longer relevant for naked functions the naked attribute no longer needs to be set by llvm/... we're generating global asm now, so this attribute is meaningless for the codegen backend
correctly emit `.hidden` this test was added in rust-lang#105193 but actually NO_COVERAGE is no longer a thing in the compiler. Sadly, the link to the issue is broken, so I don't know what the problem was originally, but I don't think this is relevant any more with the global asm approach rename test file because it now specifically checks for directives only used by non-macos, non-windows x86_64 add codegen tests for 4 interesting platforms add codegen test for the `#[instruction_set]` attribute add test for `#[link_section]` use `tcx.codegen_fn_attrs` to get attribute info Fix rust-lang#124375 inline const monomorphization/evaluation getting rid of FunctionCx mark naked functions as `InstantiatedMode::GloballyShared` this makes sure that the function prototype is defined correctly, and we don't see LLVM complaining about a global value with invalid linkage monomorphize type given to `SymFn` remove hack that always emits `.globl` monomorphize type given to `Const` remove `linkage_directive` make naked functions always have external linkage mark naked functions as `#[inline(never)]` add test file for functional generics/const/impl/trait usage of naked functions
… it earlier, then some other logic causes invalid visibility for the item (exporting when it shouldn't).
- codegen tests: change `windows` to `win` - cleanup - fix review comments - better way of checking for thumb - get the mangled name from the codegen backend - propagate function alignment - fix gcc backend - fix asan test - check that assembler mode restored
…kage" This reverts commit 9142cae.
Signed-off-by: onur-ozkan <[email protected]>
Signed-off-by: onur-ozkan <[email protected]>
Signed-off-by: onur-ozkan <[email protected]>
we get these declarations ``` ; opt level 0 declare x86_intrcc void @page_fault_handler(ptr byval([8 x i8]) align 8, i64) unnamed_addr #1 ; opt level > 0 declare x86_intrcc void @page_fault_handler(ptr noalias nocapture noundef byval([8 x i8]) align 8 dereferenceable(8), i64 noundef) unnamed_addr #1 ``` The space after `i64` in the original regex made the regex not match for opt level 0. Removing the space fixes the issue. ``` declare x86_intrcc void @page_fault_handler(ptr {{.*}}, i64 {{.*}}){{.*}}#[[ATTRS:[0-9]+]] ```
Signed-off-by: onur-ozkan <[email protected]>
Signed-off-by: onur-ozkan <[email protected]>
…tool The full target name can be anything with custom target specs. Passing just the arch wasn't possible before cc 1.2, but is now.
codegen `#[naked]` functions using global asm tracking issue: rust-lang#90957 Fixes rust-lang#124375 This implements the approach suggested in the tracking issue: use the existing global assembly infrastructure to emit the body of `#[naked]` functions. The main advantage is that we now have full control over what gets generated, and are no longer dependent on LLVM not sneakily messing with our output (inlining, adding extra instructions, etc). I discussed this approach with `@Amanieu` and while I think the general direction is correct, there is probably a bunch of stuff that needs to change or move around here. I'll leave some inline comments on things that I'm not sure about. Combined with rust-lang#127853, if both accepted, I think that resolves all steps from the tracking issue. r? `@Amanieu` try-job: x86_64-gnu-nopt
…-remove-dir-all, r=Noratrieb wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next When upgrading [Zed](zed-industries/zed#19349) to Rust 1.82 I've encountered a test failure in our test suite. Specifically, one of our extension tests started hanging. I've tracked it down to a call to std::fs::remove_dir_all not returning when an extension is compiled with Rust 1.82 Our extension system uses WASM components, thus I've looked at the diff between 1.81 and 1.82 with respect to WASI and found 736f773 As it turned out, calling remove_dir_all from extension returned io::ErrorKind::NotFound in 1.81; the underlying issue is that the ReadDir iterator never actually terminates iteration, however since it loops around, with 1.81 we'd come across an entry second time and fail to remove it, since it would've been removed previously. With 1.82 and 736f773 it is no longer the case, thus we're seeing the hang. The tests do pass when everything but the extensions is compiled with 1.82. This commit makes ReadDir::next adhere to readdir contract, namely it will no longer call readdir once the returned # of bytes is smaller than the size of a passed-in buffer. Previously we'd only terminate the loop if readdir returned 0.
Add licenses + Run `cargo update` Replaces rust-lang#131311 try-job: dist-x86_64-linux License changes: - `unicode_ident` 1.0.14 introduces `(MIT OR Apache-2.0) AND Unicode-3.0`, but `unicode_ident` 1.0.12 (`(MIT OR Apache-2.0) AND Unicode-DFS-2016`) is still in tree - `instant` and its license exception are no longer used ``` compiler & tools dependencies: Updating allocator-api2 v0.2.18 -> v0.2.20 Updating anyhow v1.0.92 -> v1.0.93 Removing bitflags v1.3.2 Updating blake3 v1.5.4 -> v1.5.5 Updating bstr v1.10.0 -> v1.11.0 Updating bytes v1.8.0 -> v1.9.0 Updating cargo-platform v0.1.8 -> v0.1.9 Updating cc v1.2.0 -> v1.2.2 Updating clap v4.5.20 -> v4.5.21 Updating clap_builder v4.5.20 -> v4.5.21 Updating clap_complete v4.5.36 -> v4.5.38 Updating clap_lex v0.7.2 -> v0.7.3 Updating color-print v0.3.6 -> v0.3.7 Updating color-print-proc-macro v0.3.6 -> v0.3.7 Updating cpufeatures v0.2.14 -> v0.2.16 Updating curl-sys v0.4.77+curl-8.10.1 -> v0.4.78+curl-8.11.0 Updating errno v0.3.9 -> v0.3.10 Updating fastrand v2.1.1 -> v2.2.0 Updating flate2 v1.0.34 -> v1.0.35 Updating handlebars v5.1.2 -> v6.2.0 Adding icu_collections v1.5.0 Adding icu_normalizer v1.5.0 Adding icu_normalizer_data v1.5.0 Adding icu_properties v1.5.1 Adding icu_properties_data v1.5.0 Updating idna v0.5.0 -> v1.0.3 Adding idna_adapter v1.2.0 Updating indexmap v2.6.0 -> v2.7.0 Updating indicatif v0.17.8 -> v0.17.9 Removing instant v0.1.13 Updating itoa v1.0.11 -> v1.0.14 Updating js-sys v0.3.72 -> v0.3.74 Updating libc v0.2.164 -> v0.2.167 Updating libloading v0.8.5 -> v0.8.6 Updating litemap v0.7.3 -> v0.7.4 Updating mdbook v0.4.40 -> v0.4.43 Adding num-modular v0.6.1 Adding num-order v1.2.0 Updating pathdiff v0.2.2 -> v0.2.3 Updating portable-atomic v1.9.0 -> v1.10.0 Updating proc-macro2 v1.0.89 -> v1.0.92 Updating regex-automata v0.4.8 -> v0.4.9 Updating rustc-hash v2.0.0 -> v2.1.0 Updating rustc_apfloat v0.2.1+llvm-462a31f5a5ab -> v0.2.2+llvm-462a31f5a5ab Updating rustix v0.38.38 -> v0.38.41 Updating schannel v0.1.26 -> v0.1.27 Updating serde v1.0.214 -> v1.0.215 Updating serde_derive v1.0.214 -> v1.0.215 Updating serde_json v1.0.132 -> v1.0.133 Updating socket2 v0.5.7 -> v0.5.8 Updating spdx v0.10.6 -> v0.10.7 Updating syn v2.0.87 -> v2.0.90 Updating tempfile v3.13.0 -> v3.14.0 Updating terminal_size v0.4.0 -> v0.4.1 Updating thiserror v1.0.66 -> v1.0.69 (available: v2.0.3) Updating thiserror-impl v1.0.66 -> v1.0.69 Updating tokio v1.41.0 -> v1.41.1 Updating tracing-attributes v0.1.27 -> v0.1.28 Updating tracing-error v0.2.0 -> v0.2.1 Removing unicode-bidi v0.3.17 Updating unicode-ident v1.0.13 -> v1.0.14 Updating url v2.5.2 -> v2.5.4 Adding utf16_iter v1.0.5 Adding utf8_iter v1.0.4 Updating wasm-bindgen v0.2.95 -> v0.2.97 Updating wasm-bindgen-backend v0.2.95 -> v0.2.97 Updating wasm-bindgen-macro v0.2.95 -> v0.2.97 Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97 Updating wasm-bindgen-shared v0.2.95 -> v0.2.97 Updating wasm-encoder v0.220.0 -> v0.221.0 Adding wasmparser v0.221.0 Updating wast v219.0.1 -> v221.0.0 Updating wat v1.219.1 -> v1.221.0 Adding web-time v1.1.0 Adding write16 v1.0.0 Updating yoke v0.7.4 -> v0.7.5 Updating yoke-derive v0.7.4 -> v0.7.5 Updating zerofrom v0.1.4 -> v0.1.5 Updating zerofrom-derive v0.1.4 -> v0.1.5 library dependencies: Updating allocator-api2 v0.2.18 -> v0.2.20 Updating cc v1.2.0 -> v1.2.2 Updating libc v0.2.162 -> v0.2.164 Updating unwinding v0.2.3 -> v0.2.4 rustbook dependencies: Updating anstream v0.6.17 -> v0.6.18 Updating anyhow v1.0.92 -> v1.0.93 Updating bstr v1.10.0 -> v1.11.0 Updating cc v1.2.0 -> v1.2.2 Updating clap v4.5.20 -> v4.5.21 Updating clap_builder v4.5.20 -> v4.5.21 Updating clap_complete v4.5.36 -> v4.5.38 Updating clap_lex v0.7.2 -> v0.7.3 Updating cpufeatures v0.2.14 -> v0.2.16 Adding displaydoc v0.2.5 Updating errno v0.3.9 -> v0.3.10 Updating fastrand v2.1.1 -> v2.2.0 Updating flate2 v1.0.34 -> v1.0.35 Updating hashbrown v0.15.0 -> v0.15.2 Adding icu_collections v1.5.0 Adding icu_locid v1.5.0 Adding icu_locid_transform v1.5.0 Adding icu_locid_transform_data v1.5.0 Adding icu_normalizer v1.5.0 Adding icu_normalizer_data v1.5.0 Adding icu_properties v1.5.1 Adding icu_properties_data v1.5.0 Adding icu_provider v1.5.0 Adding icu_provider_macros v1.5.0 Updating idna v0.5.0 -> v1.0.3 Adding idna_adapter v1.2.0 Updating indexmap v2.6.0 -> v2.7.0 Updating itoa v1.0.11 -> v1.0.14 Updating js-sys v0.3.72 -> v0.3.74 Updating libc v0.2.161 -> v0.2.167 Adding litemap v0.7.4 Updating mdbook v0.4.42 -> v0.4.43 Updating pathdiff v0.2.2 -> v0.2.3 Updating proc-macro2 v1.0.89 -> v1.0.92 Updating regex-automata v0.4.8 -> v0.4.9 Updating rustix v0.38.38 -> v0.38.41 Updating serde v1.0.214 -> v1.0.215 Updating serde_derive v1.0.214 -> v1.0.215 Updating serde_json v1.0.132 -> v1.0.133 Adding stable_deref_trait v1.2.0 Updating syn v2.0.87 -> v2.0.90 Adding synstructure v0.13.1 Updating tempfile v3.13.0 -> v3.14.0 Updating terminal_size v0.4.0 -> v0.4.1 Updating thiserror v1.0.66 -> v1.0.69 Updating thiserror-impl v1.0.66 -> v1.0.69 Adding tinystr v0.7.6 Removing tinyvec v1.8.0 Removing tinyvec_macros v0.1.1 Removing unicode-bidi v0.3.17 Updating unicode-ident v1.0.13 -> v1.0.14 Removing unicode-normalization v0.1.24 Updating url v2.5.2 -> v2.5.4 Adding utf16_iter v1.0.5 Adding utf8_iter v1.0.4 Updating wasm-bindgen v0.2.95 -> v0.2.97 Updating wasm-bindgen-backend v0.2.95 -> v0.2.97 Updating wasm-bindgen-macro v0.2.95 -> v0.2.97 Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97 Updating wasm-bindgen-shared v0.2.95 -> v0.2.97 Adding write16 v1.0.0 Adding writeable v0.5.5 Adding yoke v0.7.5 Adding yoke-derive v0.7.5 Adding zerofrom v0.1.5 Adding zerofrom-derive v0.1.5 Adding zerovec v0.10.4 Adding zerovec-derive v0.10.3 ```
…-dist-build, r=Kobzol use vendor sources by default on dist tarballs Tarball sources are distributed with vendor sources along with the `.cargo/config.toml` file configured for vendor sources. This means we can use vendor sources by default unless explicitly disabled with `build.vendor=false` by the user. So, let's do that.
…enton Pass the arch rather than full target name to windows_registry::find_tool The full target name can be anything with custom target specs. Passing just the arch wasn't possible before cc 1.2, but is now thanks to rust-lang/cc-rs#1285. try-job: i686-mingw
…ouxu [AIX] Pass -bnoipath when adding rust upstream dynamic crates Unlike ELF linkers, AIX doesn't feature `DT_SONAME` to override the dependency name when outputing a shared library, which is something we rely on for dylib crates. See for reference: https://github.com/rust-lang/rust/blob/bc145cec4565a97a1b08df52d26ddf48ce3d7d0a/compiler/rustc_codegen_ssa/src/back/linker.rs#L464) Thus, `ld` on AIX will use the full path to shared libraries as the dependency if passed it by default unless `noipath` is passed, so pass it here so we don't end up with full path dependencies for dylib crates.
[AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX On AIX, the `sa_sigaction` member of `struct sigaction` is accessed as the union member `sa_union.__su_sigaction`.
[AIX] Remove option "-n" from AIX "ln" command The option `-n` for the AIX `ln` command has a different purpose than it does on Linux. On Linux, the `-n` option is used to treat the destination path as normal file if it is a symbolic link to a directory, which is the default behavior of the AIX `ln` command.
…eyouxu Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs` Tests for the closely-related `-l` flag and `#[link(..)]` attribute are spread across a few different directories, and in some cases have ended up in a test directory intended for other linker-related functionality. This PR moves most of them into a single `tests/ui/link-native-libs` directory. --- Part of rust-lang#133895. try-job: i686-mingw r? jieyouxu
…n, r=jieyouxu Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that. This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable. Fixes rust-lang#134015
handle cygwin environment in `install::sanitize_sh` Resolves rust-lang#132507
…llaumeGomez rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 10) Follow up rust-lang#130287 et al As always, it's easier to review the commits one at a time. Don't use the Files Changed tab. It's confusing.
rustbot
added
A-run-make
Area: port run-make Makefiles to rmake.rs
A-testsuite
Area: The testsuite used to check the correctness of rustc
O-wasi
Operating system: Wasi, Webassembly System Interface
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
T-rustdoc
Relevant to the rustdoc team, which will review and decide on the PR/issue.
rollup
A PR which is a rollup
labels
Dec 9, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-run-make
Area: port run-make Makefiles to rmake.rs
A-testsuite
Area: The testsuite used to check the correctness of rustc
O-wasi
Operating system: Wasi, Webassembly System Interface
rollup
A PR which is a rollup
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
T-rustdoc
Relevant to the rustdoc team, which will review and decide on the PR/issue.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Successful merges:
#[naked]
functions using global asm #128004 (codegen#[naked]
functions using global asm)cargo update
#133456 (Add licenses + Runcargo update
)-l
and#[link(..)]
intotests/ui/link-native-libs
#133996 (Move most tests for-l
and#[link(..)]
intotests/ui/link-native-libs
)AsyncFnOnce::CallOnceFuture
bounds for signature deduction #134017 (Don't useAsyncFnOnce::CallOnceFuture
bounds for signature deduction)install::sanitize_sh
#134023 (handle cygwin environment ininstall::sanitize_sh
)issue-\d+.rs
tests to have meaningful names (part 10) #134053 (rustdoc: renameissue-\d+.rs
tests to have meaningful names (part 10))r? @ghost
@rustbot modify labels: rollup
Create a similar rollup