gccgo上用于solaris / sparc的filebeat / libbeat编译器

时间:2018-07-17 14:14:48

标签: go solaris elastic-stack filebeat gccgo

我正在驱动编译用于太阳能/ SPARC环境的项目文件。正式地,Solaris不支持Elastic工具。

Neamoins,对此问题有规避措施,可以通过gccgo进行编译。我实际上准备了我的gccgo编译器。我可以编译一个小项目(使用单个文件hello.go),如下所示。但是,一旦我尝试编译filebeat项目,它就无法工作。可能是依赖的问题。我不太了解。如果有人可以帮助我。谢谢

inspired link here

Commande:构建--compiler gccgo --gccgoflags“ -v -static-libgo -Wl,-dy -lnsl -lsocket -lrt -lsendfile”

示例1:

xxxx@ubuntu:~/Documents/GCC$ cat hello.go
package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

morosus@ubuntu:~/Documents/GCC$ gccgo -m64 -v -static-libgo -o hello hello.go
-Wl,-dy -lnsl -lsocket -lrt -lsendfile
Using built-in specs.
COLLECT_GCC=gccgo
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/8.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
   elf64_sparc
COLLECT_GCC_OPTIONS='-m64' '-v' '-o' 'hello' '-shared-libgcc'
xxxxxx@ub

效果很好 但是

示例2

 xxxx@ubuntu:~/go/src/github.com/elastic/beats/filebeat$ go build --compiler gccgo --gccgoflags "-v -static-libgo -Wl,-dy -lnsl -lsocket -lrt -lsendfile"
# github.com/elastic/beats/libbeat/plugin
../libbeat/plugin/load.go:25:2: error: import file ‘plugin’ not found
  goplugin "plugin"
  ^
../libbeat/plugin/load.go:29:12: error: reference to undefined name ‘goplugin’
  p, err := goplugin.Open(path)
            ^
# github.com/elastic/beats/vendor/github.com/elastic/go-seccomp-bpf
../vendor/github.com/elastic/go-seccomp-bpf/seccomp_linux.go:59:22: error: reference to undefined identifier ‘syscall.SockFprog’
  program := &syscall.SockFprog{

那就是我被困住的地方

谢谢

0 个答案:

没有答案