all: replace all usages of golang.org/x/sys/execabs with os/exec

The "golang.org/x/sys/execabs" package was introduced to address a
security issue on Windows, and changing the default behavior of os/exec
was considered a breaking change. go1.19 applied the behavior that was
previously implemented in the execabs package through CL 403274.

This reverts fe37c9e135b934191089b245ac29325091462508 (CL 284773).
Updates #43724.

Change-Id: I53987d0d0009b8dd11e05fc3d17cbffb9625a9c1
GitHub-Last-Rev: 18e93f39c4e539c28166d4e29a58bbe0eb5711e7
GitHub-Pull-Request: golang/tools#455
Reviewed-on: https://go-review.googlesource.com/c/tools/+/539017
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Commit-Queue: Bryan Mills <bcmills@google.com>
diff --git a/cmd/auth/authtest/authtest.go b/cmd/auth/authtest/authtest.go
index 0489b93..263eed8 100644
--- a/cmd/auth/authtest/authtest.go
+++ b/cmd/auth/authtest/authtest.go
@@ -18,13 +18,13 @@
 	"bytes"
 	"flag"
 	"fmt"
-	exec "golang.org/x/sys/execabs"
 	"io"
 	"log"
 	"net/http"
 	"net/textproto"
 	"net/url"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"strings"
 )
diff --git a/cmd/auth/gitauth/gitauth.go b/cmd/auth/gitauth/gitauth.go
index 6128889..f61a020 100644
--- a/cmd/auth/gitauth/gitauth.go
+++ b/cmd/auth/gitauth/gitauth.go
@@ -17,11 +17,11 @@
 import (
 	"bytes"
 	"fmt"
-	exec "golang.org/x/sys/execabs"
 	"log"
 	"net/http"
 	"net/url"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"strings"
 )
diff --git a/cmd/compilebench/main.go b/cmd/compilebench/main.go
index 15323c2..a1805fd 100644
--- a/cmd/compilebench/main.go
+++ b/cmd/compilebench/main.go
@@ -83,14 +83,13 @@
 	"fmt"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"runtime"
 	"strconv"
 	"strings"
 	"time"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 var (
diff --git a/cmd/eg/eg.go b/cmd/eg/eg.go
index 5d21138..108b9e3 100644
--- a/cmd/eg/eg.go
+++ b/cmd/eg/eg.go
@@ -16,10 +16,10 @@
 	"go/token"
 	"go/types"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"strings"
 
-	exec "golang.org/x/sys/execabs"
 	"golang.org/x/tools/go/packages"
 	"golang.org/x/tools/refactor/eg"
 )
diff --git a/cmd/fiximports/main.go b/cmd/fiximports/main.go
index 0893b06..a528402 100644
--- a/cmd/fiximports/main.go
+++ b/cmd/fiximports/main.go
@@ -78,13 +78,12 @@
 	"io"
 	"log"
 	"os"
+	"os/exec"
 	"path"
 	"path/filepath"
 	"sort"
 	"strconv"
 	"strings"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 // flags
diff --git a/cmd/getgo/main.go b/cmd/getgo/main.go
index 441fd89..e7bb2ee 100644
--- a/cmd/getgo/main.go
+++ b/cmd/getgo/main.go
@@ -14,8 +14,8 @@
 	"errors"
 	"flag"
 	"fmt"
-	exec "golang.org/x/sys/execabs"
 	"os"
+	"os/exec"
 	"strings"
 )
 
diff --git a/cmd/getgo/system.go b/cmd/getgo/system.go
index 3449c9c..7299839 100644
--- a/cmd/getgo/system.go
+++ b/cmd/getgo/system.go
@@ -10,7 +10,7 @@
 import (
 	"bytes"
 	"context"
-	exec "golang.org/x/sys/execabs"
+	"os/exec"
 	"runtime"
 	"strings"
 )
diff --git a/cmd/go-contrib-init/contrib.go b/cmd/go-contrib-init/contrib.go
index 9b4d265..9254b86 100644
--- a/cmd/go-contrib-init/contrib.go
+++ b/cmd/go-contrib-init/contrib.go
@@ -13,9 +13,9 @@
 	"flag"
 	"fmt"
 	"go/build"
-	exec "golang.org/x/sys/execabs"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"runtime"
diff --git a/cmd/godoc/goroot.go b/cmd/godoc/goroot.go
index c284ca8..755069d 100644
--- a/cmd/godoc/goroot.go
+++ b/cmd/godoc/goroot.go
@@ -5,8 +5,8 @@
 package main
 
 import (
-	exec "golang.org/x/sys/execabs"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"strings"
diff --git a/cmd/godoc/main.go b/cmd/godoc/main.go
index a4ca1c4..a665be0 100644
--- a/cmd/godoc/main.go
+++ b/cmd/godoc/main.go
@@ -32,14 +32,13 @@
 	_ "net/http/pprof" // to serve /debug/pprof/*
 	"net/url"
 	"os"
+	"os/exec"
 	"path"
 	"path/filepath"
 	"regexp"
 	"runtime"
 	"strings"
 
-	exec "golang.org/x/sys/execabs"
-
 	"golang.org/x/tools/godoc"
 	"golang.org/x/tools/godoc/static"
 	"golang.org/x/tools/godoc/vfs"
diff --git a/cmd/goimports/goimports.go b/cmd/goimports/goimports.go
index 3b6bd72..dcb5023 100644
--- a/cmd/goimports/goimports.go
+++ b/cmd/goimports/goimports.go
@@ -11,10 +11,10 @@
 	"flag"
 	"fmt"
 	"go/scanner"
-	exec "golang.org/x/sys/execabs"
 	"io"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"runtime/pprof"
diff --git a/cmd/stress/stress.go b/cmd/stress/stress.go
index 6dc563d..defe6ee 100644
--- a/cmd/stress/stress.go
+++ b/cmd/stress/stress.go
@@ -21,13 +21,12 @@
 	"flag"
 	"fmt"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"runtime"
 	"syscall"
 	"time"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 var (
diff --git a/cmd/toolstash/main.go b/cmd/toolstash/main.go
index 7f38524..eda486c 100644
--- a/cmd/toolstash/main.go
+++ b/cmd/toolstash/main.go
@@ -129,12 +129,11 @@
 	"io"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"strings"
 	"time"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 var usageMessage = `usage: toolstash [-n] [-v] [-cmp] command line
diff --git a/go.mod b/go.mod
index 50c32a9..737ecb0 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,6 @@
 	github.com/yuin/goldmark v1.4.13
 	golang.org/x/mod v0.14.0
 	golang.org/x/net v0.18.0
-	golang.org/x/sys v0.14.0
 )
 
 require golang.org/x/sync v0.5.0
diff --git a/go.sum b/go.sum
index 4e1df99..e68d3c1 100644
--- a/go.sum
+++ b/go.sum
@@ -6,5 +6,3 @@
 golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
 golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
 golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
-golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
diff --git a/go/internal/cgo/cgo.go b/go/internal/cgo/cgo.go
index 38d5c6c..697974b 100644
--- a/go/internal/cgo/cgo.go
+++ b/go/internal/cgo/cgo.go
@@ -59,11 +59,10 @@
 	"go/token"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"strings"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 // ProcessFiles invokes the cgo preprocessor on bp.CgoFiles, parses
diff --git a/go/internal/cgo/cgo_pkgconfig.go b/go/internal/cgo/cgo_pkgconfig.go
index 7d94bbc..b5bb95a 100644
--- a/go/internal/cgo/cgo_pkgconfig.go
+++ b/go/internal/cgo/cgo_pkgconfig.go
@@ -8,7 +8,7 @@
 	"errors"
 	"fmt"
 	"go/build"
-	exec "golang.org/x/sys/execabs"
+	"os/exec"
 	"strings"
 )
 
diff --git a/go/internal/gccgoimporter/gccgoinstallation.go b/go/internal/gccgoimporter/gccgoinstallation.go
index 365521e..fac4100 100644
--- a/go/internal/gccgoimporter/gccgoinstallation.go
+++ b/go/internal/gccgoimporter/gccgoinstallation.go
@@ -10,8 +10,8 @@
 import (
 	"bufio"
 	"go/types"
-	exec "golang.org/x/sys/execabs"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"strings"
 )
diff --git a/go/packages/external.go b/go/packages/external.go
index 7242a0a..7db1d12 100644
--- a/go/packages/external.go
+++ b/go/packages/external.go
@@ -12,8 +12,8 @@
 	"bytes"
 	"encoding/json"
 	"fmt"
-	exec "golang.org/x/sys/execabs"
 	"os"
+	"os/exec"
 	"strings"
 )
 
diff --git a/go/packages/golist.go b/go/packages/golist.go
index c1292b3..cd375fb 100644
--- a/go/packages/golist.go
+++ b/go/packages/golist.go
@@ -11,6 +11,7 @@
 	"fmt"
 	"log"
 	"os"
+	"os/exec"
 	"path"
 	"path/filepath"
 	"reflect"
@@ -20,7 +21,6 @@
 	"sync"
 	"unicode"
 
-	exec "golang.org/x/sys/execabs"
 	"golang.org/x/tools/go/internal/packagesdriver"
 	"golang.org/x/tools/internal/gocommand"
 	"golang.org/x/tools/internal/packagesinternal"
diff --git a/gopls/internal/lsp/browser/browser.go b/gopls/internal/lsp/browser/browser.go
index 0ac4f20..6867c85 100644
--- a/gopls/internal/lsp/browser/browser.go
+++ b/gopls/internal/lsp/browser/browser.go
@@ -6,8 +6,8 @@
 package browser
 
 import (
-	exec "golang.org/x/sys/execabs"
 	"os"
+	"os/exec"
 	"runtime"
 	"time"
 )
diff --git a/gopls/internal/lsp/cache/view.go b/gopls/internal/lsp/cache/view.go
index 246669c..156cb0a 100644
--- a/gopls/internal/lsp/cache/view.go
+++ b/gopls/internal/lsp/cache/view.go
@@ -12,6 +12,7 @@
 	"errors"
 	"fmt"
 	"os"
+	"os/exec"
 	"path"
 	"path/filepath"
 	"regexp"
@@ -22,7 +23,6 @@
 
 	"golang.org/x/mod/modfile"
 	"golang.org/x/mod/semver"
-	exec "golang.org/x/sys/execabs"
 	"golang.org/x/tools/gopls/internal/lsp/protocol"
 	"golang.org/x/tools/gopls/internal/lsp/source"
 	"golang.org/x/tools/gopls/internal/span"
diff --git a/gopls/internal/lsp/cmd/test/integration_test.go b/gopls/internal/lsp/cmd/test/integration_test.go
index 1e8aeef..e83d34c 100644
--- a/gopls/internal/lsp/cmd/test/integration_test.go
+++ b/gopls/internal/lsp/cmd/test/integration_test.go
@@ -32,12 +32,12 @@
 	"fmt"
 	"math/rand"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"strings"
 	"testing"
 
-	exec "golang.org/x/sys/execabs"
 	"golang.org/x/tools/gopls/internal/bug"
 	"golang.org/x/tools/gopls/internal/hooks"
 	"golang.org/x/tools/gopls/internal/lsp/cmd"
diff --git a/gopls/internal/lsp/lsprpc/autostart_default.go b/gopls/internal/lsp/lsprpc/autostart_default.go
index 20b9747..a170b56 100644
--- a/gopls/internal/lsp/lsprpc/autostart_default.go
+++ b/gopls/internal/lsp/lsprpc/autostart_default.go
@@ -6,8 +6,7 @@
 
 import (
 	"fmt"
-
-	exec "golang.org/x/sys/execabs"
+	"os/exec"
 )
 
 var (
diff --git a/gopls/internal/lsp/lsprpc/autostart_posix.go b/gopls/internal/lsp/lsprpc/autostart_posix.go
index 90cc72d..6aeac3e 100644
--- a/gopls/internal/lsp/lsprpc/autostart_posix.go
+++ b/gopls/internal/lsp/lsprpc/autostart_posix.go
@@ -13,12 +13,11 @@
 	"fmt"
 	"log"
 	"os"
+	"os/exec"
 	"os/user"
 	"path/filepath"
 	"strconv"
 	"syscall"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 func init() {
diff --git a/gopls/internal/lsp/lsprpc/dialer.go b/gopls/internal/lsp/lsprpc/dialer.go
index 37e0c56..e962c60 100644
--- a/gopls/internal/lsp/lsprpc/dialer.go
+++ b/gopls/internal/lsp/lsprpc/dialer.go
@@ -10,9 +10,9 @@
 	"io"
 	"net"
 	"os"
+	"os/exec"
 	"time"
 
-	exec "golang.org/x/sys/execabs"
 	"golang.org/x/tools/internal/event"
 )
 
diff --git a/gopls/internal/lsp/regtest/runner.go b/gopls/internal/lsp/regtest/runner.go
index e4aa2f3..ab5f26f 100644
--- a/gopls/internal/lsp/regtest/runner.go
+++ b/gopls/internal/lsp/regtest/runner.go
@@ -11,6 +11,7 @@
 	"io"
 	"net"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"runtime/pprof"
@@ -19,8 +20,6 @@
 	"testing"
 	"time"
 
-	exec "golang.org/x/sys/execabs"
-
 	"golang.org/x/tools/gopls/internal/lsp/cache"
 	"golang.org/x/tools/gopls/internal/lsp/debug"
 	"golang.org/x/tools/gopls/internal/lsp/fake"
diff --git a/gopls/release/release.go b/gopls/release/release.go
index b2e0b3c..f88f020 100644
--- a/gopls/release/release.go
+++ b/gopls/release/release.go
@@ -17,12 +17,11 @@
 	"go/types"
 	"log"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"strconv"
 	"strings"
 
-	exec "golang.org/x/sys/execabs"
-
 	"golang.org/x/mod/modfile"
 	"golang.org/x/mod/semver"
 	"golang.org/x/tools/go/packages"
diff --git a/internal/gocommand/invoke.go b/internal/gocommand/invoke.go
index c27b91f..5531252 100644
--- a/internal/gocommand/invoke.go
+++ b/internal/gocommand/invoke.go
@@ -13,6 +13,7 @@
 	"io"
 	"log"
 	"os"
+	"os/exec"
 	"reflect"
 	"regexp"
 	"runtime"
@@ -21,8 +22,6 @@
 	"sync"
 	"time"
 
-	exec "golang.org/x/sys/execabs"
-
 	"golang.org/x/tools/internal/event"
 	"golang.org/x/tools/internal/event/keys"
 	"golang.org/x/tools/internal/event/label"
diff --git a/internal/testenv/testenv.go b/internal/testenv/testenv.go
index 88de3da..511da9d 100644
--- a/internal/testenv/testenv.go
+++ b/internal/testenv/testenv.go
@@ -11,6 +11,7 @@
 	"fmt"
 	"go/build"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"runtime/debug"
@@ -21,8 +22,6 @@
 
 	"golang.org/x/mod/modfile"
 	"golang.org/x/tools/internal/goroot"
-
-	exec "golang.org/x/sys/execabs"
 )
 
 // packageMainIsDevel reports whether the module containing package main
diff --git a/playground/socket/socket.go b/playground/socket/socket.go
index c396aac..797dcc6 100644
--- a/playground/socket/socket.go
+++ b/playground/socket/socket.go
@@ -20,13 +20,13 @@
 	"errors"
 	"go/parser"
 	"go/token"
-	exec "golang.org/x/sys/execabs"
 	"io"
 	"log"
 	"net"
 	"net/http"
 	"net/url"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"runtime"
 	"strings"
diff --git a/refactor/rename/mvpkg.go b/refactor/rename/mvpkg.go
index 58fad6b..7889711 100644
--- a/refactor/rename/mvpkg.go
+++ b/refactor/rename/mvpkg.go
@@ -18,9 +18,9 @@
 	"go/build"
 	"go/format"
 	"go/token"
-	exec "golang.org/x/sys/execabs"
 	"log"
 	"os"
+	"os/exec"
 	"path"
 	"path/filepath"
 	"regexp"
diff --git a/refactor/rename/rename.go b/refactor/rename/rename.go
index a80381c..db925ca 100644
--- a/refactor/rename/rename.go
+++ b/refactor/rename/rename.go
@@ -17,10 +17,10 @@
 	"go/parser"
 	"go/token"
 	"go/types"
-	exec "golang.org/x/sys/execabs"
 	"io"
 	"log"
 	"os"
+	"os/exec"
 	"path"
 	"regexp"
 	"sort"