Skip to content

use #[naked] for __rust_probestack #141992

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

Merged
merged 4 commits into from
Jun 10, 2025

Conversation

folkertdev
Copy link
Contributor

@folkertdev folkertdev commented Jun 3, 2025

Let's see if this works now.

Previously this change was in rust-lang/compiler-builtins#897, but we decided to wait until compiler-builtins was a subtree (and also cfg(bootstrap) is gone now).

r? @tgross35 cc @bjorn3

try-job: dist-various*
try-job: test-various*

@rustbot rustbot added A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 3, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jun 3, 2025

compiler-builtins is developed in its own repository. If possible, consider making this change to rust-lang/compiler-builtins instead.

cc @tgross35

@folkertdev folkertdev changed the title Probestack naked function use #[naked] for __rust_probestack Jun 3, 2025
@tgross35
Copy link
Contributor

tgross35 commented Jun 3, 2025

It will most definitely work, in-tree compiler-builtins has no CI running and it is not yet used for anything :)

@folkertdev
Copy link
Contributor Author

Me and my impatience...

Well, I'm happy to rebase this whenever to check whether things are working, and we'll see when everything is ready.

@bors
Copy link
Collaborator

bors commented Jun 5, 2025

☔ The latest upstream changes (presumably #142081) made this pull request unmergeable. Please resolve the merge conflicts.

@folkertdev folkertdev force-pushed the probestack-naked-function branch from be86dc8 to 79aa400 Compare June 5, 2025 21:34
@tgross35
Copy link
Contributor

tgross35 commented Jun 5, 2025

#141993 will be the main relevant PR here, plus hopefully having some kind of testing in-tree.

@rustbot blocked

@rustbot rustbot added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 5, 2025
@folkertdev folkertdev force-pushed the probestack-naked-function branch from 79aa400 to 6b6ad28 Compare June 9, 2025 21:29
@rust-log-analyzer

This comment has been minimized.

@folkertdev folkertdev force-pushed the probestack-naked-function branch from 6b6ad28 to a2da8e0 Compare June 9, 2025 21:50
@rust-log-analyzer

This comment has been minimized.

@folkertdev folkertdev force-pushed the probestack-naked-function branch from a2da8e0 to 601e479 Compare June 9, 2025 22:11
@tgross35
Copy link
Contributor

tgross35 commented Jun 9, 2025

I'll kick off some jobs that should cover fortanix/sgx/uefi

@bors2 try
@bors2 delegate=try

@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

⌛ Trying commit 601e479 with merge 98919d2

To cancel the try build, run the command @bors2 try cancel.

@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

@folkertdev can now perform try builds on this pull request

rust-bors bot added a commit that referenced this pull request Jun 9, 2025
use `#[naked]` for `__rust_probestack`

Let's see if this works now.

Previously this change was in rust-lang/compiler-builtins#897, but we decided to wait until `compiler-builtins` was a subtree (and also `cfg(bootstrap)` is gone now).

r? `@tgross35`  cc `@bjorn3`

try-job: `dist-various*`
try-job: `test-various*`
@tgross35 tgross35 added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-blocked Status: Blocked on something else such as an RFC or other implementation work. labels Jun 9, 2025
// Our goal here is to touch each page between %rsp+8 and %rsp+8-%rax,
// ensuring that if any pages are unmapped we'll make a page fault.
//
// This function is unsafe because it uses a custom ABI, it does not actually match `extern "C"`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mind making these FIXME(extern_c) since that should be a thing soon?

@rust-bors
Copy link

rust-bors bot commented Jun 10, 2025

☀️ Try build successful (CI)
Build commit: 98919d2 (98919d235b0bc249554b0ced4732020f6e247fe6)

Copy link
Contributor

@tgross35 tgross35 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm, mind stuffing the last commit into the first?

@tgross35
Copy link
Contributor

@bors delegate+

@bors
Copy link
Collaborator

bors commented Jun 10, 2025

✌️ @folkertdev, you can now approve this pull request!

If @tgross35 told you to "r=me" after making some further change, please make that change, then do @bors r=@tgross35

@folkertdev folkertdev force-pushed the probestack-naked-function branch from fff42eb to b030442 Compare June 10, 2025 08:13
@folkertdev
Copy link
Contributor Author

@bors r=@tgross35

@bors
Copy link
Collaborator

bors commented Jun 10, 2025

📌 Commit b030442 has been approved by tgross35

It is now in the queue for this repository.

@bors 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 Jun 10, 2025
fmease added a commit to fmease/rust that referenced this pull request Jun 10, 2025
…on, r=tgross35

use `#[naked]` for `__rust_probestack`

Let's see if this works now.

Previously this change was in rust-lang/compiler-builtins#897, but we decided to wait until `compiler-builtins` was a subtree (and also `cfg(bootstrap)` is gone now).

r? `@tgross35`  cc `@bjorn3`

try-job: `dist-various*`
try-job: `test-various*`
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 14 pull requests

Successful merges:

 - #134442 (Specify the behavior of `file!`)
 - #134841 (Look at proc-macro attributes when encountering unknown attribute)
 - #140372 (Exhaustively handle parsed attributes in CheckAttr)
 - #140766 (Stabilize keylocker)
 - #141642 (Note the version and PR of removed features when using it)
 - #141909 (Add central execution context to bootstrap)
 - #141992 (use `#[naked]` for `__rust_probestack`)
 - #142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
 - #142124 (Allow transmute casts in pre-runtime-MIR)
 - #142240 (deduplicate the rest of AST walker functions)
 - #142258 (platform-support.md: Mention specific Linux kernel version or later)
 - #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
 - #142271 (compiler: fn ptrs should hit different lints based on ABI)
 - #142288 (const_eval: fix some outdated comments)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 16 pull requests

Successful merges:

 - #134442 (Specify the behavior of `file!`)
 - #140372 (Exhaustively handle parsed attributes in CheckAttr)
 - #140766 (Stabilize keylocker)
 - #141642 (Note the version and PR of removed features when using it)
 - #141818 (Don't create .msi installer for gnullvm hosts)
 - #141909 (Add central execution context to bootstrap)
 - #141992 (use `#[naked]` for `__rust_probestack`)
 - #142101 (core::ptr: deduplicate more method docs)
 - #142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
 - #142124 (Allow transmute casts in pre-runtime-MIR)
 - #142240 (deduplicate the rest of AST walker functions)
 - #142258 (platform-support.md: Mention specific Linux kernel version or later)
 - #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
 - #142271 (compiler: fn ptrs should hit different lints based on ABI)
 - #142275 (rustdoc: Refractor `clean_ty_generics`)
 - #142288 (const_eval: fix some outdated comments)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit a55b610 into rust-lang:master Jun 10, 2025
10 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 10, 2025
rust-timer added a commit that referenced this pull request Jun 10, 2025
Rollup merge of #141992 - folkertdev:probestack-naked-function, r=tgross35

use `#[naked]` for `__rust_probestack`

Let's see if this works now.

Previously this change was in rust-lang/compiler-builtins#897, but we decided to wait until `compiler-builtins` was a subtree (and also `cfg(bootstrap)` is gone now).

r? ``@tgross35``  cc ``@bjorn3``

try-job: `dist-various*`
try-job: `test-various*`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants