聊一聊 dotnet 社区对 RISC-V 的支持进展

.NET 10 上周已经发布了.NET 10 Preview 4[1],2025年的开发迭代已经过半了,一起来看下.NET 10 今年对RISC-V架构的支持进展情况。我们从Github .NET 社区的相关仓库和Issue 里通过三个方面的简要梳理dotnet 对 RISC-V 的支持:

  1. 官方支持
    截至 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”,说明官方不会在近期版本内支持,但会持续关注社区需求和进展。如果有足够的社区贡献,未来有可能纳入正式支持计划。

  2. 社区移植进展
    社区中有多项针对 RISC-V 的移植尝试,主要由个人或小组驱动, issue(CoreCLR RISC-V architecture port #84834)[3]的主题是 CoreCLR 对 RISC-V 架构的移植进展总结:

    • 当前进展:

      • JIT 目录:4737 个测试,4304 通过,413 失败,20 跳过

      • 所有测试:6565 个测试,5663 通过,861 失败,41 跳过

      • 已实现 CodeGen BringUp 测试在 Debug 模式下 100% 通过(在 qemu 和 StarFive VisionFive2 板上)。

      • 相关 PR 部分已合并,部分尚未合并。合并后,主分支在 VisionFive2 和 qemu 上的 CodeGen BringUp 测试应全通过(VisionFive2 需暂时禁用 GC_REGIONS)。

      • VisionFive2 测试结果(Debug,设置 DOTNET_GCgen0size=99999999):

    • 近期计划:

      • 继续让 JIT 目录下的测试在 Release/Debug/Checked 模式下全部通过

      • 修复与 JIT 优化无关的 TODO

      • 为 RISC-V 添加 CI,并启用 JitDisasm 和 JitDump

      • 关注更多测试目录,争取更多模式下通过

      • 后续重点还包括库(corefx)测试、jitstress/gcstress 等测试

    • 近期不计划开展的内容:

      • JIT 全优化、交叉编译(crossgen2)、SIMD/内联优化、GC 优化、异常处理、栈遍历、跨语言互操作优化等

    • 工作流程:遵循官方 JIT 移植文档,并将失败测试按错误类型分类。后续会开单独 issue 跟踪正在处理的内容。

    • 相关 issue:#36748, #75749。

    • 在 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),表明社区和开发者有较多讨论和参与。

  1. 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: https://www.cnblogs.com/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值