聊一聊 dotnet 社區對 RISC-V 的支持進展
.NET 10 上周已經發布了.NET 10 Preview 4[1],2025年的開發迭代已經過半了,一起來看下.NET 10 今年對RISC-V架構的支持進展情況。我們從Github .NET 社區的相關倉庫和Issue 里通過三個方面的簡要梳理dotnet 對 RISC-V 的支持:
官方支持
截至 2025 年 5月,微軟官方的 .NET(dotnet)尚未正式支持 RISC-V 架構。官方發布版主要支持 x64、Arm64、s390x(部分平臺)等架構,龍芯團隊支持了LoongArch架構。RISC-V 目前還屬于社區實驗和探索階段,未進入官方支持路線圖。在(dotnet/runtime #36748: RISC-V support)[2]多位開發者和社區成員表達了對支持 RISC-V 的興趣,但官方團隊明確表示,RISC-V 的支持需要社區的推動、貢獻和相關維護資源。目前該 issue 標記為“Future”,說明官方不會在近期版本內支持,但會持續關注社區需求和進展。如果有足夠的社區貢獻,未來有可能納入正式支持計劃。社區移植進展
社區中有多項針對 RISC-V 的移植嘗試,主要由個人或小組驅動, issue(CoreCLR RISC-V architecture port #84834)[3]的主題是 CoreCLR 對 RISC-V 架構的移植進展總結:
當前進展:
- 已實現 CodeGen BringUp 測試在 Debug 模式下 100% 通過(在 qemu 和 StarFive VisionFive2 板上)。
- 相關 PR 部分已合并,部分尚未合并。合并后,主分支在 VisionFive2 和 qemu 上的 CodeGen BringUp 測試應全通過(VisionFive2 需暫時禁用 GC_REGIONS)。
- VisionFive2 測試結果(Debug,設置 DOTNET_GCgen0size=99999999):
- JIT 目錄:4737 個測試,4304 通過,413 失敗,20 跳過
- 所有測試:6565 個測試,5663 通過,861 失敗,41 跳過
近期計劃:
- 繼續讓 JIT 目錄下的測試在 Release/Debug/Checked 模式下全部通過
- 修復與 JIT 優化無關的 TODO
- 為 RISC-V 添加 CI,并啟用 JitDisasm 和 JitDump
- 關注更多測試目錄,爭取更多模式下通過
- 后續重點還包括庫(corefx)測試、jitstress/gcstress 等測試
近期不計劃開展的內容:
- JIT 全優化、交叉編譯(crossgen2)、SIMD/內聯優化、GC 優化、異常處理、棧遍歷、跨語言互操作優化等
工作流程:遵循官方 JIT 移植文檔,并將失敗測試按錯誤類型分類。后續會開單獨 issue 跟蹤正在處理的內容。
在 issue(RISC-V NativeAOT port)[4]用于跟蹤 .NET NativeAOT 在 riscv64 架構上的移植進展。當前內容包括:
? 主要記錄 NativeAOT 在 riscv64 上的移植工作進度。
? 移植工作基于 LA64(LoongArch64)架構的相關實現經驗。
? 提供了一個正在進行中的初步移植分支鏈接,供參考和協作:https://github.com/dotnet/runtime/compare/main...am11:runtime:feature/nativeaot/riscv64-port
? 該 issue 標注了 area-NativeAOT-coreclr 和 arch-riscv 標簽,歸屬于 Future 里程碑,尚未關閉。
? 評論數較多(200),表明社區和開發者有較多討論和參與。
- filipnavara/dotnet-riscv[5] 倉庫情況
該倉庫即為社區成員 @filipnavara 主導的 .NET RISC-V 移植項目,發布了可用的RISC-V的.NET源碼包,特點如下:
- 目標是讓 .NET 運行時(runtime)在 RISC-V 架構上可用,支持托管應用運行。
- 包含大量針對 RISC-V 架構的底層修改和補丁,涉及 coreclr、corefx 等組件。
- 項目處于實驗和開發階段,可能并不完全等同于官方主線代碼,穩定性和兼容性有限。已經發布了.NET 9 [6]以及v10.0.100-preview.1.25111.1[7]
相關鏈接:
- [1] .NET 10 Preview 4: http://www.rzrgm.cn/shanyou/p/18879388
- [2] dotnet/runtime #36748: RISC-V support:https://github.com/dotnet/runtime/issues/36748
- [3] CoreCLR RISC-V architecture port #84834: https://github.com/dotnet/runtime/issues/84834
- [4] RISC-V NativeAOT port: https://github.com/dotnet/runtime/issues/106223
- [5] filipnavara/dotnet-riscv: https://github.com/filipnavara/dotnet-riscv/
- [6] RISC-V 架構.NET 9 : https://github.com/filipnavara/dotnet-riscv/releases/tag/v9.0.101
- [7] RISC-V 架構v10.0.100-preview.1.25111.1: https://github.com/filipnavara/dotnet-riscv/releases/tag/v10.0.100-preview.1.25111.1
歡迎大家掃描下面二維碼成為我的客戶,扶你上云

浙公網安備 33010602011771號