Skip to content
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

More riscv32-linux port work #21261

Merged
merged 8 commits into from
Sep 7, 2024
Merged

More riscv32-linux port work #21261

merged 8 commits into from
Sep 7, 2024

Conversation

alexrp
Copy link
Contributor

@alexrp alexrp commented Aug 31, 2024

With this, the full test suite passes with LLVM 19 for riscv32-linux-(none,musl,gnu). I won't enable it in CI until we've done the LLVM upgrade though.

The kernel does define the struct, it just doesn't use it. Yet both glibc and
musl expose it directly as their public stat struct, and std.c takes it from
std.os.linux. So just define it after all.
Both glibc and musl use time64 as the base ABI for riscv32. This fixes the
`sleep` test in `std.time` hanging forever due to the libc functions reading
bogus values.
This should eventually be converted to the void/{} pattern along with the other
syscalls that are compile errors for riscv32.
Copy link
Member

@andrewrk andrewrk left a comment

Choose a reason for hiding this comment

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

Thanks, nice work. I only see one merge blocker.

lib/std/os/linux.zig Outdated Show resolved Hide resolved
lib/std/time.zig Outdated Show resolved Hide resolved
This fixes the function for riscv32 where the old nanosleep() is not available.
clock_nanosleep() has been available since Linux 2.6 and glibc 2.1 anyway.
This causes so many test failures that I doubt this has been tested at all.
@alexrp
Copy link
Contributor Author

alexrp commented Sep 6, 2024

Addressed both review comments.

@andrewrk andrewrk merged commit 5f3d9e0 into ziglang:master Sep 7, 2024
10 checks passed
@alexrp alexrp deleted the riscv32 branch September 7, 2024 00:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants