Golang支持RISCV 32位Linux系统的实现讨论

Golang支持RISCV 32位Linux系统的实现讨论 大家好,

请问 Go 语言是否支持在 32 位 Linux 系统上的 RISC-V 架构? a) 是否有相关的支持计划? b) 如果有,预计何时可以支持(大概日期)?

谢谢

4 回复

我已经检查了RISCV-32位移植。目前看来这个移植版本尚不可用。

更多关于Golang支持RISCV 32位Linux系统的实现讨论的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


自 Go 1.14 版本起,已支持 linux/riscv64。请参阅:https://github.com/golang/go/issues/27532#issuecomment-683709237

s0xzwasd:

自 Go 1.14 版本起,已支持 linux/riscv64。请参阅:https://github.com/golang/go/issues/27532#issuecomment-683709237

它存在 RISCV-32 位端口不可用的问题。

根据 Go 语言官方支持情况,目前 Go 对 RISC-V 架构的支持主要集中在 64 位(riscv64)系统上。对于 32 位 RISC-V(riscv32)Linux 系统的官方支持尚未完全实现。

a) 目前 Go 官方尚未将 riscv32 列为一级支持架构。社区中已有相关的讨论和实验性工作,但尚未合并到主线。你可以通过 Go 的 Issue 跟踪器关注相关进展,例如 Issue #61476 等。

b) 由于缺乏明确的官方时间表,无法提供预计的支持日期。通常这类支持取决于社区贡献和硬件生态的发展。

如果你想在 riscv32 上尝试编译 Go 程序,可以尝试使用社区维护的补丁或从源码交叉编译。以下是一个从 amd64 主机交叉编译到 riscv32 的示例命令(需要相应的工具链):

# 设置目标架构和环境变量
export GOOS=linux
export GOARCH=riscv
export GOARM=7  # 对于 riscv32,可能需要特定的环境变量

# 使用 xgo 或其他工具链进行交叉编译
# 注意:这需要提前配置好 riscv32-unknown-linux-gnu 工具链
CC=riscv32-unknown-linux-gnu-gcc go build -o myapp main.go

请注意,上述命令仅为示例,实际使用时需要根据你的工具链路径和配置进行调整。建议关注 Go 官方博客和 GitHub 仓库以获取最新支持信息。

回到顶部