-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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
x/build: validate 387 binaries somehow #13946
Comments
I'd be happy if we just qemu'd a "hello world" binary to completion. That shouldn't be too slow. It would catch most of the cases. We could add a few map operations, a channel select, etc. for good measure. Can you configure qemu to faithfully emulate a Pentium MMX, missing instruction faults and all? Just validating using the disassembler doesn't quite work, as we have non-MMX code guarded by CPUID checks. Those cases may be few enough in number that we could explicitly suppress errors in those functions. |
I'd like to propose a counter proposal -- demote 387 to a non first class On Thu, Jan 14, 2016 at 11:42 AM, Keith Randall [email protected]
|
@davecheney, but we kinda have an GOARM=5 builder at least (admittedly on ARMier hardware than ARM=5), which catches some stuff. |
I think we have too many builders, and I'm skeptical we need one for this.
We can make the 386 build test that cmd/go (which imports basically
everything) doesn't have any instructions it should not.
|
Yes, sorry I want not precise enough. My suggestion isn't a direct analog The problem that cropped up apparently was introduced in 1.1 and took until On Thu, Jan 14, 2016 at 11:51 AM, Brad Fitzpatrick <[email protected]
|
Support for GO386=387 was dropped in Go 1.16 (https://go.dev/doc/go1.16#386). |
We should run a builder that somehow validates our GO386=387 builder, making sure we never generated prohibited instructions. (per comment by @randall77 in #13923)
We seem to occasionally regress.
How to validate?
/cc @minux @randall77 @ianlancetaylor @rsc for opininions.
The text was updated successfully, but these errors were encountered: