Seth McDonald [Mon, 16 Feb 2026 11:45:30 +0000 (21:45 +1000)]
man/man2/mincore.2: HISTORY: Update appearances of mincore(2)
mincore(2) was implemented in FreeBSD on 1995-10-21,[1] and was first
included in the FreeBSD 2.2 release on 1997-03.[2]
It was implemented in NetBSD on 1999-06-15,[3] and was first included in
the NetBSD 1.5 release on 2000-12-06,[4] (despite the commit message
stating its intended inclusion in NetBSD 1.4.1).
It was implemented in OpenBSD on 2001-03-09,[5] and was first included
in the OpenBSD 2.9 release on 2001-06-01.[6]
All other listed systems are taken at face value and rearranged in
chronological-ish order.
[1] Dyson, John (21 Oct 1995). "Implement mincore system call."
FreeBSD source tree (Git repository). Commit 02c04a2f6c83ee28ed637d120296d04da8f03372.
[2] The FreeBSD Project (29 Nov 2025). "Prior Releases – EOL".
<https://www.freebsd.org/releases>
[3] Thorpe, Jason (15 Jun 1999). "Several changes, developed and tested
concurrently:". NetBSD src (CVS repository).
<https://cvsweb.netbsd.org/bsdweb.cgi/src/sys/uvm/uvm_mmap.c?rev=1.22>
[4] The NetBSD Foundation (2026). "History of NetBSD releases".
<https://www.netbsd.org/releases/formal.html>
[5] art (9 Mar 2001). "More syncing to NetBSD." OpenBSD src (CVS
repository).
<https://cvsweb.openbsd.org/src/sys/uvm/uvm_mmap.c?rev=1.7&content-type=text/x-cvsweb-markup>
[6] de Raadt, Theo (1 Jun 2001). "OpenBSD 2.9".
<https://www.openbsd.org/29.html>
man/man2/: HISTORY, STANDARDS: Update history of syscalls H-M
On 2026-01-26T12:28:10+0000, Seth McDonald wrote:
> This set updates the history of system calls H to M.
>
> While I have been thorough with my research, I would encourage those
> interested to double-check that my edits make sense given the listed
> sources. Particularly for linkat(2), SEEK_DATA/SEEK_HOLE, mkdirat(2),
> and mincore(2), since they took significantly more time and research
> than other functions.
Seth McDonald [Mon, 26 Jan 2026 12:30:21 +0000 (12:30 +0000)]
man/man2/msgop.2: STANDARDS, HISTORY: Update POSIX appearances of msg{rcv,snd}(2)
msgrcv(2) and msgsnd(2) appeared in SUSv1.[1] The functions were added
to POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension
(still SUS-only).[2][3] And they remain as an XSI extension in
POSIX.1-2024.[4][5]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", pp. 408-411.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
806-808.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/msgrcv.html>
[3] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
809-811.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/msgsnd.html>
[4] IEEE Std 1003.1-2024, Volume 2, Chapter 3 "System Interfaces", pp.
1475-1477.
<https://pubs.opengroup.org/onlinepubs/9799919799/functions/msgrcv.html>
[5] IEEE Std 1003.1-2024, Volume 2, Chapter 3 "System Interfaces", pp.
1478-1480.
<https://pubs.opengroup.org/onlinepubs/9799919799/functions/msgsnd.html>
Seth McDonald [Mon, 26 Jan 2026 12:30:16 +0000 (12:30 +0000)]
man/man2/msgget.2: STANDARDS, HISTORY: Update POSIX appearances of msgget(2)
msgget(2) appeared in SUSv1.[1] The function was added to POSIX.1-2001
when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2]
And it remains an XSI extension in POSIX.1-2024.[3]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", pp. 406-407.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
804-805.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/msgget.html>
[3] IEEE Std 1003.1-2024, Volume 2, Chapter 3 "System Interfaces", pp.
1473-1474.
<https://pubs.opengroup.org/onlinepubs/9799919799/functions/msgget.html>
Seth McDonald [Mon, 26 Jan 2026 12:30:11 +0000 (12:30 +0000)]
man/man2/msgctl.2: STANDARDS, HISTORY: Update POSIX appearances of msgctl(2)
msgctl(2) appeared in SUSv1.[1] The function was added to POSIX.1-2001
when POSIX and SUS merged, but as an XSI extension (still SUS-only).[2]
And it remains an XSI extension in POSIX.1-2024.[3]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", pp. 404-405.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
802-803.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/msgctl.html>
[3] IEEE Std 1003.1-2024, Volume 2, Chapter 3 "System Interfaces", pp.
1471-1472.
<https://pubs.opengroup.org/onlinepubs/9799919799/functions/msgctl.html>
Seth McDonald [Mon, 26 Jan 2026 12:29:51 +0000 (12:29 +0000)]
man/man2/mlock.2: HISTORY: Update POSIX appearances of m(un)lock(all)(2)
mlock(2), munlock(2), mlockall(2), and munlockall(2) appeared in
POSIX.1-1996.[1][2]
[1] ISO/IEC 9945-1:1996, Section 12.1.1 "Lock/Unlock the Address Space
of a Process".
[2] ISO/IEC 9945-1:1996, Section 12.1.2 "Lock/Unlock a Range of Process
Address Space".
Seth McDonald [Mon, 26 Jan 2026 12:29:36 +0000 (12:29 +0000)]
man/man2/mknod.2: HISTORY: Change order of mknodat(2)
glibc 2.4 released on 2006-03-06.[1] Linux 2.6.16 released on
2006-03-20.[2] So chronologically list glibc before Linux.
POSIX.1-2008 released in 2008, adding mkdirat(2) as an XSI extension.[3]
glibc added mknodat(2) on 2005-12-03.[4] So chronologically list glibc
(and Linux) before POSIX.
[1] McGrath, Roland (6 Mar 2006). "GNU C Library version 2.4 release".
info-gnu (Mailing list).
<https://lists.gnu.org/archive/html/info-gnu/2006-03/msg00000.html>
[2] Linux Kernel Distribution System (20 Mar 2006). "Linux kernel
2.6.16 released". linux-kernel-announce (Mailing list).
<https://lore.kernel.org/linux-kernel-announce/200603200635.k2K6ZOsn003502@hera.kernel.org>
[3] IEEE Std 1003.1-2008, Volume 2, Chapter 3 "System Interfaces", pp.
1298-1301.
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/functions/mknod.html>
[4] Drepper, Ulrich (3 Dec 2005). "* io/Makefile (routines): Add
mknodat, xmknodat, mkdirat, mkfifoat." GNU C Library master sources
(Git repository).
<https://sourceware.org/git/?p=glibc.git;a=commit;h=e186c703dc073b8be95d0bf893bb8ebb127fe02b>
Seth McDonald [Mon, 26 Jan 2026 12:29:31 +0000 (12:29 +0000)]
man/man2/mkdir.2: HISTORY: Update BSD and POSIX appearances of mkdir(2)
mkdir(2) seems to have appeared in 4.2BSD with the system call number
136, as seen in the system's /usr/src/sys/sys/syscalls.c file.[1] The
function also appeared in POSIX.1-1988.[2]
[1] Spinellis, Diomidis (5 Jan 2026). Unix History Repository (Git
repository). Tag "BSD-4_2".
<https://github.com/dspinellis/unix-history-repo/tree/BSD-4_2>
[2] IEEE Std 1003.1-1988, Section 5.4.1 "Make a Directory".
Seth McDonald [Mon, 26 Jan 2026 12:29:24 +0000 (12:29 +0000)]
man/man2/mkdir.2: HISTORY: Change order of mkdirat(2)
glibc 2.4 released on 2006-03-06.[1] Linux 2.6.16 released on
2006-03-20.[2] So chronologically list glibc before Linux.
POSIX.1-2008 released in 2008, adding mkdirat(2) to the
specification.[3] glibc added mkdirat(2) on 2005-12-03,[4] and the
mailing list discussion about its addition seems to suggest it was
considered before it was known that POSIX would add it.[5] So
chronologically list glibc (and Linux) before POSIX.
[1] McGrath, Roland (6 Mar 2006). "GNU C Library version 2.4 release".
info-gnu (Mailing list).
<https://lists.gnu.org/archive/html/info-gnu/2006-03/msg00000.html>
[2] Linux Kernel Distribution System (20 Mar 2006). "Linux kernel
2.6.16 released". linux-kernel-announce (Mailing list).
<https://lore.kernel.org/linux-kernel-announce/200603200635.k2K6ZOsn003502@hera.kernel.org>
[3] IEEE Std 1003.1-2008, Volume 2, Chapter 3 "System Interfaces", pp.
1289-1291.
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/functions/mkdir.html>
[4] Drepper, Ulrich (3 Dec 2005). "* io/Makefile (routines): Add
mknodat, xmknodat, mkdirat, mkfifoat." GNU C Library master sources
(Git repository).
<https://sourceware.org/git/?p=glibc.git;a=commit;h=e186c703dc073b8be95d0bf893bb8ebb127fe02b>
[5] Meyering, Jim (30 Nov 2005). "FYI: new openat-like function:
mkdirat". libc-alpha (Mailing list).
<https://sourceware.org/pipermail/libc-alpha/2005-November/019749.html>
Seth McDonald [Mon, 26 Jan 2026 12:28:59 +0000 (12:28 +0000)]
man/man2/lseek.2: HISTORY: Update appearances of SEEK_{DATA,HOLE}
SEEK_DATA and SEEK_HOLE appeared in Solaris no later than 2005-12-12,
when a ZFS developer stated in a blog post that "[a]t this [time of]
writing, SEEK_HOLE and SEEK_DATA are Solaris-specific."[1] The release
notes for Solaris 10 are dated to 2005-12.[2] So the constants were
likely added in Solaris 10.
They were added to FreeBSD on 2007-04-05,[3] before being released in
FreeBSD 7.0 - the release notes stating that "[s]upport for Sun's ZFS
has been added" for amd64, i386, and pc98.[4]
They were also added to DragonFly BSD on 2009-04-07,[5] before being
released in DragonFly BSD 2.3.1 (which strangely seems to have no
release notes).[6]
The commit adding the constants to DragonFly BSD states that the commit
contents were obtained from FreeBSD.[5] So chronologically FreeBSD is
listed before DragonFly BSD. And the commit adding them to FreeBSD
references their implementation in OpenSolaris.[3] So chronologically
Solaris is listed before FreeBSD.
POSIX.1-2024 is also moved to the end of the list, since it was released
decades after any system discussed here.
[1] Bonwick, Jeff (12 Dec 2005). "SEEK_HOLE and SEEK_DATA for sparse
files". Jeff Bonwick's Weblog. Archived on 25 Oct 2006.
<https://web.archive.org/web/20061025161241/http://blogs.sun.com/bonwick/entry/seek_hole_and_seek_data>
[2] Oracle (Dec 2005). "Solaris 10 Release Notes".
<https://docs.oracle.com/cd/E19253-01/html/817-0552/index.html>
[3] Dawidek, Pawel Jakub (5 Apr 2007). "Implement SEEK_DATA and
SEEK_HOLE extensions to lseek(2) as found in". FreeBSD source tree (Git
repository).
<https://cgit.freebsd.org/src/commit/?id=f6521d1c31810b096dd15afff12cf194d1989a0a>
[4] The FreeBSD Project (15 May 2021). "FreeBSD 7.0-RELEASE Release
Notes". Section 2.2.5 "File Systems".
<https://www.freebsd.org/releases/7.0R/relnotes>
[5] Avalos, Peter (7 Apr 2009). "Clean up sysconf and associated
headers". DragonFly Project Source (Git repository).
<https://gitweb.dragonflybsd.org/dragonfly.git/commit/9d66746cf7a1da0544550266a1c5cb53e776aa01>
[6] Schubert, Simon (7 May 2009). "Roll DragonFly 2.3.1". DragonFly
Project Source (Git repository).
<https://gitweb.dragonflybsd.org/dragonfly.git/commit/33a70342dc4e7f9a4ad7c120a827234a33153ca4>
Seth McDonald [Mon, 26 Jan 2026 12:28:35 +0000 (12:28 +0000)]
man/man2/link.2: HISTORY: Change order of linkat(2)
glibc 2.4 released on 2006-03-06.[1] Linux 2.6.16 released on
2006-03-20.[2] So chronologically list glibc before Linux.
POSIX.1-2008 released in 2008 (shocker!). However, glibc's addition of
linkat(2) on 2005-12-16 declared the function in posix/unistd.h,[3]
implying it was known (or at least suspected) to have been proposed for
inclusion in POSIX.1-2008.[4] So chronologically list POSIX before
glibc.
[1] McGrath, Roland (6 Mar 2006). "GNU C Library version 2.4 release".
info-gnu (Mailing list).
<https://lists.gnu.org/archive/html/info-gnu/2006-03/msg00000.html>
[2] Linux Kernel Distribution System (20 Mar 2006). "Linux kernel
2.6.16 released". linux-kernel-announce (Mailing list).
<https://lore.kernel.org/linux-kernel-announce/200603200635.k2K6ZOsn003502@hera.kernel.org>
[3] Drepper, Ulrich (16 Dec 2005). "*
sysdeps/unix/sysv/linux/renameat.c: Move errno setting code in". GNU C
Library master sources (Git repository).
<https://sourceware.org/git/?p=glibc.git;a=commit;h=5c46041a9c8e0431f0b329a94becfc5d576d12cb>
[4] IEEE Std 1003.1-2008, Volume 2, Chapter 3 "System Interfaces", pp.
1216-1220.
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/functions/link.html>
Mark Harris [Wed, 28 Jan 2026 06:46:24 +0000 (22:46 -0800)]
man/man7/feature_test_macros.7: Drop _ISOC9X_SOURCE
_ISOC9X_SOURCE was a temporary macro for use before the final name
of the standard was known. It became obsolete when _ISOC99_SOURCE
was added in glibc 2.1.3 (1999), and has not been recognized since
_ISOC11_SOURCE was added in glibc 2.16 (2012).[1]
This is true for Fedora, where this page was sourced from, but I don't
believe it has ever been true for the mainline kernel, because Linus
rejected it.
Link: <https://bbs.archlinux.org/viewtopic.php?pid=2088704#p2088704>
Link: <https://lore.kernel.org/lkml/CA+55aFzYbpRAdma0PvqE+9ygySuKzNKByqOzzMufBoovXVnfPw@mail.gmail.com/> Fixes: bb509e6fcbae (2020-10-16; "kernel_lockdown.7: New page documenting the Kernel Lockdown feature") Signed-off-by: Alyssa Ross <hi@alyssa.is>
Message-ID: <20260203195001.20131-1-hi@alyssa.is> Acked-by: Xiu Jianfeng <xiujianfeng@huawei.com>
Message-ID: <aa62e24c-537e-4141-9507-37cd0af19dfc@huawei.com> Acked-by: Nicolas Bouchinet <nicolas.bouchinet@oss.cyber.gouv.fr>
Message-ID: <aYYP23WUyydsMGyx@archlinux> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de> Cc: David Howells <dhowells@redhat.com> Cc: <linux-security-module@vger.kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
The following diagnostic was triggered. It's not a false positive, but
adding const wouldn't be helpful int his example.
remote: .tmp/man/man2/userfaultfd.2.d/userfaultfd.c:121:17: style: Variable 'addr' can be declared as pointer to const [constVariablePointer]
remote: char *addr; /* Start of region handled by userfaultfd */
remote: ^
Some authors have given express permission for the transformation done
in that old commit, and their notices remain transformed. But those
that didn't give express permission have their copyright notices
restored now.
It's unclear whether the transformation was legally valid. I believe it
was, but since IANAL, and just to be cautious, we've agreed to restore
them.
This restoration, at least, unifies the formatting, to reduce entropy.
man/man2/: HISTORY, STANDARDS: Update history of system calls CI-G
On Wed, Jan 21, 2026 at 12:06:52PM +0000, Seth McDonald wrote:
> This patch set updates the POSIX/SUS history of system calls with
> identifiers starting with CI through G. It also attempts to provide
> chronological order where possible, similar to the last patch set.
Seth McDonald [Thu, 22 Jan 2026 02:26:05 +0000 (02:26 +0000)]
man/man2/gettimeofday.2: HISTORY: Update first POSIX appearance of gettimeofday(2)
gettimeofday(2) first appeared in SUSv1.[1] The function was added to
POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still
SUS-only).[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", p. 275.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", p.
567.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/gettimeofday.html>
Seth McDonald [Thu, 22 Jan 2026 02:26:01 +0000 (02:26 +0000)]
man/man2/getrusage.2: HISTORY: Update first POSIX appearance of getrusage(2)
getrusage(2) first appeared in SUSv1.[1] The function was added to
POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still
SUS-only).[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", p. 271.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
554-555.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/getrusage.html>
Seth McDonald [Thu, 22 Jan 2026 02:25:57 +0000 (02:25 +0000)]
man/man2/getsid.2: HISTORY: Update first POSIX appearance of getsid(2)
getsid(2) first appeared in SUSv1.[1] The function was added to
POSIX.1-2001 when POSIX and SUS merged, but as an XSI extension (still
SUS-only).[2] Then POSIX.1-2008 added it to the base specification.[3]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", p. 273.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", p.
558.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/getsid.html>
[3] IEEE Std 1003.1-2008, Volume 2, Chapter 3 "System Interfaces", p.
1073.
<https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/functions/getsid.html>
Seth McDonald [Thu, 22 Jan 2026 02:25:52 +0000 (02:25 +0000)]
man/man2/getrlimit.2: HISTORY: Update first POSIX appearance of [gs]etrlimit(2)
getrlimit(2) and setrlimit(2) first appeared in SUSv1.[1] The functions
were added to POSIX.1-2001 when POSIX and SUS merged, but as an XSI
extension (still SUS-only).[2] Then POSIX.1-2024 added them to the base
specification.[3]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", pp. 269-270.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
551-553.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/getrlimit.html>
[3] IEEE Std 1003.1-2024, Volume 2, Chapter 3 "System Interfaces", pp.
1176-1179.
<https://pubs.opengroup.org/onlinepubs/9799919799/functions/getrlimit.html>
Seth McDonald [Thu, 22 Jan 2026 02:25:44 +0000 (02:25 +0000)]
man/man2/getpriority.2: HISTORY: Update first POSIX appearance of [gs]etpriority(2)
getpriority(2) and setpriority(2) first appeared in SUSv1.[1] The
functions were added to POSIX.1-2001 when POSIX and SUS merged, but as
an XSI extension (still SUS-only).[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", pp. 262-263.
[2] IEEE Std 1003.1-2001, Volume 2, Chapter 3 "System Interfaces", pp.
540-542.
<https://pubs.opengroup.org/onlinepubs/009604499/functions/getpriority.html>
Seth McDonald [Thu, 22 Jan 2026 02:25:08 +0000 (02:25 +0000)]
man/man2/fsync.2: HISTORY: Update first POSIX appearance of fsync(2)
fsync(2) first appeared in SUSv1.[1] The function was then added to
POSIX.1-1996.[2]
[1] X/Open CAE Specification, System Interfaces and Headers Issue 4,
Version 2, Chapter 3 "System Interfaces", p. 214.
[2] ISO/IEC 9945-1:1996, Section 6.6.1 "Synchronize the State of a
File".