-
Notifications
You must be signed in to change notification settings - Fork 4.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
Port CoreCLR PAL to linux-riscv64 #75749
Comments
For porting of this nature, |
Yup, I am using debian sid riscv64 virtual machine. They also have good documentation in their wiki: https://wiki.debian.org/RISC-V#Qemu RISC-V laptops are rumored to be available in coming weeks. :) |
Fantastic work @am11! Looking forward to seeing how far dotnet support on RISC-V goes! |
I will defer to someone with experience to take the lead. I am new to RISC-V assembly but can lend hand wherever possible. :) |
Anything left to do here? |
Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process. This process is part of our issue cleanup automation. |
@jkotas I think all is done. I'll share current pal tests status here soon. |
Current pal tests results on main 1) x64
2) riscv visionfive2 with
|
Amazing progress! Lets continue monitoring the status of overall runtime tests at #84834. Closing. |
The first component in coreclr port is the abstraction layer located at
src/coreclr/pal
. That enables us to port other components of coreclr such assrc/coreclr/vm
,src/coreclr/unwinder
and ultimatelysrc/coreclr/jit
.We have riscv64 cross-toolchain with prerequisites set up for building the runtime. Some initial strokes to port coreclr are checked into the
main
branch (cmake configurations, libunwind, a few definitions in pal.h etc.).Here is a gist for cross compilation:
The missing parts are architecture-specific assembly code under
src/coreclr/pal/src/arch/riscv64
,src/coreclr/pal/inc/unixasmmacrosriscv64.inc
among other things. We added placeholder assembly files with#error TODO-RISCV64
which can be reviewed and deleted as part of the port.Once PAL port is completed, we can copy
artifacts/bin
to riscv64 machine (or virtual machine) and run its tests to verify the state of port:$ artifacts/bin/coreclr/Linux.riscv64.Debug/paltests/runpaltests.sh \ $(pwd)/artifacts/bin/coreclr/Linux.riscv64.Debug/paltests
The text was updated successfully, but these errors were encountered: