From 9b1a322d9ef85e0c0a4613d11d1ba93dac35569b Mon Sep 17 00:00:00 2001 From: John Starks Date: Fri, 20 May 2016 10:38:31 -0700 Subject: [PATCH] Windows: work around Go 1.6.2/Nano Server TP5 issue This works around golang/go#15286 by explicitly loading shell32.dll at load time, ensuring that syscall can load it dynamically during process startup. Signed-off-by: John Starks Signed-off-by: Antonio Murdaca --- docker_windows.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docker_windows.go b/docker_windows.go index de32257586..9bc507e20c 100644 --- a/docker_windows.go +++ b/docker_windows.go @@ -1,5 +1,18 @@ package main import ( + "sync/atomic" + _ "github.com/docker/docker/autogen/winresources/docker" ) + +//go:cgo_import_dynamic main.dummy CommandLineToArgvW%2 "shell32.dll" + +var dummy uintptr + +func init() { + // Ensure that this import is not removed by the linker. This is used to + // ensure that shell32.dll is loaded by the system loader, preventing + // go#15286 from triggering on Nano Server TP5. + atomic.LoadUintptr(&dummy) +}