You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have seen that mono supports the RISC-V architecture but cannot find anything relating to .NET 5 support for RISC-V.
Are there any plans to support said architecture on future releases of .NET like ARM64 has been added?
SiFive just announced a new powerful RISC-V development board coming out this year. Will be a number of new developers using the hardware. Might be worth looking at RISC-V support again, especially in IoT scenarios.
Reacted by Matt Luccas Phaure Jensen, Kirk, Aditya Lingam, Jeremy Nicoll, Pierce Andjelkovic, Luo Jia / Zhouqi Jiang, Philippe Parisot, Bas Magré, Antoine Viallon, Mr Beedell, Roke Julian Lockhart and 1 more
I assume that libunwind needs to be ported first to RISC-V, as coreclr depends on this library. Is this statement true? There is a closed port request libunwind/libunwind#99
I assume that libunwind needs to be ported first to RISC-V, as coreclr depends on this library. Is this statement true? There is a closed port request libunwind/libunwind#99
It looks like the support has been merged in upstream now.
Just noticed this issue and wanted to clarify something:
I have seen that mono supports the RISC-V architecture
For the record, "supports" is an overstatement here. IIRC, you can just barely run 'hello world' with the interpreter, and not much more. The JIT backend for RISC-V is like 10% done at most. There's a lot of work to be done for Mono's RISC-V support to actually be usable.
I think it would be more preferable to have vector extensions sit in the intrinsics namespace, no? And I guess by extension c# Vector type.
@archanox, what was being said has nothing to do with how or where vector support will be exposed. The question was around whether the baseline could be raised and the response was what the limiting factors preventing that are.
When RISC-V eventually gets vectorization support, it will likely be by providing xplat acceleration for the Vector<T> and Vector128<T> types first and foremost. Platform specific intrinsics may then be exposed after if there is enough benefit in doing so. There is likely still significant work in the JIT before such support could be enabled. Additionally, the core distros need to provide such support as well; and while parts of the vectorization ABI are "finalized", other parts and extensions are still in discussion and flux so the landscape isn't entirely stable and clear on direction yet.
we could also add linux-musl-riscv64 (for these: https://wiki.musl-libc.org/projects-using-musl) to the release artifacts to round things out. Happy to prep the change if that sounds good. 🙂
I don't have a way to test it but happy to accept a PR. Also, thanks for triggering the .NET 10 RTM build.
All of the riscv64 builds seems to be crossed on x86_64. Just wondering if it can be compiled natively on riscv64?
Yes, it can be compiled natively but you need a bootstrap compiler. The bootstrap compiler can either come from cross-compilation or by using earlier native build. Due to continually shifting requirements for the bootstrap compiler version it is impractical to do purely native builds. That said, I build natively when debugging or testing changes.
BTW, even x64 builds are cross-compiled in official releases because that process is quite streamlined; all we need from host is a working compiler toolchain and a few deps provided by eng/common/native/install-dependencies.sh.
Reacted by Filip Navara, Raf (Raffaele Rialdi), Gabriel B. Sant'Anna, David Burela, DongHeon Jung, Puqns67, Spacefish, Pierce Andjelkovic, Weihan Li, David and 3 more
Reacted by Danny Althoff, Tomasz Sowiński, Spacefish, Freeman, Ali Tariq , Brycen G and YohanS
What is the main blocker today, and what kind of community contribution would be most useful?
I don't know of any blocker. If you want to help, you can run various test suites in the repo and report the issues. e.g. #130562. And if you have time, feel free to debug and fix. The next bigger work item will be SIMD support #131926.
Activity
joperezr commentedon Jul 7, 2020
cc: @marek-safar
DavidBurela commentedon Nov 11, 2020
SiFive just announced a new powerful RISC-V development board coming out this year. Will be a number of new developers using the hardware. Might be worth looking at RISC-V support again, especially in IoT scenarios.
https://www.sifive.com/blog/the-heart-of-risc-v-development-is-unmatched
https://www.sifive.com/boards/hifive-unmatched
broudy3 commentedon Jan 16, 2021
I assume that libunwind needs to be ported first to RISC-V, as coreclr depends on this library. Is this statement true? There is a closed port request libunwind/libunwind#99
0xStuart commentedon Mar 24, 2021
The BL602 is gaining popularity. It's an alternative to the hugely popular ESP32 which is everywhere.
RISC-V with Wifi and Bluetooth
archanox commentedon Jul 7, 2021
It looks like the support has been merged in upstream now.
alexrp commentedon Jul 7, 2021
Just noticed this issue and wanted to clarify something:
For the record, "supports" is an overstatement here. IIRC, you can just barely run 'hello world' with the interpreter, and not much more. The JIT backend for RISC-V is like 10% done at most. There's a lot of work to be done for Mono's RISC-V support to actually be usable.
92 remaining items
archanox commentedon Nov 11, 2025
I think it would be more preferable to have vector extensions sit in the intrinsics namespace, no? And I guess by extension c# Vector type.
am11 commentedon Nov 12, 2025
https://github.com/filipnavara/dotnet-riscv/releases/tag/10.0.100-rtm.25561.199
From what I understand, the .NET team recognizes @dotnet/samsung as the designated community maintainer for the
linux-riscv64platform. Filip’s workflow leverages the same VMR repo tags (https://github.com/dotnet/dotnet/tags) used by Microsoft’s official releases to produce a compatible linux-riscv64 SDK. I’ve been running these builds on my device without any issues, they’ve been solid so far. See https://github.com/filipnavara/dotnet-riscv/blob/9cdf2e7aeddaff077e31c0455e1cc02277ef2406/.github/workflows/build.yml#L43@filipnavara, we could also add
linux-musl-riscv64(for these: https://wiki.musl-libc.org/projects-using-musl) to the release artifacts to round things out. Happy to prep the change if that sounds good. 🙂tannergooding commentedon Nov 12, 2025
@archanox, what was being said has nothing to do with how or where vector support will be exposed. The question was around whether the baseline could be raised and the response was what the limiting factors preventing that are.
When RISC-V eventually gets vectorization support, it will likely be by providing xplat acceleration for the
Vector<T>andVector128<T>types first and foremost. Platform specific intrinsics may then be exposed after if there is enough benefit in doing so. There is likely still significant work in the JIT before such support could be enabled. Additionally, the core distros need to provide such support as well; and while parts of the vectorization ABI are "finalized", other parts and extensions are still in discussion and flux so the landscape isn't entirely stable and clear on direction yet.filipnavara commentedon Nov 12, 2025
I don't have a way to test it but happy to accept a PR. Also, thanks for triggering the .NET 10 RTM build.
Xeonacid commentedon Nov 12, 2025
All of the riscv64 builds seems to be crossed on x86_64. Just wondering if it can be compiled natively on riscv64?
am11 commentedon Nov 12, 2025
Shall do. 👍
BTW, for K1 CPU based machines, the patch upstream is in progress (https://github.com/spacemit-com/linux/wiki#upstream-status). Once done, we will be able to use any riscv64 distro on those machines baremetal.
For now, I'm using Alpine Linux userland on Bianbu OS 3.0.1 sharing the host kernel. Single command setup:
To enter chroot,
~/alpine/enter-chrootfilipnavara commentedon Nov 12, 2025
Yes, it can be compiled natively but you need a bootstrap compiler. The bootstrap compiler can either come from cross-compilation or by using earlier native build. Due to continually shifting requirements for the bootstrap compiler version it is impractical to do purely native builds. That said, I build natively when debugging or testing changes.
am11 commentedon Nov 12, 2025
For the purely native build, we need this version of SDK https://github.com/dotnet/runtime/blob/main/global.json#L3, for that you can run that gh workflow and get the exact version available. I tried it once, YMMV. :)
BTW, even x64 builds are cross-compiled in official releases because that process is quite streamlined; all we need from host is a working compiler toolchain and a few deps provided by
eng/common/native/install-dependencies.sh.am11 commentedon Nov 17, 2025
New 10.0 release https://github.com/filipnavara/dotnet-riscv/releases/tag/10.0.100
--branding rtm(per @omajid's suggestion Build/tag 10.0 GA withoutrtm...version filipnavara/dotnet-riscv#11 which strips awayrtmslug from versions and NETSDK1057 preview warnings)Polaris-911 commentedon Aug 17, 2026
Hi, I’d like to understand the current .NET upstream position on official linux/riscv64 binaries.
What is the main blocker today, and what kind of community contribution would be most useful?
Thanks.
Polaris-911 commentedon Aug 31, 2026
@marek-safar Hi, I’m following up on this issue to better understand the current position on official linux/riscv64 binaries.
If this question belongs to another team or thread, I’d appreciate being pointed to the right place. Thank you.
liberodark commentedon Aug 31, 2026
Hi,
For users want other version of dotnet have created :
https://github.com/liberodark/dotnet_riscv
For help support of some packages.
PS : I would like to clarify that the versions are intended for nixpkgs support.
Best Regards
jkotas commentedon Aug 31, 2026
If by "official" you mean Linux/riscv64 binaries built and supported by the Microsoft .NET team, we have no current plans to produce such binaries.
am11 commentedon Sep 1, 2026
I don't know of any blocker. If you want to help, you can run various test suites in the repo and report the issues. e.g. #130562. And if you have time, feel free to debug and fix. The next bigger work item will be SIMD support #131926.
raffaeler commentedon Sep 1, 2026
ESP32-S31 (RISC-V) is getting official Linux support from Espressif
https://blog.adafruit.com/2026/08/25/espressif-posts-a-linux-bsp-for-the-esp32-s31/