-
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
Add x86_64-linux-kernel target #64051
Conversation
This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures.
The failing mingw-check build doesn't seem related at all. |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Looks great to me! @bors r+ |
📌 Commit 5e933b4 has been approved by |
@joshtriplett Thanks much! If we wanted to move this to tier 2, providing pre-compiled libcore, what's involved in doing that? Just hacking on the build scripts? |
⌛ Testing commit 5e933b4 with merge 3d879bbc55e6515a201fac7a78a2dbeee5f38a9f... |
💔 Test failed - checks-azure |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Test appears to have failed with:
which seems unrelated? |
Yeah, that does look entirely unrelated. @bors retry |
⌛ Testing commit 5e933b4 with merge 9b0a099c274d69bd9cb1cbbd7a967fe28c3a77d1... |
AFAIK Rust libs have to be compiled with the same PIE config as the resulting binary making xargo necessary. |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
💔 Test failed - checks-azure |
Another SSL error. |
@joshtriplett I think this can safely be |
@bors retry |
…joshtriplett Add x86_64-linux-kernel target This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures. I wasn't totally sure about what the best name for this was. There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace. r? @joshtriplett
…joshtriplett Add x86_64-linux-kernel target This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures. I wasn't totally sure about what the best name for this was. There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace. r? @joshtriplett
…joshtriplett Add x86_64-linux-kernel target This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures. I wasn't totally sure about what the best name for this was. There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace. r? @joshtriplett
Rollup of 11 pull requests Successful merges: - #62848 (Use unicode-xid crate instead of libcore) - #63774 (Fix `window.hashchange is not a function`) - #63930 (Account for doc comments coming from proc macros without spans) - #64003 (place: Passing `align` = `layout.align.abi`, when also passing `layout`) - #64030 (Fix unlock ordering in SGX synchronization primitives) - #64041 (use TokenStream rather than &[TokenTree] for built-in macros) - #64051 (Add x86_64-linux-kernel target) - #64063 (Fix const_err with `-(-0.0)`) - #64083 (Point at appropriate arm on type error on if/else/match with one non-! arm) - #64100 (Fix const eval bug breaking run-pass tests in Miri) - #64157 (Opaque type locations in error message for clarity.) Failed merges: r? @ghost
- aarch64-unknown-none: rust-lang/rust#68334 - aarch64-unknown-none-softfloat: rust-lang/rust#64589 - armv7-unknown-linux-gnueabi: rust-lang/rust#63107 - armv7-unknown-linux-musleabi: rust-lang/rust#63107 - aarch64-apple-tvos: rust-lang/rust#68191 - armv7a-none-eabihf: rust-lang/rust#68253 - i686-unknown-uefi: rust-lang/rust#64334 - thumbv7neon-unknown-linux-musleabihf: rust-lang/rust#66103 - x86_64-apple-ios-macabi: rust-lang/rust#63467 - x86_64-apple-tvos: rust-lang/rust#68191 - x86_64-linux-kernel: rust-lang/rust#64051 - x86_64-unknown-hermit-kernel: rust-lang/rust#66713 - x86_64-unknown-illumos: rust-lang/rust#71145 Moved to tier 2: - aarch64-unknown-none: rust-lang/rust#68334
I was pointed to #74247, a better place to bring this up. Sorry I'm late to the party, but is The triples/configs/whatever are a mess, but so far mentioning some OS has meant "I am running on that OS" i.e. "I have a interface[1] for communicating with that kernel and I am one of its processes". But Kernel code doesn't talk to the kernel via syscalls, and thus violates that assumption. Perhaps Something like [1] Whether the direct syscall ABI is stable, like Linux or a canonical libc is, like FreeBSD, is a separate distinction to the point I'm making. Regardless of what's stabilized internal kernel interfaces are very different than the interfaces for hosted processes. |
It was invented for Rust. I don't have a strong opinion on the correct
convention, and I'm more than happy to do whatever the Rust devs think is
best.
…On Sun, Oct 11, 2020 at 4:27 PM John Ericson ***@***.***> wrote:
Sorry I'm late to the party, but is x86_64-linux-kernel something made up
for Linux with Rust, or a preexisting convention? If it is new, I would
*strongly* prefer that it be changed.
The triples/configs/whatever are a mess, but so far mentioning some OS has
meant "I am running on that OS" i.e. "I have a interface[1] for
communicating with that kernel and I am one of its processes". But Kernel
code does talk to the kernel via syscalls, and thus *violates* that
assumption.
Perhaps #[cfg(target_os = "linux")] has been patched to be false for
this, but other tools besides rust also deal with this triples, and this
would require a new special case everywhere to handle, which is a big
maintenance burden.
Something like x86_64-unknown-linuxkernel or even x86_64-unknown-none
(the kernel is a baremetal program, after all) would be far, far preferable.
[1] Whether the direct syscall ABI is stable, like Linux or a canonical
libc is, like FreeBSD, is a separate distinction to the point I'm making.
Regardless of what's stabilized internal kernel interfaces are very
different than the interfaces for hosted processes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#64051 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAGBE5B3OTVEI7YKEWPVLSKIIK3ANCNFSM4ISVMTRA>
.
--
All that is necessary for evil to succeed is for good people to do nothing.
|
This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures.
I wasn't totally sure about what the best name for this was.
There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace.
r? @joshtriplett