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
runtime: netbsd/386 lwp_park seems wrong #22946
Comments
The code in sys_netbsd_386.s should work because on 386 the syscall arguments are passed on the stack,and Go does the same, and the Go function takes the exact arguments that the syscall takes. |
Then I guess I'm misreading the NetBSD comments. When I saw |
lwp_park does take four parameters. It''s just that the syscall is going to look for those parameters on the stack, and that is exactly where Go puts them. |
Or, put it this way, if lwp_park is wrong, then so is read, write, closefd, etc. Admittedly they might all be wrong--they don't seem to be taking the pushed PC from the call into account--but then I would expect that nothing would have ever worked. |
Oh, duh. I hadn't looked at lwp_park anywhere else in runtime except the *.s file and had expected to see handling of parameters like elsewhere in the file. Thanks. |
Well, read & closefd are only used by getRandomData, which doesn't seem to care about errors:
|
I think it's OK. runtime/sys_openbsd_386.s uses the same kind of code, and it seems to correspond to the code in syscall/asm_unix_386.s. |
I keep seeing netbsd/386 failures like:
https://build.golang.org/log/d792068d5d8a6b035a050f0f6da9a266eff5f66e
Stuck in:
Go's sys_netbsd_386.s contains:
That implies it has no arguments.
But in the NetBSD source:
This look wrong to anybody else?
/cc @ianlancetaylor @bsiegert @zoulasc @krytarowski @aclements
The text was updated successfully, but these errors were encountered: