如何解决获取 Go 可执行文件 (hugo) 以运行 Intel Galileo/Quark
我正试图让 Hugo 在我的英特尔伽利略(Quark cpu)上运行的 Alpine 发行版上工作。
我已经克服了一些障碍。
这个 cpu 没有 MMX,所以需要 gcc-go 将 Hugo 编译成二进制文件(在虚拟机中)
但是在将 Hugo 二进制文件复制到伽利略之后,Hugo 不起作用。我收到以下错误:
Fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x44 pc=0xb7658e62]
goroutine 1 [running]:
runtime.dopanic_m
:0
runtime.throw
:0
runtime.sigpanic
:0
runtime.sigtrampgo
:0
runtime.sigtramp
:0
:0
goroutine 4 [select]:
go.x2eopencensus.x2eio..z2fstats..z2fview.worker.start
/root/go/pkg/mod/go.opencensus.io@v0.22.0/stats/view/worker.go:154
created by go.x2eopencensus.x2eio..z2fstats..z2fview.go.x2eopencensus.x2eio..z2fstats..z2fview..init0
/root/go/pkg/mod/go.opencensus.io@v0.22.0/stats/view/worker.go:32 +0x17a
这可能是:
- Quark 有 256MB 的内存,可执行文件是 127MB,也许内存不够?
- 夸克有一个众所周知的错误。 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=738575%22 这意味着它错误地处理了 LOCK 指令并导致了段错误。
在普通的 C 工具链上,汇编器可以使用 "-Xassembler '-momit-lock-prefix=yes'" CFLAG (galileo 是单核所以不需要)
但是,我不确定 go build
工具链上的等效项是什么,也许根本不可能?
编译后的二进制文件在虚拟机中完美运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。