英文:
Go: Not running on powerpc64 (big-endian)
问题
我已经为 PowerPC 64 机器下载了 GO 包(ppc64)。当我运行 go 命令时,它抛出以下错误:
./go: line 1:ELF▒9@p@8: not found
./go: line 2: syntax error: unexpected ")"
机器信息如下:
uname -a
Linux 0005B9427C4C 3.12.19-rt30 #1 SMP Sun Jul 2 16:21:28 IST 2017 ppc64 GNU/Linux
从 /proc/cpuinfo 中可以看到:
processor : 0
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 1
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 2
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 3
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 4
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 5
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 6
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 7
cpu : e6500, 支持 altivec
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
timebase : 41666666
platform : CoreNet Generic
model : fsl,B4860QDS
我已经从 https://golang.org/dl/ 下载了 go1.8.3.linux-ppc64le.tar.gz 包。
我已经搜索了很多但是找不到任何解决方案。你能告诉我出了什么问题吗?如何修复它?
英文:
I have downloaded the GO package(ppc64) for the PowerPC 64 machine.When I run the go it throws the following error:
./go: line 1:ELF▒9@p@8: not found
./go: line 2: syntax error: unexpected ")"
Machine information is like below,
uname -a
Linux 0005B9427C4C 3.12.19-rt30 #1 SMP Sun Jul 2 16:21:28 IST 2017 ppc64 GNU/Linux
From /proc/cpuinfo:
processor : 0
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 1
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 2
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 3
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 4
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 5
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 6
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 7
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
timebase : 41666666
platform : CoreNet Generic
model : fsl,B4860QDS
I have downloaded the go1.8.3.linux-ppc64le.tar.gz package from https://golang.org/dl/.
I have searched a lot but could not find any solution. Can you tell me what is going wrong?How to fix it?
答案1
得分: 1
您的内核报告了ppc64
架构。这意味着它是64位的大端模式POWER架构。Go项目只发布了ppc64le
(64位的小端模式POWER架构)构建版本:Go稳定版下载只提供了一个go1.8.3.linux-ppc64le.tar.gz
的下载。
Go源代码包含了一个64位的大端模式POWER端口,但您需要自己编译它。(但这绝对是一条不常走的路,所以您可能会遇到问题。)请注意,即使是自己编译的版本,Go 1.9也需要POWER8,所以根据您拥有的硬件,即使是自己编译的版本也可能是个死胡同。(/proc/cpuinfo
输出中的e6500
表明该平台不兼容POWER8。)
另一个选择是GCC Go编译器(gccgo
)。这个Go编译器可以与许多GCC目标一起使用,并且有很大的可能性在可预见的未来得到支持。然而,很少有Go程序员关心gccgo
,所以您可能会遇到一些无法与其一起使用的包。
英文:
Your kernel reports the ppc64
architecture. This means it is 64-bit POWER in big endian mode. The Go project only publishes ppc64le
(64-bit POWER in little endian mode) builds: Go stable downloads only offers a go1.8.3.linux-ppc64le.tar.gz
download.
The Go sources contain a 64-bit POWER big-endian port, but you need to compile it yourself. (But this is definitely off the beaten path, so you might run into issues.) Note that Go 1.9 will require POWER8 even in big-endian mode, so depending on the hardware you have, even a self-compiled version could be a dead-end. (e6500
in the /proc/cpuinfo
output suggests that this platform is not POWER8-compatibile.)
Another option is the GCC Go compiler (gccgo
). This Go compiler will work with many GCC targets, and the chances are good that it will remain supported to some degree in the foreseeable future. However, few Go programmers care about gccgo
, so you might encounter packages which do not work with it.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论