microsoft / go-winio

Win32 IO-related utilities for Go
MIT License
946 stars 180 forks source link

Update mkwinsyscall and make stand alone tool #248

Closed helsaawy closed 2 years ago

helsaawy commented 2 years ago

Updated mkwinsyscall to latest version, and created a standalone tool that can be called from go-winio and hcsshim. Used latest version from: https://github.com/golang/sys/blob/bc2c85ada10aa9b6aa9607e9ac9ad0761b95cf1d/windows/mkwinsyscall/mkwinsyscall.go

Applied changes from both go-winio (forced UTF-16, go-winio import) and hcsshim (UTF-16, HResult error return type)

Added (temporary?) flag to disable sorting so that generated syscall file diffs in hcsshim are easier to read.

Added build constraint comment to generated file, in case file names do not have one.

Allowed input files can be specified with a glob pattern. This allows hcsshim/internal/winapi to avoid listing all the files within it: //go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go

PR has two commits so that changes can be rebased on newer versions of golang.org/x/sys/windows/mkwinsyscall, but it may make more sense to create a dedicated branch on this repo with those commits

Signed-off-by: Hamza El-Saawy hamzaelsaawy@microsoft.com

dcantah commented 2 years ago

This is great that we're converging on one copy. Have you verified vendoring a local copy of winio with this change to hcsshim has everything work alright?

helsaawy commented 2 years ago

This is great that we're converging on one copy. Have you verified vendoring a local copy of winio with this change to hcsshim has everything work alright?

None of the tests fail and the diffs dont look too egregious here: https://github.com/microsoft/hcsshim/pull/1409. Unfortunately, I dont think we have really good testing around our syscalls