问题描述
我正试图让 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 (将#修改为@)