From 9d8277341fb68b08e337d31fc311846501a2d214 Mon Sep 17 00:00:00 2001 From: Thomas Way Date: Thu, 21 Jan 2021 23:24:01 +0000 Subject: [PATCH 1/5] Add build guards for all Windows imports --- backuptar/tar_test.go | 2 ++ hvsock.go | 2 ++ pkg/etw/eventopt.go | 2 ++ pkg/etw/newprovider.go | 2 +- pkg/etw/newprovider_unsupported.go | 2 +- pkg/etw/provider.go | 2 ++ pkg/etw/provider_test.go | 2 ++ pkg/etw/sample/sample.go | 2 ++ pkg/etw/wrapper_32.go | 2 +- pkg/etw/wrapper_64.go | 2 +- pkg/etwlogrus/hook.go | 2 ++ pkg/guid/guid.go | 2 ++ pkg/process/process.go | 2 ++ pkg/process/syscall.go | 2 ++ tools/etw-provider-gen/main.go | 2 ++ vhd/zvhd.go | 2 ++ wim/decompress.go | 2 ++ wim/validate/validate.go | 2 ++ 18 files changed, 32 insertions(+), 4 deletions(-) diff --git a/backuptar/tar_test.go b/backuptar/tar_test.go index ee10960..8be0bf3 100644 --- a/backuptar/tar_test.go +++ b/backuptar/tar_test.go @@ -1,3 +1,5 @@ +// +build windows + package backuptar import ( diff --git a/hvsock.go b/hvsock.go index dbfe790..b632f8f 100644 --- a/hvsock.go +++ b/hvsock.go @@ -1,3 +1,5 @@ +// +build windows + package winio import ( diff --git a/pkg/etw/eventopt.go b/pkg/etw/eventopt.go index fb6ac7d..eaace68 100644 --- a/pkg/etw/eventopt.go +++ b/pkg/etw/eventopt.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etw/newprovider.go b/pkg/etw/newprovider.go index f344fb6..5c8c3b9 100644 --- a/pkg/etw/newprovider.go +++ b/pkg/etw/newprovider.go @@ -1,4 +1,4 @@ -// +build amd64 arm64 386 +// +build windows amd64 arm64 386 package etw diff --git a/pkg/etw/newprovider_unsupported.go b/pkg/etw/newprovider_unsupported.go index 808455c..c9e208f 100644 --- a/pkg/etw/newprovider_unsupported.go +++ b/pkg/etw/newprovider_unsupported.go @@ -1,4 +1,4 @@ -// +build arm +// +build windows arm package etw diff --git a/pkg/etw/provider.go b/pkg/etw/provider.go index 2369601..e22973d 100644 --- a/pkg/etw/provider.go +++ b/pkg/etw/provider.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etw/provider_test.go b/pkg/etw/provider_test.go index 69d9910..6b7c5ef 100644 --- a/pkg/etw/provider_test.go +++ b/pkg/etw/provider_test.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etw/sample/sample.go b/pkg/etw/sample/sample.go index 0f3bebe..8c6a267 100644 --- a/pkg/etw/sample/sample.go +++ b/pkg/etw/sample/sample.go @@ -1,3 +1,5 @@ +// +build windows + // Shows a sample usage of the ETW logging package. package main diff --git a/pkg/etw/wrapper_32.go b/pkg/etw/wrapper_32.go index d0a7dac..4aae0bc 100644 --- a/pkg/etw/wrapper_32.go +++ b/pkg/etw/wrapper_32.go @@ -1,4 +1,4 @@ -// +build 386 arm +// +build windows 386 arm package etw diff --git a/pkg/etw/wrapper_64.go b/pkg/etw/wrapper_64.go index ef8b599..acd5fc3 100644 --- a/pkg/etw/wrapper_64.go +++ b/pkg/etw/wrapper_64.go @@ -1,4 +1,4 @@ -// +build amd64 arm64 +// +build windows amd64 arm64 package etw diff --git a/pkg/etwlogrus/hook.go b/pkg/etwlogrus/hook.go index 38228c3..4332af5 100644 --- a/pkg/etwlogrus/hook.go +++ b/pkg/etwlogrus/hook.go @@ -1,3 +1,5 @@ +// +build windows + package etwlogrus import ( diff --git a/pkg/guid/guid.go b/pkg/guid/guid.go index 5864065..f497c0e 100644 --- a/pkg/guid/guid.go +++ b/pkg/guid/guid.go @@ -1,3 +1,5 @@ +// +build windows + // Package guid provides a GUID type. The backing structure for a GUID is // identical to that used by the golang.org/x/sys/windows GUID type. // There are two main binary encodings used for a GUID, the big-endian encoding, diff --git a/pkg/process/process.go b/pkg/process/process.go index ab828f6..85c70fe 100644 --- a/pkg/process/process.go +++ b/pkg/process/process.go @@ -1,3 +1,5 @@ +// +build windows + package process import ( diff --git a/pkg/process/syscall.go b/pkg/process/syscall.go index 6732e5e..598d0cc 100644 --- a/pkg/process/syscall.go +++ b/pkg/process/syscall.go @@ -1,3 +1,5 @@ +// +build windows + package process import ( diff --git a/tools/etw-provider-gen/main.go b/tools/etw-provider-gen/main.go index 1da4657..9e6df9d 100644 --- a/tools/etw-provider-gen/main.go +++ b/tools/etw-provider-gen/main.go @@ -1,3 +1,5 @@ +// +build windows + package main import ( diff --git a/vhd/zvhd.go b/vhd/zvhd.go index 54c94db..d8b737a 100644 --- a/vhd/zvhd.go +++ b/vhd/zvhd.go @@ -1,3 +1,5 @@ +// +build windows + // MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT package vhd diff --git a/wim/decompress.go b/wim/decompress.go index f4e67f8..12d5196 100644 --- a/wim/decompress.go +++ b/wim/decompress.go @@ -1,3 +1,5 @@ +// +build windows + package wim import ( diff --git a/wim/validate/validate.go b/wim/validate/validate.go index ba03fc9..2536c00 100644 --- a/wim/validate/validate.go +++ b/wim/validate/validate.go @@ -1,3 +1,5 @@ +// +build windows + package main import ( From eb9d8c93464e0a01ae0702cc251d22f64b9ead6b Mon Sep 17 00:00:00 2001 From: Thomas <9749173+uhthomas@users.noreply.github.com> Date: Wed, 10 Feb 2021 23:05:19 +0000 Subject: [PATCH 2/5] Separate platform from architecture build constraints --- pkg/etw/newprovider.go | 3 ++- pkg/etw/newprovider_unsupported.go | 3 ++- pkg/etw/wrapper_64.go | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/etw/newprovider.go b/pkg/etw/newprovider.go index 5c8c3b9..06488bd 100644 --- a/pkg/etw/newprovider.go +++ b/pkg/etw/newprovider.go @@ -1,4 +1,5 @@ -// +build windows amd64 arm64 386 +// +build windows +// +build amd64 arm64 386 package etw diff --git a/pkg/etw/newprovider_unsupported.go b/pkg/etw/newprovider_unsupported.go index c9e208f..d6b824a 100644 --- a/pkg/etw/newprovider_unsupported.go +++ b/pkg/etw/newprovider_unsupported.go @@ -1,4 +1,5 @@ -// +build windows arm +// +build windows +// +build arm package etw diff --git a/pkg/etw/wrapper_64.go b/pkg/etw/wrapper_64.go index acd5fc3..c78d8d2 100644 --- a/pkg/etw/wrapper_64.go +++ b/pkg/etw/wrapper_64.go @@ -1,4 +1,5 @@ -// +build windows amd64 arm64 +// +build windows +// +build amd64 arm64 package etw From f0d2c76ab3a2d709c31dfd5fed610549155ba18b Mon Sep 17 00:00:00 2001 From: Thomas <9749173+uhthomas@users.noreply.github.com> Date: Wed, 10 Feb 2021 23:09:41 +0000 Subject: [PATCH 3/5] Fix missing platform/architecture separation --- pkg/etw/wrapper_32.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/etw/wrapper_32.go b/pkg/etw/wrapper_32.go index 4aae0bc..5766d4d 100644 --- a/pkg/etw/wrapper_32.go +++ b/pkg/etw/wrapper_32.go @@ -1,4 +1,5 @@ -// +build windows 386 arm +// +build windows +// +build 386 arm package etw From d4c02ad8960c548a1a458ca064c45dc69acd9c87 Mon Sep 17 00:00:00 2001 From: Thomas <9749173+uhthomas@users.noreply.github.com> Date: Wed, 10 Feb 2021 23:37:46 +0000 Subject: [PATCH 4/5] Add missing build constraints --- backup_test.go | 2 ++ ea_test.go | 2 ++ pipe_test.go | 2 ++ pkg/etw/eventdata.go | 2 ++ pkg/etw/fieldopt.go | 2 ++ pkg/etw/providerglobal.go | 2 ++ pkg/etwlogrus/hook_test.go | 2 ++ pkg/guid/guid_test.go | 2 ++ pkg/security/grantvmgroupaccess.go | 2 ++ pkg/security/grantvmgroupaccess_test.go | 2 ++ privileges_test.go | 2 ++ sd_test.go | 2 ++ wim/wim.go | 2 ++ 13 files changed, 26 insertions(+) diff --git a/backup_test.go b/backup_test.go index cc5a0c5..0522a12 100644 --- a/backup_test.go +++ b/backup_test.go @@ -1,3 +1,5 @@ +// +build windows + package winio import ( diff --git a/ea_test.go b/ea_test.go index 27db14f..1d2abd7 100644 --- a/ea_test.go +++ b/ea_test.go @@ -1,3 +1,5 @@ +// +build windows + package winio import ( diff --git a/pipe_test.go b/pipe_test.go index bd26ea7..a4ddea5 100644 --- a/pipe_test.go +++ b/pipe_test.go @@ -1,3 +1,5 @@ +// +build windows + package winio import ( diff --git a/pkg/etw/eventdata.go b/pkg/etw/eventdata.go index a524d89..abf1680 100644 --- a/pkg/etw/eventdata.go +++ b/pkg/etw/eventdata.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etw/fieldopt.go b/pkg/etw/fieldopt.go index d544a29..b5ea80a 100644 --- a/pkg/etw/fieldopt.go +++ b/pkg/etw/fieldopt.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etw/providerglobal.go b/pkg/etw/providerglobal.go index 6c7331d..ce3d305 100644 --- a/pkg/etw/providerglobal.go +++ b/pkg/etw/providerglobal.go @@ -1,3 +1,5 @@ +// +build windows + package etw import ( diff --git a/pkg/etwlogrus/hook_test.go b/pkg/etwlogrus/hook_test.go index 117402d..6f3e7ae 100644 --- a/pkg/etwlogrus/hook_test.go +++ b/pkg/etwlogrus/hook_test.go @@ -1,3 +1,5 @@ +// +build windows + package etwlogrus import ( diff --git a/pkg/guid/guid_test.go b/pkg/guid/guid_test.go index d7e2124..84629ee 100644 --- a/pkg/guid/guid_test.go +++ b/pkg/guid/guid_test.go @@ -1,3 +1,5 @@ +// +build windows + package guid import ( diff --git a/pkg/security/grantvmgroupaccess.go b/pkg/security/grantvmgroupaccess.go index 2df31b6..fca2415 100644 --- a/pkg/security/grantvmgroupaccess.go +++ b/pkg/security/grantvmgroupaccess.go @@ -1,3 +1,5 @@ +// +build windows + package security import ( diff --git a/pkg/security/grantvmgroupaccess_test.go b/pkg/security/grantvmgroupaccess_test.go index 3a1705f..fcbd850 100644 --- a/pkg/security/grantvmgroupaccess_test.go +++ b/pkg/security/grantvmgroupaccess_test.go @@ -1,3 +1,5 @@ +//+build windows + package security import ( diff --git a/privileges_test.go b/privileges_test.go index 5e94c48..36fe72f 100644 --- a/privileges_test.go +++ b/privileges_test.go @@ -1,3 +1,5 @@ +// +build windows + package winio import "testing" diff --git a/sd_test.go b/sd_test.go index a33925c..4f3d981 100644 --- a/sd_test.go +++ b/sd_test.go @@ -1,3 +1,5 @@ +// +build windows + package winio import "testing" diff --git a/wim/wim.go b/wim/wim.go index 1d02e92..e3ca2f1 100644 --- a/wim/wim.go +++ b/wim/wim.go @@ -1,3 +1,5 @@ +// +build windows + // Package wim implements a WIM file parser. // // WIM files are used to distribute Windows file system and container images. From e09292102fd40574b21a1bd28dcee537fa00cc96 Mon Sep 17 00:00:00 2001 From: Thomas <9749173+uhthomas@users.noreply.github.com> Date: Thu, 11 Feb 2021 00:05:48 +0000 Subject: [PATCH 5/5] Add noop mains for non windows builds --- pkg/etw/sample/noop.go | 5 +++++ tools/etw-provider-gen/noop.go | 5 +++++ wim/validate/noop.go | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 pkg/etw/sample/noop.go create mode 100644 tools/etw-provider-gen/noop.go create mode 100644 wim/validate/noop.go diff --git a/pkg/etw/sample/noop.go b/pkg/etw/sample/noop.go new file mode 100644 index 0000000..bf98ceb --- /dev/null +++ b/pkg/etw/sample/noop.go @@ -0,0 +1,5 @@ +// +build !windows + +package main + +func main() {} diff --git a/tools/etw-provider-gen/noop.go b/tools/etw-provider-gen/noop.go new file mode 100644 index 0000000..bf98ceb --- /dev/null +++ b/tools/etw-provider-gen/noop.go @@ -0,0 +1,5 @@ +// +build !windows + +package main + +func main() {} diff --git a/wim/validate/noop.go b/wim/validate/noop.go new file mode 100644 index 0000000..bf98ceb --- /dev/null +++ b/wim/validate/noop.go @@ -0,0 +1,5 @@ +// +build !windows + +package main + +func main() {}