Andrew G. Morgan def8fab2a3 Up the release version to 2.74
Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
2025-03-02 16:09:34 -08:00
..
2024-11-09 23:19:18 -08:00
2025-03-02 10:02:45 -08:00
2025-03-02 11:46:52 -08:00
2025-03-02 16:09:34 -08:00
2025-02-17 21:43:26 -08:00
2025-03-02 10:02:45 -08:00

PSX

The Linux specific Go package, "kernel.org/pub/linux/libs/security/libcap/psx", provides an API for invoking system calls in a way that each system call is mirrored on all OS threads of the combined Go/CGo runtime. Since the Go runtime treats OS threads as interchangeable, a feature like this is needed to meaningfully change process privilege (including dropping privilege) in a Go program running on Linux. This package is required by:

  • "kernel.org/pub/linux/libs/security/libcap/cap"

When compiled CGO_ENABLED=0, the functionality requires go1.16+ to build. That release of Go introduced syscall.AllThreadsSyscall*() APIs. When compiled this way, the PSX package functions psx.Syscall3() and psx.Syscall6() are aliased to syscall.AllThreadsSyscall() and syscall.AllThreadsSyscall6() respectively.

When compiled CGO_ENABLED=1, the functionality is implemented by C code, [lib]psx, which is distributed with libcap.

The official release announcements for libcap and libpsx are on the Fully Capable site.

Like libcap/libpsx, the "psx" package is distributed with a "you choose" License. Specifically: BSD 3-clause, or GPL2. See the License file.

Andrew G. Morgan morgan@kernel.org