Revive L4Re target - #150885
Conversation
|
Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb These commits modify the If this was unintentional then you should revert the changes before this PR is merged. These commits modify compiler targets. |
This comment has been minimized.
This comment has been minimized.
|
Some changes occurred in compiler/rustc_codegen_cranelift cc @bjorn3 rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead. cc @rust-lang/rust-analyzer Some changes occurred in src/tools/clippy cc @rust-lang/clippy Some changes occurred in compiler/rustc_codegen_gcc Some changes occurred in GUI tests. Some changes occurred in compiler/rustc_attr_parsing Some changes occurred in HTML/CSS/JS. |
This comment has been minimized.
This comment has been minimized.
|
Wrong rebase. |
This comment has been minimized.
This comment has been minimized.
|
Sorry for rebasing on an old commit by mistake |
This comment has been minimized.
This comment has been minimized.
|
☔ The latest upstream changes (presumably #151107) made this pull request unmergeable. Please resolve the merge conflicts. |
There was a problem hiding this comment.
Does L4Re truly not support networking? All the necessary functions seem to be available in libc. What happens if you remove the L4Re special case from sys/net/connection/mod.rs?
There was a problem hiding this comment.
Regarding the libc functions: L4Re's uclibc adaptation has a variety of these function which will when called just return an error or a disabled status code. I decided to put these in the libc crate because that should imo just bluntly mirror the functions when they exist, no matter if they are somehow disabled.
| #[allow(deprecated)] | ||
| fn as_raw_stat(&self) -> &raw::stat { | ||
| unsafe { &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat) } | ||
| panic!("as_raw_stat not supported for L4Re"); |
There was a problem hiding this comment.
How that? stat does appear in libc.
There was a problem hiding this comment.
You're right, I'll change it back.
|
Thanks for having a look! I realised that I need to disable some std tests for the std test suite to run through, I will make a small update to this PR this or next week. Regarding networking (and to a somewhat lesser extent for fs): We do have initial support but that's opt-in and likely about to change, therefore we decided that this should be/stay disabled for now. |
|
I'm just a bit worried about this removing the stable |
|
@rustbot author |
|
Any special-casing of Miri in the standard library requires review. cc @rust-lang/miri |
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
Rebased and moved to libc v. 0.2.189 for std because it includes important updates for L4Re. |
| @@ -1,6 +1,10 @@ | |||
| fn main() { | |||
| // No `Command` on Miri and emscripten | |||
There was a problem hiding this comment.
This comment needs updating.
3126dcf to
af5aece
Compare
|
@joboet if you don't have the time to do the review, would you mind recommending or directly assigning a new reviewer for it? |
|
r? compiler |
|
Compiler changes look contained to l4re, so I'm inclined to approve as soon as the library comments are addressed. |
Fixes the builds of rustc and library/std for the L4Re target OS. A major change was done in linking binaries: The need for the L4Bender tool was removed and linking parameters are now fully configured in the rustc target config.
|
Yeah, thanks for the review :) I fixed the two comments. |
Revive L4Re target This revives the target for the L4Re OS. It changes the way, linking is done and adds aarch64 support and documentation including a maintainer for the target. The update of the libc crate is necessary since only in 0.2.179 and higher is the fixed support for L4Re on uclibc.
Rollup of 14 pull requests Successful merges: - #159817 (Rename splat to avoid stable name collisions) - #160204 (Sync from portable simd 2026 07 30) - #150885 (Revive L4Re target) - #158057 (Don't escape U+FF9E and U+FF9F in `escape_debug_ext`) - #160125 (Fix typing mode handling in transmute checks and rustc_dump_layout) - #160152 (Create on-demand CI job for testing EC2 instances) - #159214 (std: improve the documentation of the random feature) - #159818 (Resolve vars before calling `unnormalized_obligations`) - #160040 (Split function parsing out of `item.rs` to a new module.) - #160044 (Add regression tests for fixed dead-code issues) - #160144 (renovate: group lockfiles PRs) - #160149 (Fix Windows on Arm PAC default) - #160175 (Try to recover less from incorrectly parsed const arg) - #160181 (Mark `Tuple` and `FnPtr` traits `#[fundamental]`)
|
💔 I suspect this PR failed tests as part of a rollup After fixing the problem, consider running a try job for the failed job before re-approving. Link to failure: #160222 (comment) |
|
This pull request was unapproved. This PR was contained in a rollup (#160222), which was unapproved. |
|
☔ The latest upstream changes (presumably #160238) made this pull request unmergeable. Please resolve the merge conflicts by rebasing. |
View all comments
This revives the target for the L4Re OS. It changes the way, linking is done and adds aarch64 support and documentation including a maintainer for the target.
The update of the libc crate is necessary since only in 0.2.179 and higher is the fixed support for L4Re on uclibc.