-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: failure to getPageSize on netbsd-386 #22914
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
If we don't get netbsd-386 working again, we'll just document it in the release notes. That is #22911. At least having any NetBSD working again would be an improvement. (Go 1.9 didn't run on NetBSD at all.) |
Debugging this would be easier once ssh is enabled for NetBSD. That is #22872. |
Panic... this looks badly. Trying to reproduce locally. |
Change https://golang.org/cl/80435 mentions this issue: |
copying the freebsd/386 sysctl implementation as-is fixes this |
@coypoop, thanks! For the record, the diff is: localhost# git diff
diff --git a/src/runtime/sys_netbsd_386.s b/src/runtime/sys_netbsd_386.s
index af8c3aa485..8ee7b96ce7 100644
--- a/src/runtime/sys_netbsd_386.s
+++ b/src/runtime/sys_netbsd_386.s
@@ -375,10 +375,12 @@ TEXT runtime·sysctl(SB),NOSPLIT,$28
MOVSL // arg 6 - newlen
MOVL $202, AX // sys___sysctl
INT $0x80
- JCC 3(PC)
+ JAE 4(PC)
NEGL AX
+ MOVL AX, ret+24(FP)
RET
MOVL $0, AX
+ MOVL AX, ret+24(FP)
RET
GLOBL runtime·tlsoffset(SB),NOPTR,$4 @rsc fixed that for freebsd/386 in 25f6b02 where he wrote:
Indeed. |
Change https://golang.org/cl/80515 mentions this issue: |
It's still busted, but this will let other people debug. Updates golang/go#22914 Updates golang/go#20852 Updates golang/go#19339 Change-Id: Iedc21417e56418dab6abd433574ffef012ae43f3 Reviewed-on: https://go-review.googlesource.com/80435 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
I'm trying to revive the NetBSD port.
We have passing NetBSD 8-BETA builders for amd64 now.
The NetBSD i386 kernel fails to get networking on GCE, but the 64-bit NetBSD kernel can run 32-bit binaries (like FreeBSD and unlike OpenBSD), and that's how we used to run the netbsd-386 builder, so I'm trying that again.
But 32-bit binaries fail to get the page size on a 64-bit kernel:
Obviously not correct, but falling back to 4KB instead of returning 0 on sysctl failure seems to make it get further:
Now instead of crashing,
make.bash
seems to hang forever, consuming CPU forever in/tmp/workdir/go/pkg/tool/netbsd_386/go_bootstrap install
.Ideas welcome.
/cc @bsiegert @aclements @krytarowski @ianlancetaylor
The text was updated successfully, but these errors were encountered: