nofollow_posix.mx raw

   1  // Copyright 2024 The Go Authors. All rights reserved.
   2  // Use of this source code is governed by a BSD-style
   3  // license that can be found in the LICENSE file.
   4  
   5  //go:build (unix && !dragonfly && !freebsd && !netbsd) || wasip1
   6  
   7  package unix
   8  
   9  import "syscall"
  10  
  11  // POSIX.1-2008 says it's ELOOP. Most platforms follow:
  12  //
  13  //   - aix: O_NOFOLLOW not documented (https://www.ibm.com/docs/ssw_aix_73/o_bostechref/open.html), assuming ELOOP
  14  //   - android: see linux
  15  //   - darwin: https://github.com/apple/darwin-xnu/blob/main/bsd/man/man2/open.2
  16  //   - hurd: who knows if it works at all (https://www.gnu.org/software/hurd/open_issues/open_symlink.html)
  17  //   - illumos: https://illumos.org/man/2/open
  18  //   - ios: see darwin
  19  //   - linux: https://man7.org/linux/man-pages/man2/openat.2.html
  20  //   - openbsd: https://man.openbsd.org/open.2
  21  //   - solaris: https://docs.oracle.com/cd/E23824_01/html/821-1463/open-2.html
  22  const noFollowErrno = syscall.ELOOP
  23