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 |
|
Compiler changes look contained to l4re, so I'm inclined to approve as soon as the library comments are addressed. |
|
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. |
This comment has been minimized.
This comment has been minimized.
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.
|
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. |
|
@joboet or @saethlin: I found out the issue why it failed - it was a pre-existing code structuring problem that just faced now due to my changes:
|
|
@bors try jobs=dist-various-2 |
This comment has been minimized.
This comment has been minimized.
Revive L4Re target try-job: dist-various-2
|
💔 Test for 983bc76 failed: CI. Failed job:
|
|
The job Click to see the possible cause of the failure (guessed by this bot) |
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.