Go version
1.26.1, 1.25.8
Output of go env in your module/workspace:
AR='ar'
CC='gcc'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='0'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='g++'
GCCGO='gccgo'
GO111MODULE='on'
GOAMD64='v1'
GOARCH='amd64'
GOAUTH='netrc'
GOBIN='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/bin'
GOCACHE='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/golang/gocache'
GOCACHEPROG=''
GODEBUG=''
GOENV='/Users/vadimsh/Library/Application Support/go/env'
GOEXE='.exe'
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/s5/038psd6x11x2n172nwdpvk94005swt/T/go-build105125036=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMOD='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/src/go.chromium.org/luci/go.mod'
GOMODCACHE='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/golang/modcache'
GONOPROXY='*.googlesource.com,*.git.corp.google.com,google.com'
GONOSUMDB='*.googlesource.com,*.git.corp.google.com,google.com'
GOOS='windows'
GOPATH='/Users/vadimsh/go'
GOPRIVATE='*.googlesource.com,*.git.corp.google.com,google.com'
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/golang/go'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/vadimsh/Library/Application Support/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/Users/vadimsh/infra/infra_internal/dep/infra.git/go/golang/go/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.25.8'
GOWORK=''
PKG_CONFIG='pkg-config'
(note I'm cross-compiling to Win amd64, but it doesn't matter, native Windows build fail in the same way)
What did you do?
When build the below snippet with go1.26.1 and running it on Windows 10 build 10240 (aka Windows 10 v1507, aka Windows 10 first RTM release ever), it fails with
openfdat .\test: The parameter is incorrect
It succeeds when building it with go1.24.13.
It also succeeds when running it on Windows 10 build 19045 (aka Windows 10 version 22H2) and newer (I haven't tested any older versions, since I don't have access to them).
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
if err := run(); err != nil {
fmt.Printf("%s\n", err)
} else {
fmt.Printf("Done\n")
}
}
func run() error {
if err := os.MkdirAll(filepath.Join("test", "a"), 0777); err != nil {
return err
}
return os.RemoveAll("test")
}
This matters for the Chrome CI since we use Golang tooling to run tests and Chrome still officially supports this version of Windows (and our tooling is now failing there). IIUC, Go also officially supports Windows 10, but does this support extend to this very first Win 10 version? :)
To be clear, windows build numbers here are the same as reported by https://pkg.go.dev/golang.org/x/sys/windows#RtlGetNtVersionNumbers
What did you see happen?
openfdat .\test: The parameter is incorrect
What did you expect to see?
Go version
1.26.1, 1.25.8
Output of
go envin your module/workspace:What did you do?
When build the below snippet with go1.26.1 and running it on Windows 10 build 10240 (aka Windows 10 v1507, aka Windows 10 first RTM release ever), it fails with
It succeeds when building it with go1.24.13.
It also succeeds when running it on Windows 10 build 19045 (aka Windows 10 version 22H2) and newer (I haven't tested any older versions, since I don't have access to them).
This matters for the Chrome CI since we use Golang tooling to run tests and Chrome still officially supports this version of Windows (and our tooling is now failing there). IIUC, Go also officially supports Windows 10, but does this support extend to this very first Win 10 version? :)
To be clear, windows build numbers here are the same as reported by https://pkg.go.dev/golang.org/x/sys/windows#RtlGetNtVersionNumbers
What did you see happen?
What did you expect to see?