aboutsummaryrefslogtreecommitdiff
path: root/src/os/executable_freebsd.go
AgeCommit message (Collapse)Author
2024-11-18os: sysctl-based Executable implementation for NetBSDBenny Siegert
FreeBSD and Dragonfly have used the sysctl method for years, while NetBSD has read the name of the executable from /proc. Unfortunately, some folks are hitting errors when building Go software in a sandbox that lacks a mounted /proc filesystem. Switch NetBSD to use the same implementation as FreeBSD and Dragonfly. Unfortunately, the order of the arguments in the MIB is also OS-dependent. Change-Id: I6fd774904af417ccd127e3779af45a20dc8696ca Reviewed-on: https://go-review.googlesource.com/c/go/+/629035 Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Benny Siegert <bsiegert@gmail.com> TryBot-Bypass: Ian Lance Taylor <iant@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Ian Lance Taylor <iant@golang.org>
2020-11-12os: gofmtTobias Klauser
As reported by John Papandriopoulos, some parts of CL 216622 weren't properly formatted. Change-Id: I3a76abb6213bb17ef440036295c86d930703b456 Reviewed-on: https://go-review.googlesource.com/c/go/+/269218 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Alberto Donizetti <alb.donizetti@gmail.com> Trust: Alberto Donizetti <alb.donizetti@gmail.com> Trust: Tobias Klauser <tobias.klauser@gmail.com>
2020-10-28os: do not use procfs for os.Executable in dragonflyAntonio Huete Jimenez
procfs(5) is not always mounted in DragonFly BSD, for example during the binary package build with synth. os.Executable() consumers will then fail, we've spotted this when trying to build tinygo: [...] copying source files ./build/tinygo build-builtins -target=armv6m-none-eabi [...] panic: could not get executable path: readlink /proc/curproc/file: no such file or directory [...] Use KERN_PROC_PATHNAME as FreeBSD does. Change-Id: Ic65bea02cd0309fb24dec8ba8d2b151d1acde67b GitHub-Last-Rev: 083120a43b3158bb45d7e1a66fa32e3335a2d407 GitHub-Pull-Request: golang/go#36826 Reviewed-on: https://go-review.googlesource.com/c/go/+/216622 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Trust: Brad Fitzpatrick <bradfitz@golang.org>
2016-11-07os: add Executable() (string, error)Shenghou Ma
// Executable returns the path name for the executable that started // the current process. There is no guarantee that the path is still // pointing to the correct executable. If a symlink was used to start // the process, depending on the operating system, the result might // be the symlink or the path it pointed to. If a stable result is // needed, path/filepath.EvalSymlinks might help. // // Executable returns an absolute path unless an error occurred. // // The main use case is finding resources located relative to an // executable. // // Executable is not supported on nacl or OpenBSD (unless procfs is // mounted.) func Executable() (string, error) { return executable() } Fixes #12773. Change-Id: I469738d905b12f0b633ea4d88954f8859227a88c Reviewed-on: https://go-review.googlesource.com/16551 Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>