获取 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

这可能是:

  1. Quark 有 256MB 的内存,可执行文件是 127MB,也许内存不够?
  2. 夸克有一个众所周知的错误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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...