-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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 5 pull requests #134069
Closed
Closed
Rollup of 5 pull requests #134069
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
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 <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
To make it more consistent with the rest of the anchors.
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]+]] ```
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
add some debug-assertion crash tests r? ghost try-job: x86_64-gnu
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.
…Ieni CI: move `dist-arm-linux` to an ARM runner First, I want to test whether we could actually move this to a free runner, vs moving to the 8-core ARM runner. Fixes: rust-lang/infra-team#181 r? `@MarcoIeni` try-job: dist-arm-linux
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
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-infra
Relevant to the infrastructure team, which will review and decide on the PR/issue.
labels
Dec 9, 2024
@bors r+ rollup=never p=5 |
bors
added
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Dec 9, 2024
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Dec 9, 2024
Rollup of 5 pull requests Successful merges: - rust-lang#128004 (codegen `#[naked]` functions using global asm) - rust-lang#132789 (add some debug-assertion crash tests) - rust-lang#133456 (Add licenses + Run `cargo update`) - rust-lang#133853 (use vendor sources by default on dist tarballs) - rust-lang#133902 (CI: move `dist-arm-linux` to an ARM runner) r? `@ghost` `@rustbot` modify labels: rollup
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
bors
added
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
labels
Dec 9, 2024
failed because #128004 |
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
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-infra
Relevant to the infrastructure 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
)dist-arm-linux
to an ARM runner #133902 (CI: movedist-arm-linux
to an ARM runner)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup