diff --git a/go/tools/builders/stdlib.go b/go/tools/builders/stdlib.go index 7e45e66b5c..20817b99ce 100644 --- a/go/tools/builders/stdlib.go +++ b/go/tools/builders/stdlib.go @@ -22,7 +22,9 @@ import ( "log" "os" "path/filepath" + "runtime" "strings" + "syscall" ) func run(args []string) error { @@ -51,6 +53,19 @@ func run(args []string) error { return err } + if runtime.GOOS == "windows" { + var buf [258]uint16 + up, err := syscall.UTF16PtrFromString(output) + if err != nil { + return err + } + _, err = syscall.GetShortPathName(up, &buf[0], 258) + if err != nil { + return err + } + output = syscall.UTF16ToString(buf[:]) + } + // Now switch to the newly created GOROOT os.Setenv("GOROOT", output)