-
-
Notifications
You must be signed in to change notification settings - Fork 235
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
panic: runtime listed a std package we can't find: atomic #619
Comments
Thanks for the report. I think it's caused by this bit of code:
That would explain why you're the first to run into this issue. Our tests do build all of std for amd64, but not for mips or loong. We do have one test that ensures we can cross-build fine, but it doesn't cover all GOOS/GOARCH combinations due to cost. I'm a bit perplexed by this qualified name. There's no |
Go's package runtime/internal/atomic contains references to functions which refer to the current package by its package name alone: src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load(SB) src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load64(SB) We could only handle unqualified or fully qualified references, like: JMP ·Load64(SB) JMP runtime∕internal∕atomic·Load64(SB) Apparently, all three forms are equally valid. Add a test case and fix it. I checked whether referencing an imported package by its name worked; it does not seem to be the case. This feature appears to be restricted to the current package alone. While here, we only need goPkgPath when we need to call listPackage. Fixes burrowers#619.
Go's package runtime/internal/atomic contains references to functions which refer to the current package by its package name alone: src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load(SB) src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_loong64.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load64(SB) src/runtime/internal/atomic/atomic_mips64x.s: JMP atomic·Load64(SB) We could only handle unqualified or fully qualified references, like: JMP ·Load64(SB) JMP runtime∕internal∕atomic·Load64(SB) Apparently, all three forms are equally valid. Add a test case and fix it. I checked whether referencing an imported package by its name worked; it does not seem to be the case. This feature appears to be restricted to the current package alone. While here, we only need goPkgPath when we need to call listPackage. Fixes #619.
What version of Garble and Go are you using?
What environment are you running Garble on?
go env
OutputWhat did you do?
Running goreleaser in CICD fails
What did you expect to see?
Build.
What did you see instead?
Edit: Simpler repro:
Check out https://github.com/klauspost/compress
Compare to
go build
The text was updated successfully, but these errors were encountered: