Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gccgo: rkt doesn't build compile with gccgo, builds fine with gc #28670

Open
glaubitz opened this issue Nov 8, 2018 · 1 comment

Comments

@glaubitz
Copy link

commented Nov 8, 2018

Trying to build rkt with gccgo fails with:

  GO           github.com/rkt/rkt/rkt
go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags
# github.com/rkt/rkt/common
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/common/common.go:530:3: error: goarm is not a function; //go:linkname is only supported for functions
 //go:linkname goarm runtime.goarm
   ^
# github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s: Assembler messages:
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:6: Error: no such instruction: `text ·crc32sse(SB),7,$0'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:7: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:7: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:8: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:11: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:11: Error: no such instruction: `byte $0x41'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:11: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:12: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:12: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:12: Error: no such instruction: `byte $0x1a'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:14: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:18: Error: no such instruction: `text ·crc32sseAll(SB),7,$0'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:19: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:19: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:20: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:20: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:21: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:21: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:25: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:28: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:30: Error: too many memory references for `test'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:34: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:35: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:36: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:37: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:38: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:40: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:41: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:44: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:47: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:47: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:48: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:48: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:48: Error: no such instruction: `byte $0xd8'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:51: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:51: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:52: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:52: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:52: Error: no such instruction: `byte $0xd1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:55: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:55: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:56: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:56: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:56: Error: no such instruction: `byte $0xfe'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:57: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:58: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:59: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:61: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:62: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:65: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:65: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:66: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:66: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:66: Error: no such instruction: `byte $0xd8'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:67: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:71: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:76: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:79: Error: no such instruction: `byte $0xF2'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:79: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:80: Error: no such instruction: `byte $0x38'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:80: Error: no such instruction: `byte $0xf1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:80: Error: no such instruction: `byte $0xd8'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:82: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:85: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:94: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:98: Error: no such instruction: `text ·matchLenSSE4(SB),7,$0'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:99: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:99: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:100: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:100: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:101: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:101: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:102: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:103: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:108: Error: too many memory references for `test'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:112: Error: no such instruction: `movou (SI),X0'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:113: Error: no such instruction: `movou (DI),X1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:117: Error: no such instruction: `byte $0x66'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:117: Error: no such instruction: `byte $0x0f'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:117: Error: no such instruction: `byte $0x3a'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:118: Error: no such instruction: `byte $0x61'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:118: Error: no such instruction: `byte $0xc1'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:118: Error: no such instruction: `byte $0x18'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:131: Error: too many memory references for `test'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:133: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:134: Error: too many memory references for `add'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:146: Error: too many memory references for `sub'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:148: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:152: Error: too many memory references for `add'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:155: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:159: Error: no such instruction: `text ·histogram(SB),7,$0'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:160: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:160: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:161: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:161: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:162: Error: junk `(FP)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:162: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:163: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:166: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:169: Error: too many memory references for `movq'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:171: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:172: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:175: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:176: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:179: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:180: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:183: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:184: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:187: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:188: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:191: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:192: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:195: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:196: Error: junk `(R11*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:199: Error: junk `(R10*4)' after expression
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:208: Error: too many memory references for `xor'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:211: Error: too many memory references for `mov'
build-rkt-1.30.0+git/gopath/src/github.com/rkt/rkt/vendor/github.com/klauspost/compress/flate/crc32_amd64.s:212: Error: junk `(R10*4)' after expression
make: *** [makelib/build_go_bin.mk:57: /local_scratch/glaubitz/rkt/build-rkt-1.30.0+git/target/bin/rkt] Error 2

Tested with rkt from https://github.com/rkt/rkt, configured with --disable-tpm --disable-sdjournal

@gopherbot gopherbot added this to the Gccgo milestone Nov 8, 2018

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Nov 9, 2018

Thanks. Programs that contain assembly code don't build with both gc and gccgo. That is because gc uses a non-standard assembly syntax based on the Plan 9 assembler, and also uses a non-standard calling convention. Assembler code written for gc won't work with gccgo.

Fortunately this code has a non-assembler version, so it should be possible to use that with the gccgo build tag. I'll look into that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.