From 0efc16284bc4fd5b8b31d3f6b6763f98700c5664 Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Wed, 11 May 2016 15:19:32 +1000 Subject: [PATCH] syscall: remove mksyscall_windows.go -xsys flag Also run "go generate" in internal/syscall/windows and internal/syscall/windows/registry Updates #15167 Change-Id: I0109226962f81857fe11d308b869d561ea8ed9f9 Reviewed-on: https://go-review.googlesource.com/23021 Reviewed-by: Brad Fitzpatrick Run-TryBot: Alex Brainman TryBot-Result: Gobot Gobot --- .../windows/registry/zsyscall_windows.go | 8 ++++-- .../syscall/windows/zsyscall_windows.go | 8 ++++-- src/syscall/mksyscall_windows.go | 28 +++++++++++++++++-- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/internal/syscall/windows/registry/zsyscall_windows.go b/src/internal/syscall/windows/registry/zsyscall_windows.go index 7e473d4e1de..62affc0b50b 100644 --- a/src/internal/syscall/windows/registry/zsyscall_windows.go +++ b/src/internal/syscall/windows/registry/zsyscall_windows.go @@ -2,9 +2,11 @@ package registry -import "unsafe" -import "syscall" -import "internal/syscall/windows/sysdll" +import ( + "internal/syscall/windows/sysdll" + "syscall" + "unsafe" +) var _ unsafe.Pointer diff --git a/src/internal/syscall/windows/zsyscall_windows.go b/src/internal/syscall/windows/zsyscall_windows.go index d599258976b..6929acfa728 100644 --- a/src/internal/syscall/windows/zsyscall_windows.go +++ b/src/internal/syscall/windows/zsyscall_windows.go @@ -2,9 +2,11 @@ package windows -import "unsafe" -import "syscall" -import "internal/syscall/windows/sysdll" +import ( + "internal/syscall/windows/sysdll" + "syscall" + "unsafe" +) var _ unsafe.Pointer diff --git a/src/syscall/mksyscall_windows.go b/src/syscall/mksyscall_windows.go index a0663073090..4ccbb04908c 100644 --- a/src/syscall/mksyscall_windows.go +++ b/src/syscall/mksyscall_windows.go @@ -57,6 +57,8 @@ import ( "io/ioutil" "log" "os" + "path/filepath" + "runtime" "sort" "strconv" "strings" @@ -67,7 +69,6 @@ var ( filename = flag.String("output", "", "output file name (standard output if omitted)") printTraceFlag = flag.Bool("trace", false, "generate print statement after every syscall") systemDLL = flag.Bool("systemdll", false, "whether all DLLs should be loaded from the Windows system directory") - sysRepo = flag.Bool("xsys", false, "whether this code is for the x/sys subrepo") ) func trim(s string) string { @@ -686,6 +687,23 @@ func (src *Source) ParseFile(path string) error { return nil } +// IsStdRepo returns true if src is part of standard library. +func (src *Source) IsStdRepo() (bool, error) { + if len(src.Files) == 0 { + return false, errors.New("no input files provided") + } + abspath, err := filepath.Abs(src.Files[0]) + if err != nil { + return false, err + } + goroot := runtime.GOROOT() + if runtime.GOOS == "windows" { + abspath = strings.ToLower(abspath) + goroot = strings.ToLower(goroot) + } + return strings.HasPrefix(abspath, goroot), nil +} + // Generate output source file from a source set src. func (src *Source) Generate(w io.Writer) error { const ( @@ -693,9 +711,13 @@ func (src *Source) Generate(w io.Writer) error { pkgXSysWindows // x/sys/windows package pkgOther ) + isStdRepo, err := src.IsStdRepo() + if err != nil { + return err + } var pkgtype int switch { - case !*sysRepo: + case isStdRepo: pkgtype = pkgStd case packageName == "windows": // TODO: this needs better logic than just using package name @@ -734,7 +756,7 @@ func (src *Source) Generate(w io.Writer) error { }, } t := template.Must(template.New("main").Funcs(funcMap).Parse(srcTemplate)) - err := t.Execute(w, src) + err = t.Execute(w, src) if err != nil { return errors.New("Failed to execute template: " + err.Error()) }