1 ==================== Changes in man-pages-5.00 ====================
3 Released: ????-??-??, Munich
9 The following people contributed patches/fixes or (noted in brackets
10 in the changelog below) reports, notes, and ideas that have been
11 incorporated in changes in this release:
13 Adam Manzanares <adam.manzanares@wdc.com>
14 Alan Jenkins <alan.christopher.jenkins@gmail.com>
15 Alec Leamas <leamas.alec@gmail.com>
16 Alessandro Vesely <vesely@tana.it>
17 Alexander E. Patrakov <patrakov@gmail.com>
18 Allison Randal <allison@lohutok.net>
19 Amir Goldstein <amir73il@gmail.com>
20 Anatoly Borodin <anatoly.borodin@gmail.com>
21 Andreas Gruenbacher <agruenba@redhat.com>
22 Andreas Westfeld <andreas.westfeld@htw-dresden.de>
23 Andrei Vagin <avagin@openvz.org>
24 Andrew Price <andy@andrewprice.me.uk>
25 Anthony Iliopoulos <ailiopoulos@suse.com>
26 Antonio Chirizzi <antonio.chirizzi@gmail.com>
27 Antonio Ospite <ao2@ao2.it>
28 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
29 Balbir Singh <bsingharora@gmail.com>
30 Benjamin Peterson <benjamin@python.org>
31 Bernd Petrovitsch <bernd@petrovitsch.priv.at>
32 bert hubert <bert.hubert@powerdns.com>
33 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
34 Burkhard Lück <lueck@hube-lueck.de>
35 Carlos O'Donell <carlos@redhat.com>
36 Claudio Scordino <claudio@evidence.eu.com>
37 Daniel Borkmann <daniel@iogearbox.net>
38 Daniel Kamil Kozar <dkk089@gmail.com>
39 Davidlohr Bueso <dave@stgolabs.net>
40 Davidlohr Bueso <dbueso@suse.de>
41 David Newall <glibc@davidnewall.com>
42 Dmitry V. Levin <ldv@altlinux.org>
43 Elliot Hughes <enh@google.com>
44 Elvira Khabirova <lineprinter@altlinux.org>
45 Emil Fihlman <emil.fihlman@gmail.com>
46 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
47 Eric Benton <erbenton@comcast.net>
48 Eric Sanchis <eric.sanchis@iut-rodez.fr>
49 Eugene Syromiatnikov <esyr@redhat.com>
50 Eugene Syromyatnikov <evgsyr@gmail.com>
51 Felipe Gasper <felipe@felipegasper.com>
52 Florian Weimer <fweimer@redhat.com>
53 Frank Theile <ftheile@grundfos.com>
54 G. Branden Robinson <g.branden.robinson@gmail.com>
55 Goldwyn Rodrigues <rgoldwyn@suse.com>
56 Goldwyn Rodrigues <rgoldwyn@suse.de>
57 Göran Häggsjö <goran.haggsjo@icloud.com>
58 Harry Mallon <hjmallon@gmail.com>
59 Heinrich Schuchardt <xypron.glpk@gmx.de>
60 Heiko Carstens <heiko.carstens@de.ibm.com>
61 Helge Deller <deller@gmx.de>
62 Henry Wilson <henry.wilson@acentic.com>
63 Hiroya Ito <hiroyan@gmail.com>
64 Howard Johnson <hj@HowardJohnson.name>
65 Ian Turner <iturner@janestreet.com>
66 Ignat Loskutov <ignat.loskutov@gmail.com>
67 Ingo Schwarze <schwarze@usta.de>
68 Jakub Wilk <jwilk@jwilk.net>
69 James Weigle <jtweigle@uchicago.edu>
70 Jann Horn <jannh@google.com>
71 Jann Horn <jann@thejh.net>
72 Jason A. Donenfeld <Jason@zx2c4.com>
73 Jeff Moyer <jmoyer@redhat.com>
74 Jens Thoms Toerring <jt@toerring.de>
75 Joe Lawrence <joe.lawrence@redhat.com>
76 Johannes Altmanninger <aclopte@gmail.com>
77 Johannes Liebermann <johanan.liebermann@gmail.com>
78 Jonny Grant <jg@jguk.org>
79 Joseph C. Sible <josephcsible@gmail.com>
80 Joseph Sible <josephcsible@gmail.com>
81 Josh Gao <jmgao@google.com>
82 Josh Triplett <josh@joshtriplett.org>
83 Kees Cook <keescook@chromium.org>
84 Keith Thompson <Keith.S.Thompson@gmail.com>
85 Keno Fischer <keno@juliacomputing.com>
86 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
87 Konst Mayer <cdlscpmv@gmail.com>
88 Leah Hanson <lhanson@pivotal.io>
89 Lucas De Marchi <lucas.demarchi@intel.com>
90 Lucas Werkmeister <mail@lucaswerkmeister.de>
91 Luka Macan <Luka.Macan@fer.hr>
92 Marc-André Lureau <marcandre.lureau@redhat.com>
93 Marcus Gelderie <marcus.gelderie@gmail.com>
94 Marcus Gelderie <redmnic@gmail.com>
95 Marko Myllynen <myllynen@redhat.com>
96 Mark Schott <schottm@google.com>
97 Matthew Bobrowski <mbobrowski@mbobrowski.org>
98 Matthew Kilgore <mattkilgore12@gmail.com>
99 Mattias Engdegård <mattiase@acm.org>
100 Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
101 Michael Becker <mjbecker@web.de>
102 Michael Kerrisk <mtk.manpages@gmail.com>
103 Michael Witten <mfwitten@gmail.com>
104 Michal Hocko <mhocko@suse.com>
105 Mihir Mehta <mihir@cs.utexas.edu>
106 Mike Frysinger <vapier@chromium.org>
107 Mike Frysinger <vapier@gentoo.org>
108 Mike Rapoport <rppt@linux.ibm.com>
109 Mike Weilgart <mike.weilgart@verticalsysadmin.com>
110 Nadav Har'El <nyh@math.technion.ac.il>
111 Nick Gregory <ghost@capsule8.com>
112 Niklas Hambüchen <mail@nh2.me>
113 Nikola Forró <nforro@redhat.com>
114 nixiaoming <nixiaoming@huawei.com>
115 Oded Elisha <oded123456@gmail.com>
116 Paul Eggert <eggert@cs.ucla.edu>
117 Paul Millar <paul.millar@desy.de>
118 Philip Dumont <phil@solidstatescientific.com>
119 Pierre Chifflier <pollux@debian.org>
120 Quentin Monnet <quentin.monnet@netronome.com>
121 Radostin Stoyanov <rstoyanov1@gmail.com>
122 Robert O'Callahan <robert@ocallahan.org>
123 Robert P. J. Day <rpjday@crashcourse.ca>
124 Robin Kuzmin <kuzmin.robin@gmail.com>
125 ruschein <ruschein@protonmail.com>
126 Sam Varshavchik <mrsam@courier-mta.com>
127 Sean Young <sean@mess.org>
128 Shawn Landden <shawn@git.icu>
129 Simone Piccardi <piccardi@truelite.it>
131 Solal Pirelli <solal.pirelli@gmail.com>
132 Stan Schwertly <stan@schwertly.com>
133 Stephan Knauss <linux@stephans-server.de>
134 Szabolcs Nagy <szabolcs.nagy@arm.com>
135 Thomas Posch <kernel.org@online.posch.name>
136 Tobias Klauser <tklauser@distanz.ch>
137 Troy Engel <troyengel@gmail.com>
138 Tycho Andersen <tycho@tycho.ws>
139 Tycho Kirchner <tychokirchner@mail.de>
140 Vince Weaver <vincent.weaver@maine.edu>
141 Wang Nan <wangnan0@huawei.com>
142 William Kucharski <william.kucharski@oracle.com>
143 Xiao Yang <yangx.jy@cn.fujitsu.com>
145 Apologies if I missed anyone!
148 New and rewritten pages
149 -----------------------
151 s390_guarded_storage.2
153 New page documenting s390_guarded_storage(2) s390-specific system call
156 Michael Kerrisk [Eugene Syromyatnikov]
157 New page that contains details of socket address families
158 There is too much detail in socket(2). Move most of it into
162 Michael Kerrisk [Daniel Borkmann, Quentin Monnet]
163 Add new man page for eBPF helper functions
164 (autogenerated from kernel source files)
167 Newly documented interfaces in existing pages
168 ---------------------------------------------
171 Konrad Rzeszutek Wilk [Michael Kerrisk]
172 Document PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
175 Claudio Scordino [Michael Kerrisk]
176 Document SCHED_FLAG_DL_OVERRUN and SCHED_FLAG_RECLAIM
181 Document AF_XDP added in Linux 4.18.
185 Document IN_MASK_CREATE
191 Document SCM_SECURITY ancillary data
194 New and changed links
195 ---------------------
199 New link to malloc(3)
203 Add as a redirect to operator.7
210 Michael Kerrisk [G. Branden Robinson]
211 Use '\e' rather than '\\' to get a backslash
214 Michael Kerrisk [Bjarni Ingi Gislason, G. Branden Robinson]
215 Use zero‐width space in appropriate locations
219 Clarify the distinction between "file descriptor" and "file description"
223 Update paths for in-kernel memory management documentation files
227 Change references to '2.6.0-test*' series kernels to just '2.6.0'
230 Changes to individual pages
231 ---------------------------
235 SEE ALSO: add uconv(1)
239 Note that -f and -c, are reversed from what you might expect
242 Michael Kerrisk [Johannes Altmanninger]
243 Document the -q/--quiet option
245 Update bug reporting address
249 Update JIT support list for Linux 4.18
250 JIT support for x86-32 was during the Linux 4.18 release cycle.
251 Also correct the entry for MIPS (only MIPS64 is supported).
255 SEE ALSO: add bpf-helpers(7)
259 Remove crufty sentence suggesting use of deprecated functions
260 Remove crufty sentence suggesting use of deprecated capsetp(3) and
261 capgetp(3); the manual page for those functions has long (at least
262 as far back as 2007) noted that they are deprecated.
264 Remove first paragraph, which repeats details from capabilities(7)
268 Mention /proc/[pid]/root
271 Michael Kerrisk [Jens Thoms Toerring]
272 CLOCK_MONOTONIC_RAW does not count while the system is suspended
273 Michael Kerrisk [Jens Thoms Toerring]
274 On Linux CLOCK_MONOTONIC counts time that the system has run since boot
275 Michael Kerrisk [Jens Thoms Toerring]
276 CLOCK_MONOTONIC does not count while the system is suspended
278 ERRORS: add EINVAL error for noncanonical clock_settime() value
282 Rework discussion of threads and signals
283 The discussion is phrased in terms of signals sent using kill(2),
284 but applies equally to a signal sent by the kernel.
286 Pending CLONE_NEWPID prevents thread creation
288 Clarify the discussion of threads and signals
289 And explicitly introduce the terms "process-directed" and
290 "thread-directed" signals.
292 Add information about clone and clone2 on IA-64
294 ERRORS: EINVAL occurs with CLONE_NEWUSER if !CONFIG_USER_NS
298 Document error semantics of nonblocking UNIX domain sockets
302 Use the term "interest list" consistently
306 Clarify the behavior when epoll_wait()-ing on an empty interest list
308 Note that epoll_wait() round robins through the set of ready descriptors
312 Move text noting that eventfd() creates a FD earlier in the page
316 Add a little more detail on FAN_REPORT_TID
320 nixiaoming [Amir Goldstein]
321 Document FAN_REPORT_TID
322 fanotify_init.2: add new flag FAN_REPORT_TID
323 fanotify.7: update description of member pid in
324 struct fanotify_event_metadata
326 Document FAN_MARK_FILESYSTEM
327 Monitor fanotify events on the entire filesystem.
328 Matthew Bobrowski [Amir Goldstein]
329 Document FAN_OPEN_EXEC and FAN_OPEN_EXEC_PERM
333 Actual pipe capacity may in practice be less than nominal capacity
334 The number of bytes that can be written to the pipe may be less
335 (sometimes substantially less) than the nominal capacity.
337 Mention that l_sysid is not used even if present
339 Briefly explain the meaning of the 'l_sysid' field in 'struct flock'
343 Make the example use C11 atomics rather than GCC builtins
346 Tobias Klauser [Michael Kerrisk]
347 getcpu() now has a glibc wrapper; remove mention of syscall(2)
348 The glibc wrapper was added in glibc 2.29, release on 1 Feb 2019.
355 Eugene Syromiatnikov [Michael Kerrisk]
356 Describe 2nd return value peculiarity
357 Some architectures (ab)use second return value register for
358 additional return value in some system calls. Let's describe this.
362 Note that a process can drop all groups with: setgroups(0, NULL)
366 Note that setrlimit(RLIMIT_CPU) doesn't fail
368 Resource limits are process-wide attributes shared by all threads
369 This was already noted in pthreads(7), but bears repeating here.
371 Correct information about large limits on 32-bit architectures
375 Glibc provides a wrapper since version 2.30
379 ERRORS: add EINVAL for noncanonical 'tv' argument to settimeofday()
383 Michael Kerrisk [Jens Thoms Toerring]
384 ERRORS: EINVAL can occur if new real time is less than monotonic clock
389 Michael Kerrisk [Andreas Gruenbacher, Enrico Scholz]
390 ERRORS: replace ENOATTR with ENODATA
391 See also https://bugzilla.kernel.org/show_bug.cgi?id=201995
395 Add IN_ONLYDIR based error
397 Note errors that can occur for IN_MASK_CREATE
401 Document IOCB_FLAG_IOPRIO
403 Fix the description of aio_data
404 aio_data is not a kernel-internal field.
407 Michal Hocko [Niklas Hambüchen]
408 MADV_FREE clarify swapless behavior
412 Update hugetlb file-sealing support
414 Fix header for memfd_create()
416 _GNU_SOURCE is required
420 Explicitly state that the fd can be closed
421 Jann Horn [Michal Hocko, William Kucharski]
422 Fix description of treatment of the hint
423 The current manpage reads as if the kernel will always pick a free
424 space close to the requested address, but that's not the case.
428 Clearly distinguish per-mount-point vs per-superblock mount flags
430 MS_SILENT is ignored when changing propagation type
432 Attempts to change MS_SILENT setting during remount are silently ignored
433 Michael Kerrisk [Harry Mallon]
434 Document EROFS for read-only filesystems
435 See https://bugzilla.kernel.org/show_bug.cgi?id=200649
437 Clarify that per-superblock flags are shared during remount
439 Remove crufty sentence about MS_BIND + MS_REMOUNT
441 Mention /proc/PID/mountinfo
442 Many people are unaware of the /proc/PID/mountinfo file. Provide
445 Mandatory locking also now requires CONFIG_MANDATORY_FILE_LOCKING
446 Michael Kerrisk [Simone Piccardi]
447 Add MS_STRICTATIME to list of flags that can be used in remount
449 EACCES: note some reasons why a filesystem may be read-only
451 SEE ALSO: add ioctl_iflags(2)
456 Davidlohr Bueso [Joe Lawrence, Michael Kerrisk]
457 Document STAT_ANY commands
461 Correct the capability description for msgsnd() EACCESS error
465 Add VERSIONS section noting that this system call no longer exists
469 Document ENXIO for sockets
471 Clarify a special use case of O_NONBLOCK for devices
473 Mention presence of unused O_RSYNC definition
474 O_RSYNC is defined in <asm/fcntl.h> on HP PA-RISC, but is not
477 Document FASYNC usage in Linux UAPI headers
479 Remove O_DIRECT-related quotation
480 Remove a section that adds no benefit to the discussion of O_DIRECT.
481 Michael Kerrisk [Robin Kuzmin]
482 Clarify that O_NONBLOCK has no effect on poll/epoll/select
485 Vince Weaver [Wang Nan]
486 Document the PERF_EVENT_IOC_PAUSE_OUTPUT ioctl
487 The PERF_EVENT_IOC_PAUSE_OUTPUT ioctl was introduced in Linux 4.7.
489 Fix wording in multiplexing description
493 Document the PERF_EVENT_IOC_QUERY_BPF ioctl
495 Document the PERF_EVENT_IOC_MODIFY_ATTRIBUTES ioctl
497 Fix prctl behavior description
501 Joseph Sible [Joseph C. Sible]
502 Document EINVAL if root is rootfs
505 Michael Kerrisk [Szabolcs Nagy]
506 Switch to glibc prototype in SYNOPSIS
510 Note that poll() and ppoll() are not affected by O_NONBLOCK
514 Describe the difference between fadvise64/fadvise64_64
518 PR_SET_MM_EXE_FILE may now be used as many times as desired
520 Add some further historical details on PR_SET_MM_EXE_FILE
521 Michael Kerrisk [Jann Horn]
522 Explain the circumstances in which the parent-death signal is sent
524 Rework the PR_SET_PDEATHSIG description a little, for easier readability
526 Add additional info on PR_SET_PDEATHSIG
527 The signal is process directed and the siginfo_t->si_pid
528 filed contains the PID of the terminating parent.
530 Note libcap(3) APIs for operating on ambient capability set
531 (However, the libcap APIs do not yet seem to have
534 Mention libcap APIs for operating on capability bounding set
538 Do not say that PTRACE_O_TRACESYSGOOD may not work
540 BUGS: ptrace() may set errno to zero
544 Fix struct old_linux_dirent in accordance with current definition
547 Xiao Yang [Florian Weimer]
548 Fix wrong errno for an unknown flag
552 glibc 2.28 adds library support for renameat2()
554 Add feature test macro for renameat2()
555 The glibc wrapper for renameat2() was added in glibc 2.28 and
556 requires _GNU_SOURCE.
558 Some additional notes regarding RENAME_WHITEOUT
559 Lucas Werkmeister [Michael Kerrisk]
560 Add kernel versions for RENAME_NOREPLACE support
562 Rework list of supported filesystems for RENAME_NOREPLACE
564 renameat2() now has a glibc wrapper; remove mention of syscall(2)
568 Add a note about runtime_instr.h availability
571 Eugene Syromyatnikov [Heiko Carstens]
576 Add a bit more detail for SCHED_DEADLINE
580 Clarify that scheduling parameters are per-thread (not per-process)
584 (Briefly) document SECCOMP_FILTER_FLAG_SPEC_ALLOW
586 SEE ALSO: add bpfc(1)
590 BUGS: the use of value-result arguments is a design bug
591 Michael Kerrisk [Robin Kuzmin]
592 Note that select() and pselect() are not affected by O_NONBLOCK
595 Michael Kerrisk [Antonio Chirizzi]
596 Diagnose inet_aton() errors with simple fprintf() (not perror())
600 Clarify EPERM capability requirements with respect to user namespaces
604 When joining a user namespace, it must be a descendant user namespace
606 Note capability requirements for changing PID namespace
607 Note capability requirements for changing network, IPC, or UTS namespace
608 Note capability requirements for changing cgroup namespace
610 Some text restructuring and reordering
614 Mention related prctl() requests in SEE ALSO
616 Mention that get_thread_area() is also Linux-specific
618 Describe set_thread_area()/get_thread_area() on m68k/MIPS
622 Clarify EPERM capability requirements with respect to user namespaces
625 Eugene Syromyatnikov [Michael Kerrisk]
626 Describe obsolete usage of struct sigcontext as signal handler argument
630 Clarify that sigsuspend() suspends the calling *thread*
634 Remove references to external docs
635 This information is all in the new address_families(7)
637 Add cross reference to address_families(7)
639 Reinstate AF_VSOCK mention
641 Simplify list of address families
642 Remove many of the details that are in address_families(7)
644 Remove notes concerning AF_ALG and AF_XDP
645 All address families are now documented in address_families.7.
647 Remove some more obscure protocols from address family list
648 The list of address families in this page is still
649 overwhelmingly long. So let's shorten it.
650 The removed entries are all in address_families(7).
652 Remove a few obsolete protocols
653 Documentation for these remains in address_families(7)
657 Note that AF_TIPC also supports socketpair(2)
658 Introduced by Linux commit v4.12-rc1~64^3~304^2~1.
661 Michael Kerrisk [Alessandro Vesely]
662 ERRORS: ENOENT can occur where a path component is a dangling symlink
663 See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=909789
665 SEE ALSO: add statx(2)
668 Tobias Klauser [Michael Kerrisk]
669 statx() now has a glibc wrapper; remove mention of syscall(2)
672 Eugene Syromyatnikov [Michael Kerrisk]
673 Elaborate x32 ABI specifics
675 Fix wrong retval register number in alpha architecture
677 parisc needs care with syscall parameters
679 Rework table to render within 80 columns
683 Change example of a thin syscall wrapper to chdir()
684 As truncate(3) should dispatch between truncate/truncate64,
685 as noted later in the page.
686 Eugene Syromyatnikov [Michael Kerrisk]
688 Added: arc_gettls, arc_settls, arc_usr_cmpxchg, arch_prctl,
689 atomic_barrier, atomic_cmpxchg_32, bfin_spinlock, breakpoint,
690 clone2, cmpxchg, cmpxchg_badaddr, dma_memcpy, execv, get_tls,
691 getdomainname, getdtablesize, gethostname, getxgid, getxpid,
692 getxuid, metag_get_tls, metag_set_fpu_flags,metag_set_tls,
693 metag_set_global_bit, newfstatat, old_adjtimex, oldumount,
694 or1k_atomic, pread, pwrite, riscv_flush_icache,
695 sched_get_affinity, sched_set_affinity, set_tls, setaltroot,
696 sethae, setpgrp, spill, sram_alloc, sram_free, swapcontext,
697 switch_endian, sys_debug_setcontext, syscall, sysmips, timerfd,
698 usr26, usr32, xtensa.
700 Uncommented: memory_ordering
702 Renamed: ppc_rtas to rtas (__NR_rtas), ppc_swapcontext to
703 swapcontext (__NR_swacontext).
705 Note about s390x and old_mmap
707 Add s390_guarded_storage(2)
709 Update syscall list for Linux 4.18
711 Note that not all architectures return errno negated
713 parisc Linux does not any longer emulate HP-UX
715 Comment out details of a few system calls that only ever briefly existed
718 Michael Kerrisk [Shawn Landden]
719 Same EINVAL errors as for clone(2) can also occur with unshare(2)
721 Note EINVAL when unsharing pid ns twice
722 The kernel doesn't allow unsharing a pid NS if it has
723 previously been unshared.
727 Starting with version 2.28, glibc no longer provides a wrapper function
731 Note that vmsplice can splice pages from pipe to memory
735 Add some cross references to core(5)
738 Michael Kerrisk [Nadav Har'El]
739 RETURN VALUE: clarify details of partial write and
740 https://bugzilla.kernel.org/show_bug.cgi?id=197961
742 Add details on partial direct I/O writes
745 Michael Kerrisk [Robin Kuzmin]
746 Prevent any misunderstanding about when allocated memory is released
750 Fix the wrong version of _POSIX_C_SOURCE
753 Michael Kerrisk [Emil Fihlman]
754 Correct argument list for memmem() prototype
758 Explain zero-initialization requirement for CMSG_NXTHDR()
760 Remove out of place mention of MSG_CTRUNC
761 This detail is covered in recvmsg(2), and now also in unix(7).
763 Note that CMSG_FIRSTHDR can return NULL
765 Remove unnecessary 'fdptr' intermediate variable in example code
770 The functions described in these pages are removed in glibc 2.28
774 Describe a case where a symbol value may be NULL
777 Michael Kerrisk [Robert P. J. Day]
778 Mention that errno(1) is part of the 'moreutils' package
781 Michael Kerrisk [Eugene Syromyatnikov]
782 Note that SPARCC provides an execv() system call
786 Note wider sysexits.h availability
790 Warn about closing the result of fileno()
794 Clarify "shell wildcard pattern"
797 Michael Kerrisk [Eric Sanchis]
798 Fix off-by-one error in example client program
802 Rework text on use of getcwd() system call
803 Make it clear that all of the library functions described on this
804 page will use the getcwd() system call if it is present.
806 Add details on the getcwd() syscall and how it used by libc functions
808 Reorder the text describing "(unreachable)" being returned by getcwd()
812 Clarify that endmntent() should be used rather than fclose()
815 Michael Kerrisk [Jakub Wilk]
816 Most non-tty files nowadays result in the error ENOTTY
817 Historically, at least FIFOs and pipes yielded the error EINVAL.
825 Add reference to glibc MallocInternals wiki
827 Note that calloc() detects overflow when multiplying its arguments
829 Since glibc 2.29, realloc() is exposed by defining _DEFAULT_SOURCE
830 Info gleaned from glilic NEWS file.
833 Michael Kerrisk [Göran Häggsjö, Jakub Wilk]
834 Use correct printf() specifier for "size_t" in example program
836 pthread_rwlockattr_setkind_np.3
843 Add text to CONFORMING TO explaining that the "_np"
844 suffix is because these functions are non-portable.
848 Note a glibc extension: putenv("NAME") removes an environment variable
852 Add documentation of res_nclose()
856 Clarify that strcmp() is not locale aware
860 Fix example code for strncpy, which could pass an incorrect length
861 Michael Kerrisk [Frank Theile]
862 Use "destination" consistently (instead of "target" sometimes)
866 Remove incorrect reference to rand(3)
871 Michael Kerrisk [Jakub Wilk]
872 Use 'bytes' not 'characters'
873 This is in line with POSIX terminology.
876 Michael Kerrisk [Jonny Grant]
877 Use '(char *) NULL' rather than '(char *) 0'
879 Note that system() can fail for the same reasons as fork(2)
881 Mention that 'errno' is set on error
885 Note an XTABS alpha issue
888 Michael Kerrisk [Eric Benton, G. Branden Robinson]
889 Make the description a little clearer
891 Emphasize that the return value is a floating-point number
895 Warn folks not to use these functions
901 Document error returns more explicitly
903 lirc.h include file is in /usr/include/linux/lirc.h
904 Sean Young [Alec Leamas, Mauro Carvalho Chehab]
905 Remove ioctls and feature bits which were never implemented
907 Unsupported ioctl() operationsalways return ENOTTY
909 LIRC_MODE_LIRCCODE has been replaced by LIRC_MODE_SCANCODE
911 Document remaining ioctl (LIRC_GET_REC_TIMEOUT)
912 Now all ioctls are documented.
914 Timeout reports are enabled by default
916 Some devices are send only
920 LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE was never supported
921 No driver ever supported such a thing.
923 Clarify the description LIRC_SET_REC_TIMEOUT
927 Add `vcs(4)' and `pty(7)' to the `SEE ALSO' section
930 Mattias Engdegård [Michael Witten]
931 Fix broken example code
935 Add cross reference to vdso(7) where "virtual DSO" is mentioned
943 Clarify glibc versions in which spoof options were removed
946 Michael Kerrisk [Philip Dumont]
948 See also https://bugzilla.kernel.org/show_bug.cgi?id=201441
950 Add an overview section describing the groups of files under /proc
951 Keno Fischer [Robert O'Callahan]
952 Correct description of NStgid
954 Document fdinfo format for timerfd
956 Mention /proc/uptime includes time spent in suspend
958 Reword /proc/PID/fdinfo timerfd field descriptions as a hanging list
960 SEE ALSO: add htop(1) and pstree(1)
961 fs/proc/uptime.c:uptime_proc_show() fetches time using
962 ktime_get_boottime which includes the time spent in suspend.
964 Document /proc/PID/status CoreDumping field
966 Mention choom(1) in discussion of /proc/[pid]/oom_score_adj
968 Add a few details on /rpoc/PID/fdinfo timerfd
970 Document /proc/meminfo KReclaimable field
973 Explain how to determine top-most mount in /proc/PID/mountinfo
974 Explain how to determine the top-most mount at a particular
975 location by inspecting /proc/PID/mountinfo.
976 Michael Kerrisk [Jakub Wilk]
977 Remove bogus suggestion to use cat(1) to read files containing '\0'
979 Refer to mount(2) for explanation of mount vs superblock options
981 Fix description of /proc/PID/* ownership to account for user namespaces
983 Describe ambiguities in /proc/<pid>/maps
984 Michael Kerrisk [Nick Gregory]
985 Since Linux 4.5, "stack:" is no longer shown in /proc/PID/maps
987 Document /proc/[pid]/status Speculation_Store_Bypass field
989 Vmalloc information is no longer calculated (Linux 4.4)
990 Michael Kerrisk [Alexander E. Patrakov, Jakub Wilk, Michael Kerrisk]
991 Use 'tr '\000' '\n' to display contents of /proc/PID/environ
993 Setting dumpable to 1 reverts ownership of /proc/PID/* to effective IDs
995 Document /proc/Meminfo LazyFree field
997 Fix kernel source pathname for soft-dirty documentation
999 /proc/[pid]/status VmPMD field was removed in Linux 4.15
1003 Document no-reload (RES_NPRELOAD) option
1007 Sync from tzdb upstream
1011 Fix some imprecisions in discussion of namespaced file capabilities
1012 The file UID does not come into play when creating a v3
1013 security.capability extended attribute.
1015 Note that v3 security.attributes are transparently created/retrieved
1017 Improve the discussion of when file capabilities are ignored
1018 The text stated that the execve() capability transitions are not
1019 performed for the same reasons that setuid and setgid mode bits
1020 may be ignored (as described in execve(2)). But, that's not quite
1021 correct: rather, the file capability sets are treated as empty
1022 for the purpose of the capability transition calculations.
1024 Rework bounding set as per-thread set in transformation rules
1026 Substantially rework "Capabilities and execution of programs by root"
1027 Rework for improved clarity, and also to include missing details
1028 on the case where (1) the binary that is being executed has
1029 capabilities attached and (2) the real user ID of the process is
1030 not 0 (root) and (3) the effective user ID of the process is 0
1033 Add details about SECBIT_KEEP_CAPS
1034 The description of SECBIT_KEEP_CAPS is misleading about the
1035 effects on the effective capabilities of a process during a
1036 switch to nonzero UIDs. The effective set is cleared based on
1037 the effective UID switching to a nonzero value, even if
1038 SECBIT_KEEP_CAPS is set. However, with this bit set, the
1039 effective and permitted sets are not cleared if the real and
1040 saved set-user-ID are set to nonzero values.
1042 Mention header for SECBIT constants
1043 Mention that the named constants (SECBIT_KEEP_CAPS and others)
1044 are available only if the linux/securebits.h user-space header
1047 Add text introducing bounding set along with other capability sets
1048 Michael Kerrisk [Allison Randal]
1049 Update URL for location of POSIX.1e draft standard
1051 CAP_SYS_CHROOT allows use of setns() to change the mount namespace
1052 Michael Kerrisk [Pierre Chifflier]
1053 Ambient capabilities do not trigger secure-execution mode
1055 Add a subsection on per-user-namespace "set-user-ID-root" programs
1057 Rework discussion of exec and UID 0, correcting a couple of details
1058 Clarify the "Capabilities and execution of programs by root"
1059 section, and correct a couple of details:
1060 * If a process with rUID == 0 && eUID != 0 does an exec,
1061 the process will nevertheless gain effective capabilities
1062 if the file effective bit is set.
1063 * Set-UID-root programs only confer a full set of capabilities
1064 if the binary does not also have attached capabilities.
1066 Update URL for libcap tarballs
1067 The previous location does not seem to be getting updated.
1068 (For example, at the time of this commit, libcap-2.26
1069 had been out for two months, but was not present at
1070 http://www.kernel.org/pub/linux/libs/security/linux-privs.
1072 Clarify which capability sets capset(2) and capget(2) apply to
1073 capset(2) and capget(2) apply operate only on the permitted,
1074 effective, and inheritable process capability sets.
1076 Correct the description of SECBIT_KEEP_CAPS
1078 Add background details on capability transformations during execve(2)
1079 Add background details on ambient and bounding set when
1080 discussing capability transformations during execve(2).
1082 Document the 'no_file_caps' kernel command-line option
1085 Michael Kerrisk [Troy Engel]
1086 Clarify the example by making an implied detail more explicit.
1087 See https://bugzilla.kernel.org/show_bug.cgi?id=201047
1090 Add more detail on v2 'cpu' controller and realtime threads
1091 Explicitly note the scheduling policies that are relevant for the
1092 v2 'cpu' controller.
1096 Document the use of 'cgroup_no_v1=named' to disable v1 named hierarchies
1097 This feature was added in Linux 5.0.
1098 Michael Kerrisk [Mike Weilgart]
1099 Complete partial sentence re kernel boot options and 'nsdelegate'
1100 https://bugzilla.kernel.org/show_bug.cgi?id=201029
1102 Reframe the text on delegation to include more details about cgroups v1
1103 Michael Kerrisk [Leah Hanson]
1104 Rework discussion of writing to cgroup.type file
1105 In particular, it is possible to write "threaded" to a
1106 cgroup.type file if the current type is "domain threaded".
1107 Previously, the text had implied that this was not possible.
1108 Michael Kerrisk [Balbir Singh, Marcus Gelderie]
1109 Soften the discussion about delegation in cgroups v1
1110 Balbir pointed out that v1 delegation was not an accidental
1115 Introduce the terms "interest list" and "ready list"
1117 Consistently use the term "interest list" rather than "epoll set"
1121 Note that edge-triggered notification wakes up only one waiter
1122 Note a useful performance benefit of EPOLLET: ensuring that
1123 only one of multiple waiters (in epoll_wait()) is woken
1124 up when a file descriptor becomes ready.
1126 Expand the discussion of the implications of file descriptor duplication
1127 In particular, note that it may be difficult for an application
1128 to know about the existence of duplicate file descriptors.
1130 feature_test_macros.7
1131 Michael Kerrisk [Andreas Westfeld]
1132 Add more detail on why FTMs must be defined before including any header
1135 Michael Kerrisk [Paul Millar]
1136 Note ENOTDIR error that can occur for IN_ONLYDIR
1137 Note ENOTDIR error that occurs when requesting a watch on a
1138 nondirectory with IN_ONLYDIR.
1142 IP_RECVTTL error fixed
1143 I need to get the TTL of UDP datagrams from userspace, so I set
1144 the IP_RECVTTL socket option. And as promised by ip.7, I then get
1145 IP_TTL messages from recvfrom. However, unlike what the manpage
1146 promises, the TTL field gets passed as a 32 bit integer.
1150 SEE ALSO: remove mdoc.samples(7)
1154 SEE ALSO: add findmnt(8)
1158 List factors that may pin a namespace into existence
1159 Various factors may pin a namespace into existence, even when it
1160 has no member processes.
1161 Michael Kerrisk [Tycho Kirchner]
1162 Briefly explain why CAP_SYS_ADMIN is needed to create nonuser namespaces
1164 Mention ioctl(2) in discussion of namespaces APIs
1166 SEE ALSO: add pam_namespace(8)
1170 Clarify the semantics for the adoption of orphaned processes
1171 Because of setns() semantics, the parent of a process may reside
1172 in the outer PID namespace. If that parent terminates, then the
1173 child is adopted by the "init" in the outer PID namespace (rather
1174 than the "init" of the PID namespace of the child).
1176 Note a detail of /proc/PID/ns/pid_for_children behavior
1177 After clone(CLONE_NEWPID), /proc/PID/ns/pid_for_children is empty
1178 until the first child is created. Verified by experiment.
1180 Note that a process can do unshare(CLONE_NEWPID) only once
1181 (See the recent commit to the unshare(2) manual page.)
1184 Michael Kerrisk [Eugene Syromyatnikov]
1185 In the kernel source SCHED_OTHER is actually called SCHED_NORMAL
1187 SEE ALSO: add ps(1) and top(1)
1189 SEE ALSO: add chcpu(1), lscpu(1)
1192 Michael Kerrisk [Robin Kuzmin]
1193 Clarify that sigsuspend() and pause() suspend the calling *thread*
1195 Add signal numbers for parisc
1197 Unify signal lists into a signal table that embeds standards info
1198 Having the signals listed in three different tables reduces
1199 readability, and would require more table splits if future
1200 standards specify other signals.
1202 Reorder the architectures in the signal number lists
1203 x86 and ARM are the most common architectures, but currently
1204 are in the second subfield in the signal number lists.
1205 Instead, swap that info with subfield 1, so the most
1206 common architectures are first in the list.
1208 Place signal numbers in a separate table
1209 The current tables of signal information are unwieldy,
1210 as they try to cram in too much information.
1212 Insert standards info into tables
1214 SEE ALSO: add clone(2)
1218 Refer reader to unix(7) for information on SO_PASSSEC
1220 SEE ALSO: add address_families(7)
1225 Move text describing SO_PEERCRED from socket(7) to unix(7)
1226 This is, AFAIK, an option specific to UNIX domain sockets, so
1227 place it in unix(7).
1232 Add a reference to socket(7) noting existence of further socket options
1236 Enhance the description of SCM_RIGHTS
1237 The existing description is rather thin. More can be said.
1239 There is a limit on the size of the file descriptor array for SCM_RIGHTS
1240 The limit is defined in the kernel as SCM_MAX_FD (253).
1242 Rework SO_PEERCRED text for greater clarity
1243 Michael Kerrisk [Felipe Gasper]
1244 Clarify SO_PASSCRED behavior
1246 Explicitly note that SO_PASSCRED provides SCM_CREDENTIALS messages
1248 If the buffer to receive SCM_RIGHTS FDs is too small, FDs are closed
1250 One must send at least one byte of real data with ancillary data
1252 Ancillary data forms a barrier when receiving on a stream socket
1254 When sending ancillary data, only one item of each type may be sent
1256 Improve wording describing socket option argument/return values
1258 Clarify treatment of incoming ancillary data if 'msg_control' is NULL
1260 Note behavior if buffer to receive ancillary data is too small
1262 Fix a minor imprecision in description of SCM_CREDENTIALS
1264 Refer reader to socket(7) for information about SO_PEEK_OFF
1268 Rework terminology describing ownership of nonuser namespaces
1269 Prefer the word "owns" rather than "associated with" when
1270 describing the relationship between user namespaces and non-user
1271 namespaces. The existing text used a mix of the two terms, with
1272 "associated with" being predominant, but to my ear, describing the
1273 relationship as "ownership" is more comprehensible.
1277 Fix parisc gateway page description
1280 Michael Kerrisk [Florian Weimer, David Newall]
1281 Document the --preload command-line option added in glibc 2.30
1283 Note delimiters for 'list' in --audit and --inhibit-rpath
1285 Place OPTIONS in alphabetical order
1287 LD_PRELOAD-ed objects are added to link map in left-to-right order
1291 Sync from tzdb upstream
1295 Sync from tzdb upstream