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