Skip to content

Commit

Permalink
runtime2: don't check fcntl errno in checkfds on AIX and Solaris
Browse files Browse the repository at this point in the history
On AIX and Solaris the errno value is fetched using m.mOS.perrno.
When checkfds is called, that value has not yet been set up by minit.
Since the error value doesn't really matter in checkfds,
don't bother to check it on AIX and Solaris.

Fixes #61584

Change-Id: I4e679ee3fdad4f0b833ae102597b2d6b8cb46cb6
Reviewed-on: https://go-review.googlesource.com/c/go/+/513215
Run-TryBot: Ian Lance Taylor <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Auto-Submit: Ian Lance Taylor <[email protected]>
Reviewed-by: Roland Shoemaker <[email protected]>
Run-TryBot: Ian Lance Taylor <[email protected]>
  • Loading branch information
ianlancetaylor authored and gopherbot committed Jul 25, 2023
1 parent 09c886d commit 12bd244
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/runtime/fds_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ func checkfds() {
if ret >= 0 {
continue
}

// On AIX and Solaris we can't get the right errno
// value this early in program startup,
// because we haven't yet called minit
// which sets m.mOS.perrno.
// Just assume that the error is EBADF.
if GOOS == "aix" || GOOS == "solaris" {
errno = EBADF
}

if errno != EBADF {
print("runtime: unexpected error while checking standard file descriptor ", i, ", errno=", errno, "\n")
throw("cannot open standard fds")
Expand Down

0 comments on commit 12bd244

Please sign in to comment.