When trying to compile NFF-Go with gollvm (go1.14.2 gollvm LLVM 11.0.00git linux/amd64) I am getting errors such as:
make -C nff-go-base
make[1]: Entering directory '/home/eglitis/nff-go/nff-go-base'
Checking for AVX support... AVX and AVX2
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/eglitis/nff-go/nff-go-base'
make -C dpdk
make[1]: Entering directory '/home/eglitis/nff-go/dpdk'
Checking for AVX support... AVX and AVX2
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/eglitis/nff-go/dpdk'
make -C test
make[1]: Entering directory '/home/eglitis/nff-go/test'
make -C stability
make -C performance
make -C stash
make -C framework
make[2]: Entering directory '/home/eglitis/nff-go/test/stability'
make[2]: Entering directory '/home/eglitis/nff-go/test/performance'
make[2]: Entering directory '/home/eglitis/nff-go/test/stash'
make[2]: Entering directory '/home/eglitis/nff-go/test/framework'
make -C testMerge
make -C testSingleWorkingFF
make -C testCksum
make -C main
make[3]: Entering directory '/home/eglitis/nff-go/test/stability/testMerge'
Checking for AVX support... AVX and AVX2make[3]: Entering directory '/home/eglitis/nff-go/test/stability/testSingleWorkingFF'
Checking for AVX support... AVX and AVX2
make[3]: Entering directory '/home/eglitis/nff-go/test/stability/testCksum'
go build -tags "" perf_light.go
go build -tags "" forwardingTestL3.go
go build -tags "" perf_main.go
go build -tags "" sendback.go
Checking for AVX support... AVX and AVX2
Checking for AVX support... AVX and AVX2
make[3]: Entering directory '/home/eglitis/nff-go/test/framework/main'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/eglitis/nff-go/test/framework/main'
Checking for AVX support... AVX and AVX2
make[2]: Leaving directory '/home/eglitis/nff-go/test/framework'
go build -tags "" perf_seq.go
go build -tags "" testMerge.go
go build -tags "" testSingleWorkingFF.go
go build -tags "" testCksum.go
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
../../mk/leaf.mk:19: recipe for target 'forwardingTestL3' failed
make[2]: *** [forwardingTestL3] Error 2
make[2]: *** Waiting for unfinished jobs....
go build -tags "" ipsec.go
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
# github.com/intel-go/nff-go/asm
../../../asm/asm.s: Assembler messages:
../../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../../asm/asm.s:13: Error: junk `(FP)' after expression
../../../asm/asm.s:13: Error: too many memory references for `movq'
../../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../../asm/asm.s:17: Error: junk `(FP)' after expression
../../../asm/asm.s:17: Error: too many memory references for `movq'
../../../asm/asm.s:18: Error: junk `(FP)' after expression
../../../asm/asm.s:18: Error: too many memory references for `movq'
../../../asm/asm.s:19: Error: junk `(FP)' after expression
../../../asm/asm.s:19: Error: too many memory references for `movq'
../../../asm/asm.s:20: Error: junk `(FP)' after expression
../../../asm/asm.s:20: Error: too many memory references for `movq'
../../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../../asm/asm.s:25: Error: too many memory references for `vpand'
../../../asm/asm.s:26: Error: too many memory references for `vptest'
../../../asm/asm.s:27: Error: junk `(FP)' after expression
../../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
../../mk/leaf.mk:19: recipe for target 'perf_light' failed
make[2]: *** [perf_light] Error 2
../../mk/leaf.mk:19: recipe for target 'sendback' failed
make[2]: *** [sendback] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/eglitis/nff-go/test/stash'
../mk/intermediate.mk:16: recipe for target 'stash' failed
make[1]: *** [stash] Error 2
make[1]: *** Waiting for unfinished jobs....
../../../mk/leaf.mk:19: recipe for target 'testCksum' failed
make[3]: *** [testCksum] Error 2
make[3]: Leaving directory '/home/eglitis/nff-go/test/stability/testCksum'
../../mk/intermediate.mk:16: recipe for target 'testCksum' failed
make[2]: *** [testCksum] Error 2
make[2]: *** Waiting for unfinished jobs....
# github.com/intel-go/nff-go/asm
../../../asm/asm.s: Assembler messages:
../../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../../asm/asm.s:13: Error: junk `(FP)' after expression
../../../asm/asm.s:13: Error: too many memory references for `movq'
../../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../../asm/asm.s:17: Error: junk `(FP)' after expression
../../../asm/asm.s:17: Error: too many memory references for `movq'
../../../asm/asm.s:18: Error: junk `(FP)' after expression
../../../asm/asm.s:18: Error: too many memory references for `movq'
../../../asm/asm.s:19: Error: junk `(FP)' after expression
../../../asm/asm.s:19: Error: too many memory references for `movq'
../../../asm/asm.s:20: Error: junk `(FP)' after expression
../../../asm/asm.s:20: Error: too many memory references for `movq'
../../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../../asm/asm.s:25: Error: too many memory references for `vpand'
../../../asm/asm.s:26: Error: too many memory references for `vptest'
../../../asm/asm.s:27: Error: junk `(FP)' after expression
../../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
# github.com/intel-go/nff-go/asm
../../../asm/asm.s: Assembler messages:
../../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../../asm/asm.s:13: Error: junk `(FP)' after expression
../../../asm/asm.s:13: Error: too many memory references for `movq'
../../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../../asm/asm.s:17: Error: junk `(FP)' after expression
../../../asm/asm.s:17: Error: too many memory references for `movq'
../../../asm/asm.s:18: Error: junk `(FP)' after expression
../../../asm/asm.s:18: Error: too many memory references for `movq'
../../../asm/asm.s:19: Error: junk `(FP)' after expression
../../../asm/asm.s:19: Error: too many memory references for `movq'
../../../asm/asm.s:20: Error: junk `(FP)' after expression
../../../asm/asm.s:20: Error: too many memory references for `movq'
../../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../../asm/asm.s:25: Error: too many memory references for `vpand'
../../../asm/asm.s:26: Error: too many memory references for `vptest'
../../../asm/asm.s:27: Error: junk `(FP)' after expression
../../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
../../mk/leaf.mk:19: recipe for target 'perf_seq' failed
make[2]: *** [perf_seq] Error 2
../../mk/leaf.mk:19: recipe for target 'perf_main' failed
make[2]: *** [perf_main] Error 2
../../../mk/leaf.mk:19: recipe for target 'testSingleWorkingFF' failed
make[3]: *** [testSingleWorkingFF] Error 2
make[3]: Leaving directory '/home/eglitis/nff-go/test/stability/testSingleWorkingFF'
../../mk/intermediate.mk:16: recipe for target 'testSingleWorkingFF' failed
make[2]: *** [testSingleWorkingFF] Error 2
../../../mk/leaf.mk:19: recipe for target 'testMerge' failed
make[3]: *** [testMerge] Error 2
make[3]: Leaving directory '/home/eglitis/nff-go/test/stability/testMerge'
../../mk/intermediate.mk:16: recipe for target 'testMerge' failed
make[2]: *** [testMerge] Error 2
make[2]: Leaving directory '/home/eglitis/nff-go/test/stability'
../mk/intermediate.mk:16: recipe for target 'stability' failed
make[1]: *** [stability] Error 2
# github.com/intel-go/nff-go/asm
../../asm/asm.s: Assembler messages:
../../asm/asm.s:6: Error: no such instruction: `text ·RteCompilerRmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:9: Error: no such instruction: `text ·RteCompilerWmb(SB),NOSPLIT,$0-0'
../../asm/asm.s:12: Error: no such instruction: `text ·Prefetcht0(SB),NOSPLIT,$0-8'
../../asm/asm.s:13: Error: junk `(FP)' after expression
../../asm/asm.s:13: Error: too many memory references for `movq'
../../asm/asm.s:16: Error: no such instruction: `text ·GenerateMask(SB),NOSPLIT,$0-33'
../../asm/asm.s:17: Error: junk `(FP)' after expression
../../asm/asm.s:17: Error: too many memory references for `movq'
../../asm/asm.s:18: Error: junk `(FP)' after expression
../../asm/asm.s:18: Error: too many memory references for `movq'
../../asm/asm.s:19: Error: junk `(FP)' after expression
../../asm/asm.s:19: Error: too many memory references for `movq'
../../asm/asm.s:20: Error: junk `(FP)' after expression
../../asm/asm.s:20: Error: too many memory references for `movq'
../../asm/asm.s:21: Error: too many memory references for `vmovdqu'
../../asm/asm.s:22: Error: too many memory references for `vmovdqu'
../../asm/asm.s:23: Error: too many memory references for `vmovdqu'
../../asm/asm.s:24: Error: too many memory references for `vpcmpeqb'
../../asm/asm.s:25: Error: too many memory references for `vpand'
../../asm/asm.s:26: Error: too many memory references for `vptest'
../../asm/asm.s:27: Error: junk `(FP)' after expression
../../asm/asm.s:27: Error: invalid instruction suffix for `sete'
../../asm/asm.s:28: Error: too many memory references for `vmovdqu'
../../mk/leaf.mk:19: recipe for target 'ipsec' failed
make[2]: *** [ipsec] Error 2
make[2]: Leaving directory '/home/eglitis/nff-go/test/performance'
../mk/intermediate.mk:16: recipe for target 'performance' failed
make[1]: *** [performance] Error 2
make[1]: Leaving directory '/home/eglitis/nff-go/test'
mk/intermediate.mk:16: recipe for target 'test' failed
make: *** [test] Error 2
When trying to compile NFF-Go with gollvm (go1.14.2 gollvm LLVM 11.0.00git linux/amd64) I am getting errors such as: