-
Notifications
You must be signed in to change notification settings - Fork 18.1k
cmd/link: -buildmode=plugin fails on linux/arm64 #17138
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
Comments
Mysterious error and no time or easy machine access to investigate now, so disabling the -buildmode=plugin test on arm64. (The arm version is working as expected.) Updates #17138 Change-Id: I4cc56ddf47e7597213462e48d4934a765168bd07 Reviewed-on: https://go-review.googlesource.com/29363 Reviewed-by: Brad Fitzpatrick <[email protected]>
Do you know which version of gold is installed? |
If I revert 569340e it fails with:
do you know what's going on there? |
Nope, I'd have to spend some time with an arm64 machine, and I don't think I'll get to it in 1.8. I'd rather just say we haven't implemented -buildmode=plugin there yet and deal with it in 1.9. |
We haven't made a Go1.9 milestone yet, so I'll tag this 1.8Maybe with the expectation that it's likely going to get punted. |
Change https://golang.org/cl/109917 mentions this issue: |
With CL https://go-review.googlesource.com/c/go/+/109917, testplugin passes locally. It still fails on the builder with an internal error in gold.
Seems the gold linker on the builder is rather old:
On the machine where the test passes:
I wonder, could we update gold on the builder, and require a newer gold for using plugin on linux/arm64? cc @bradfitz |
The init function and runtime.addmoduledata were not added when building plugin, which caused the runtime could not find the module. Testplugin is still not enabled on linux/arm64 (https://go.googlesource.com/go/+/master/src/cmd/dist/test.go#948) because the gold linker on the builder is too old, which fails with an internal error (see issue #17138). I tested locally and it passes. Fixes #24940. Updates #17138. Change-Id: I26aebca6c38a3443af0949471fa12b6d550e8c6c Reviewed-on: https://go-review.googlesource.com/109917 Run-TryBot: Cherry Zhang <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
I'm sorry for bothering. It is unbelievable for me, I had used buildmode=plugin on linux-arm64 on our production environment for three years. I found it is not tested just now. Thanks. |
Change https://golang.org/cl/369814 mentions this issue: |
- we don't support go < 1.8. this restriction as added because plugin support requires go 1.8 or up, but with such old versions being EOL, this check was rather redundant - arm64 support for plugins was fixed in go, according to golang/go#17138 - add back arm64 support; in 6bd0710, non-amd64 was disabled, pending golang/go#17138, which was tracking arm64 support, and is now resolved. It's unclear if architectures other than amd64 and arm64 are supported, so keeping it restricted to amd64 and arm64. - enable plugin support on Windows; it was disabled in 0b44e24 but the code looks to take windows into account. Signed-off-by: Sebastiaan van Stijn <[email protected]>
- we don't support go < 1.8. this restriction as added because plugin support requires go 1.8 or up, but with such old versions being EOL, this check was rather redundant - add back arm64 support; in 6bd0710, non-amd64 was disabled, pending golang/go#17138, which was tracking arm64 support, and is now resolved. It's unclear if architectures other than amd64 and arm64 are supported, so keeping it restricted to amd64 and arm64. - enable plugin support on Windows; it was disabled in 0b44e24 but the code looks to take windows into account. Signed-off-by: Sebastiaan van Stijn <[email protected]>
- we don't support go < 1.8. this restriction as added because plugin support requires go 1.8 or up, but with such old versions being EOL, this check was rather redundant - add back arm64 support; in 6bd0710, non-amd64 was disabled, pending golang/go#17138, which was tracking arm64 support, and is now resolved. It's unclear if architectures other than amd64 and arm64 are supported, so keeping it restricted to amd64 and arm64. - enable plugin support on Windows; it was disabled in 0b44e24 but the code looks to take windows into account. Signed-off-by: Sebastiaan van Stijn <[email protected]>
- we don't support go < 1.8. this restriction as added because plugin support requires go 1.8 or up, but with such old versions being EOL, this check was rather redundant - add back arm64 support; in 6bd0710, non-amd64 was disabled, pending golang/go#17138, which was tracking arm64 support, and is now resolved. It's unclear if architectures other than amd64 and arm64 are supported, so keeping it restricted to amd64 and arm64. - enable plugin support on Windows; it was disabled in 0b44e24 but the code looks to take windows into account. Signed-off-by: Sebastiaan van Stijn <[email protected]>
At least on the builder, it tickles gold the wrong way:
Odd, as the plugin mode mostly depends on linker configuration used by either c-shared or shared.
The text was updated successfully, but these errors were encountered: