See also CL
4259056 for FreeBSD.
Test program:
// exec.go
package main
import (
"log"
"os"
"os/exec"
"runtime"
)
func main() {
path := runtime.GOROOT() + "/src/pkg/net/http/cgi/testdata"
cmd := &exec.Cmd{
Path: "test.cgi",
Args: []string{path + "/test.cgi"},
Dir: path
Stdout: os.Stdout}
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
if err := cmd.Wait(); err != nil {
log.Fatal(err)
}
}
$ go run exec.go
2014/03/01 15:52:41 fork/exec test.cgi: argument list too long
LGTM=iant
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/
69970044
return 0, err
}
- if runtime.GOOS == "freebsd" && len(argv[0]) > len(argv0) {
+ if (runtime.GOOS == "freebsd" || runtime.GOOS == "dragonfly") && len(argv[0]) > len(argv0) {
argvp[0] = argv0p
}