summaryrefslogtreecommitdiffstats
path: root/Changes
blob: 20417d6ecb4701a69850ee288e68cbc38314216e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
==================== Changes in man-pages-4.14 ====================

Released: ????-??-??, Paris


Contributors
------------

The following people contributed patches/fixes or (noted in brackets
in the changelog below) reports, notes, and ideas that have been
incorporated in changes in this release:

Adhemerval Zanella <adhemerval.zanella@linaro.org>
Adrian Bunk <bunk@kernel.org>
Ahmad Fatoum <ahmad@a3f.at>
Andrea Arcangeli <aarcange@redhat.com>
Bastien Roucaries <roucaries.bastien@gmail.com>
Breno Leitao <leitao@debian.org>
Carlos O'Donell <carlos@redhat.com>
Christian Brauner <christian.brauner@ubuntu.com>
Christoph Hellwig <hch@lst.de>
Colm MacCárthaigh <colm@allcosts.net>
Craig Ringer <craig.ringer@2ndquadrant.com>
Cristian Rodríguez <crrodriguez@opensuse.org>
David Eckardt <david.eckardt@sociomantic.com>
Don Brace <don.brace@microsemi.com>
Elliot Hughes <enh@google.com>
Eric W. Biederman <ebiederm@xmission.com>
Fabio Scotoni <fabio@esse.ch>
Fangrui Song <i@maskray.me>
Florian Weimer <fweimer@redhat.com>
G. Branden Robinson <g.branden.robinson@gmail.com>
Goldwyn Rodrigues <rgoldwyn@suse.com>
Grégory Vander Schueren <gregory.vanderschueren@tessares.net>
Jakub Wilk <jwilk@jwilk.net>
Jann Horn <jannh@google.com>
Jeff Layton <jlayton@redhat.com>
Jens Axboe <axboe@kernel.dk>
Jonny Grant <jg@jguk.org>
Julien Gomes <julien@arista.com>
Kees Cook <keescook@chromium.org>
Křištof Želechovski <giecrilj@stegny.2a.pl>
Lennart Poettering <lennart@poettering.net>
Lucas Werkmeister <mail@lucaswerkmeister.de>
Marcus Folkesson <marcus.folkesson@gmail.com>
Marin H. <mar-tSIEzQ@neutronstar.noip.me>
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Matthew Wilcox <willy@infradead.org>
Michael Kerrisk <mtk.manpages@gmail.com>
Michal Hocko <mhocko@kernel.org>
Michał Zegan <webczat_200@poczta.onet.pl>
Mihir Mehta <mihir@cs.utexas.edu>
Mike Frysinger <vapier@chromium.org>
Mike Kravetz <mike.kravetz@oracle.com>
Mike Rapoport <rppt@linux.vnet.ibm.com>
Miklos Szeredi <mszeredi@redhat.com>
NeilBrown <neilb@suse.com>
Oliver Ebert <oe@outputenable.net>
Pedro Alves <palves@redhat.com>
Per Böhlin <Per.Bohlin@zenterio.com>
Peter Zijlstra <peterz@infradead.org>
Petr Malat <oss@malat.biz>
Petr Uzel <petr.uzel@suse.cz>
Prakash Sangappa <prakash.sangappa@oracle.com>
Raghavendra D Prabhu <me@rdprabhu.com>
Rahul Bedarkar <rpal143@gmail.com>
Ram Pai <linuxram@us.ibm.com>
Richard Knutsson <richard.knutsson@abelko.se>
Rik van Riel <riel@redhat.com>
Scott Vokes <vokes.s@gmail.com>
Seonghun Lim <wariua@gmail.com>
Stas Sergeev <stsp@list.ru>
Stefan Puiu <stefan.puiu@gmail.com>
Thomas Gleixner <tglx@linutronix.de>
Tobias Klausmann <klausman@schwarzvogel.de>
Tomas Pospisek <tpo@sourcepole.ch>
Tyler Hicks <tyhicks@canonical.com>
Victor Porton <porton@narod.ru>
Walter Harms <wharms@bfs.de>
Wesley Aptekar-Cassels <w.aptekar@gmail.com>
Yubin Ruan <ablacktshirt@gmail.com>
Zack Weinberg <zackw@panix.com>
Дилян Палаузов <dilyan.palauzov@aegee.org>

Apologies if I missed anyone!


New and rewritten pages
-----------------------

pthread_spin_init.3
    Michael Kerrisk  [Peter Zijlstra, Thomas Gleixner, Zack Weinberg,
                     Florian Weimer]
        New page describing pthread_spin_init(3) and pthread_spin_destroy(3)

pthread_spin_lock.3
    Michael Kerrisk  [Carlos O'Donell]
        New page describing functions that lock and unlock spin locks
            Add a page describing pthread_spin_lock(3), pthread_spin_unlock(3),
            and pthread_spin_trylock(3).

smartpqi.4
    Don Brace  [Michael Kerrisk, G. Branden Robinson]
            Document the smartpqi SCSI driver

veth.4
    Tomáš Pospíšek, Eric Biederman, Michael Kerrisk
        New page document veth virtual ethernet devices
            Based on a page from Tomáš Pospíšek, with some clean-ups by mtk.


Removed pages
-------------

infnan.3:
    Michael Kerrisk
        This function was in libc4 and libc5, but never part
        of glibc. It ceased to be relevant nearly 20 years
        ago. Time to remove the man page.


Newly documented interfaces in existing pages
---------------------------------------------

ioctl_userfaultfd.2
userfaultfd.2
    Prakash Sangappa  [Andrea Arcangeli, Mike Rapoport]
        Add description for UFFD_FEATURE_SIGBUS

madvise.2
    Rik van Riel  [Colm MacCárthaigh, Michael Kerrisk]
        Document MADV_WIPEONFORK and MADV_KEEPONFORK
    Michael Kerrisk
        Note fork() and execve() semantics for wipe-on-fork setting

membarrier.2
    Mathieu Desnoyers
        Update membarrier manpage for 4.14
            Add documentation for these new membarrier() commands:
                    MEMBARRIER_CMD_PRIVATE_EXPEDITED
                    MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED

memfd_create.2
    Mike Kravetz
        Add description of MFD_HUGETLB (hugetlbfs) support
            hugetlbfs support for memfd_create() was recently merged by Linus
            and should be in the Linux 4.14 release.  To request hugetlbfs
            support a new memfd_create() flag (MFD_HUGETLB) was added.

readv.2
    Christoph Hellwig
        Document RWF_NOWAIT added in Linux 4.14

seccomp.2
    Tyler Hicks
        Document the SECCOMP_GET_ACTION_AVAIL operation added in Linux 4.14
    Tyler Hicks
        Document the SECCOMP_FILTER_FLAG_LOG flag added in Linux 4.14
    Tyler Hicks
        Document the SECCOMP_RET_LOG action added In Linux 4.14
    Michael Kerrisk  [Kees Cook]
        Add description of SECCOMP_RET_KILL_PROCESS
    Michael Kerrisk
        Add SECCOMP_RET_KILL_THREAD description and rework SECCOMP_RET_KILL text
    Michael Kerrisk
        Document the seccomp audit logging feature added in Linux 4.14

seccomp.2
proc.5
    Tyler Hicks
        Document the seccomp /proc interfaces added in Linux 4.14
            Document the seccomp /proc interfaces in Linux 4.14:
            /proc/sys/kernel/seccomp/actions_avail and
            /proc/sys/kernel/seccomp/actions_logged.

sigaltstack.2
    Michael Kerrisk  [Stas Sergeev]
        Document the SS_AUTODISARM flag added in Linux 4.7

proc.5
    Michael Kerrisk
        Document /proc/locks
    Oliver Ebert
        Document /proc/kpagecgroup
    Oliver Ebert
        Add KPF_BALLOON, KPF_ZERO_PAGE, and KPF_IDLE for /proc/kpageflags

pid_namespaces.7
    Michael Kerrisk
        Document /proc/sys/kernel/ns_last_pid


New and changed links
---------------------

pthread_spin_destroy.3
    Michael Kerrisk
        New link to new pthread_spin_init.3 page

pthread_spin_trylock.3
pthread_spin_unlock.3
    Michael Kerrisk
        New links to new pthread_spin_lock.3 page


Global changes
--------------

Various pages
    Michael Kerrisk
        Consistently use "x86-64", not "x86_64"
            When referring to the architecture, consistently use "x86-64",
            not "x86_64". Hitherto, there was a mixture of usages, with
            "x86-64" predominant.

Various pages
    G. Branden Robinson
        Replace incorrect uses of Latin abbreviation "cf.".
            People seem to be using "cf." ("confere"), which means "compare",
            to mean "see" instead, for which the Latin abbreviation would be


Changes to individual pages
---------------------------

capget.2
    Michael Kerrisk
        Clarify discussion of kernels that have no VFS capability support

clock_getres.2
    Michael Kerrisk
        clock_gettime() may be implemented in the vDSO

clone.2
    Michael Kerrisk
        Warn that the clone() wrapper modifies child_stack in the parent
    Michael Kerrisk
        Rework the discussion of the historical CLONE_PID for clarity
    Michael Kerrisk
        Add NOTES heading
    Michael Kerrisk
        Add a reference to new veth(4) page
    Michael Kerrisk
        Eliminate some redundant phrasing in discussion of "fn()"
    Michael Kerrisk
        Combine redundant paragraphs describing child_stack==NULL
    Michael Kerrisk
        Note that child_stack can be NULL when using the raw system call
    Michael Kerrisk
        Remove a redundant paragraph

connect.2
    Michael Kerrisk
        Clarify that ECONNREFUSED is for stream sockets

fcntl.2
    Michael Kerrisk  [Jens Axboe]
        Inode read-write hints persist only until the filesystem is unmounted

flock.2
    Michael Kerrisk
        Move NFS details to a headed subsection
    Michael Kerrisk  [Petr Uzel]
        Placing an exclusive lock over NFS requires the file is open for writing

fork.2
    Rik van Riel  [Colm MacCárthaigh, Michael Kerrisk]
        Document effect of MADV_WIPEONFORK

fork.2
getsid.2
setpgid.2
setsid.2
    Ahmad Fatoum
        Include <sys/types.h> in SYNOPSIS to obtain declaration of pid_t

fsync.2
    Craig Ringer
        ERRORS: add ENOSPC

getcpu.2
    Michael Kerrisk
        getcpu() may have an implementation in the vDSO

getpid.2
    Michael Kerrisk
        Mention that PID == TGID, and note contrast with TID
    Michael Kerrisk
        SEE ALSO: add gettid(2)

getrandom.2
    Michael Kerrisk  [Fabio Scotoni]
        ERRORS: add ENOSYS

getrlimit.2
    Michael Kerrisk  [Scott Vokes]
        Make it clear RLIMIT_NPROC is a limit on current number of processes
            https://twitter.com/silentbicycle/status/893849097903505409

gettid.2
    Michael Kerrisk
        SEE ALSO: add getpid(2)

gettimeofday.2
    Michael Kerrisk
        Note that gettimeofday() may be implemented in the vDSO

ioctl_userfaultfd.2
    Michael Kerrisk
        Rework version information for feature bits

io_submit.2
    Goldwyn Rodrigues
        Add iocb details to io_submit
            Add more information about the iocb structure. Explains the
            fields of the I/O control block structure which is passed to the
            io_submit() call.
    Michael Kerrisk
        Add cross-reference to io_getevents(2)
    Michael Kerrisk
        Cross reference pwritev(2) in discussion of RWF_SYNC and RWF_DSYNC

membarrier.2
    Mathieu Desnoyers
        Update example to take TSO into account
            The existing example given specifically states that it focus on
            x86 (TSO memory model), but gives a read-read vs write-write
            ordering example, even though this scenario does not require
            explicit barriers on TSO.

            So either we change the example architecture to a weakly-ordered
            architecture, or we change the example to a scenario requiring
            barriers on x86.

            Let's stay on x86, but provide a Dekker as example instead.
    Mathieu Desnoyers
            Adapt the MEMBARRIER_CMD_SHARED return value documentation to
            reflect that it now returns -EINVAL when issued on a system
            configured for nohz_full.

memfd_create.2
    Michael Kerrisk
        Note the limit for size of 'name'

mkdir.2
    Michael Kerrisk  [Raghavendra D Prabhu]
        ERRORS: document EINVAL error for invalid filename

mmap.2
    Michael Kerrisk
        Add explicit text noting that 'length' must be greater than 0
            Currently, this detail is hidden in ERRORS. Make it clear in
            the main text.
    Michael Kerrisk
        SEE ALSO: add ftruncate(2)

mremap.2
    Mike Kravetz  [Florian Weimer, Jann Horn]
        Add description of old_size == 0 functionality
            Since at least the 2.6 time frame, mremap() would create a new
            mapping of the same pages if 'old_size == 0'.  It would also leave
            the original mapping.  This was used to create a 'duplicate
            mapping'.

            A recent change was made to mremap() so that an attempt to create a
            duplicate a private mapping will fail.
    Michael Kerrisk  [Michal Hocko, Mike Kravetz]
        BUGS: describe older behavior for old_size==0 on private mappings
            Explain the older behavior, and why it changed. This is a
            follow-up to Mike Kravetz's patch documenting the behavior
            for old_size==0 with shared mappings.
    Michael Kerrisk
        Reformat EINVAL errors as a list

open.2
    Michael Kerrisk
        By contrast with O_RDONLY, no file permissions are required for O_PATH
            Note one of the significant advantages of O_PATH: many of the
            operations applied to O_PATH file descriptors don't require
            read permission, so there's no reason why the open() itself
            should require read permission.
    Michael Kerrisk
        Note use of O_PATH to provide O_EXEC functionality
    Michael Kerrisk
        Mention O_PATH file descriptor use with fexecve(3)
    Michael Kerrisk
        ERRORS: document EINVAL error for invalid filename
    Michael Kerrisk
        Clarify that O_TMPFILE creates a *regular* file
    Michael Kerrisk
        Make it explicit that O_CREAT creates a regular file
    Michael Kerrisk
        Since glibc 2.26, the open() wrapper always uses the openat() syscall
    Michael Kerrisk
        Change pathname used in discussion of rationale for openat()
            /path/to/file is a little confusing as a pathname
    Michael Kerrisk
        Make the purpose of open() a little clearer at the start of the page

open_by_handle_at.2
    NeilBrown
        Clarifications needed due to NFS reexport
    NeilBrown  [Lennart Poettering]
        Clarify MAX_HANDLE_SZ
            As hinted in the kernel source, MAX_HANDLE_SZ is a hint
            rather than a promise.

pipe.2
    Michael Kerrisk  [Marin H.]
        Since Linux 4.5, fcntl() can be used to set O_DIRECT for a pipe
            See https://bugzilla.kernel.org/show_bug.cgi?id=197917

pivot_root.2
    Michael Kerrisk
        SEE ALSO: add switch_root(8)

pkey_alloc.2
    Breno Leitao
        Fix argument order
            Currently pkey_alloc() syscall has two arguments, and the very
            first argument is still not supported and should be set to zero.
            The second argument is the one that should specify the
            page access rights.

ptrace.2
    Michael Kerrisk
        SEE ALSO: add ltrace(1)

reboot.2
    Michael Kerrisk  [Michał Zegan]
        Fix bogus description of reboot() from non-initial PID namespace
            The current text was confused (mea culpa). No signal is sent to
            the init() process. Rather, depending on the 'cmd' given to
            reboot(), the 'group_exit_code' value will set to either SIGHUP or
            SIGINT, with the effect that one of those signals is reported to
            wait() in the parent process.

            See https://bugzilla.kernel.org/show_bug.cgi?id=195899
    Michael Kerrisk
        SEE ALSO: remove reboot(8) (synonym for halt(8)); add shutdown(8)
    Michael Kerrisk
        SEE ALSO: add systemctl(1), systemd(1)

recvmmsg.2
sendmmsg.2
    Elliot Hughes
        Type fixes in SYNOPSIS
            [mtk: The raw system calls use "unsigned int", but the glibc
            wrappers have "int" for the 'flags' argument.]

sched_setaffinity.2
    Michael Kerrisk
        SEE ALSO: add numactl(8)

sched_yield.2
    Michael Kerrisk  [Peter Zijlstra]
        sched_yield() is intended for use with real-time scheduling policies

seccomp.2
    Michael Kerrisk  [Adhemerval Zanella, Florian Weimer, Kees Cook]
        Add some Caveats regarding the use of seccomp filters
    Michael Kerrisk
        Document the "default" filter return action
            The kernel defaults to either SECCOMP_RET_KILL_PROCESS
            or SECCOMP_RET_KILL_THREAD for unrecognized filter
            return action values.
    Michael Kerrisk  [Kees Cook]
        Change SECCOMP_RET_ACTION to SECCOMP_RET_ACTION_FULL
            In Linux 4.14, the action component of the return value
            switched from being 15 bits to being 16 bits. A new macro,
            SECCOMP_RET_ACTION_FULL, that masks the 16 bits was added,
            to replace the older SECCOMP_RET_ACTION.
    Michael Kerrisk
        Explicitly note that other threads survive SECCOMP_RET_KILL_THREAD
    Michael Kerrisk
        SEE ALSO: add strace(1)

send.2
    Grégory Vander Schueren
        Add EALREADY to ERRORS

setns.2
    Michael Kerrisk
        SEE ALSO: add nsenter(1)

shmop.2
    Yubin Ruan
        Note that return value of shmat() is page-aligned

sigaction.2
    Michael Kerrisk
        Rework discussion of SA_SIGINFO handler arguments
            Expand and rework the text a little, in particular adding
            a reference to sigreturn(2) as a source of further
            information about the ucontext argument.
    Michael Kerrisk
        Mention that libc sets the act.sa_restorer field

sigaltstack.2
    Michael Kerrisk  [Walter Harms]
        Reword BUGS text to be a little clearer
    Michael Kerrisk
        Add explicit error handling to example code
    Michael Kerrisk
        Add use of sigaction() to example code

sigreturn.2
    Michael Kerrisk
        Make it a little clearer that a stack frame is created by the kernel
    Michael Kerrisk
        glibc has a simple wrapper for sigreturn() that returns ENOSYS

splice.2
    Michael Kerrisk
        Since Linux 2.6.31,'fd_in' and 'fd_out' may both refer to pipes

stat.2
    Michael Kerrisk  [Richard Knutsson]
        Use lstat() instead of stat()
            It's more logical to use lstat() in the example code,
            since one can then experiment with symbolic links, and
            also the S_IFLNK case can also occur.
    NeilBrown
        Correct AT_NO_AUTOMOUNT text and general revisions
            Expand on the relationship between fstatat() and the other three
            functions, and improve the description of AT_NO_AUTOMOUNT.
            Specifically, both  stat() and lstat() act the same way with
            respect to automounts, and that behavior matches fstatat() with
            the AT_NO_AUTOMOUNT flag.

statfs.2
    Michael Kerrisk
        Add some comments noting filesystems that are no longer current
    Michael Kerrisk
        Add comments describing a few filesystem types

time.2
    Michael Kerrisk
        Note that time() may be implemented in the vDSO
    Michael Kerrisk  [Victor Porton]
        Language fix-up: clarify that "tasks" means "work"
            See https://bugzilla.kernel.org/show_bug.cgi?id=197183

userfaultfd.2
    Mike Rapoport
        BUGS: document spurious UFFD_EVENT_FORK

write.2
fsync.2
close.2
    NeilBrown  [Jeff Layton]
        Update description of error codes
            Since 4.13, errors from writeback are more reliably reported
            to all file descriptors that might be relevant.

            Add notes to this effect, and also add detail about ENOSPC and
            EDQUOT which can be delayed in a similar many to EIO - for NFS
            in particular.

abort.3
    Michael Kerrisk
        Starting with glibc 2.27, abort() does not attempt to flush streams
    Michael Kerrisk
        SEE ALSO: add assert(3)

backtrace_symbols_fd(3)
    Stefan Puiu  [Walter Harms]
        backtrace_symbols_fd() can trigger a call to malloc()

daemon.3
    Michael Kerrisk
        SEE ALSO: add daemon(7), logrotate(8)

errno.3
    Michael Kerrisk
        Note use of errno(1) to look up error names and numbers
    Michael Kerrisk
        Update error list for POSIX.1-2008
            POSIX.1-2008 specified a couple of new errors not present in
            POSIX.1-2001.
    Michael Kerrisk  [Walter Harms]
        Note the use of perror(3) and strerror(3)
    Michael Kerrisk
        Recast the advice against manually declaring 'errno'
            Recast the advice against manually declaring 'errno' to
            a more modern perspective. It's 13 years since the original
            text was added, and even then it was describing old behavior.
            Cast the description to be about behavior further away in
            time, and note more clearly that manual declaration will
            cause problems with modern C libraries.
    Michael Kerrisk
        Add some missing errors
    Michael Kerrisk
        Error numbers are positive values (rather than nonzero values)
            POSIX.1-2008 noted the explicitly the change (to align with
            the C standards) that error numbers are positive, rather
            than nonzero.
    Michael Kerrisk
        Reorganize the text and and some subheadings
            Restructure the text and add some subheadings for better
            readability. No (intentional) content changes.
    Michael Kerrisk  [Wesley Aptekar-Cassels]
        Note that error numbers vary somewhat across architectures
            Added after a patch from Wesley Aptekar-Cassels that proposed
            to add error numbers to the text.
    Michael Kerrisk
        Note the <errno.h> also provides the symbolic error names
    Michael Kerrisk  [Walter Harms]
        Explicitly note that error numbers vary also across UNIX systems

exec.3
    Michael Kerrisk
        glibc 2.24 dropped CWD from the default path
            Document the glibc 2.24 change that dropped CWD from the default
            search path employed by execlp(), execvp() and execvpe() when
            PATH is not defined.

fexecve.3
    Michael Kerrisk
        O_PATH file descriptors are also usable with fexecve()
    Cristian Rodríguez
        fexecve() is now implemented with execveat(2), where available
    Michael Kerrisk
        Add some detail on the glibc implementation of fexecve() via execveat(2)

ffs.3
    Michael Kerrisk
        glibc 2.27 relaxes the FTM requirements for ffsl() and ffsll()

get_nprocs_conf.3
    Michael Kerrisk
        SEE ALSO: add nproc(1)

lround.3
    Michael Kerrisk  [David Eckardt]
        Clarify that lround() rounds *halfway cases" away from zero
            See https://bugzilla.kernel.org/show_bug.cgi?id=194601

makedev.3
    Adrian Bunk
        glibc has deprecated exposing the definitions via <sys/types.h>

mallinfo.3
    Jakub Wilk
        Fix the example
            Remove reference to non-standard "tlpi_hdr.h" and replace calls to
            functions that were declared in this header.

malloc.3
    Michael Kerrisk
        SEE ALSO: add valgrind(1)

popen.3
    Michael Kerrisk
        Add a cross reference to Caveats in system(3)
            All of the same risks regarding system() also apply to popen().

pthread_detach.3
    Michael Kerrisk  [Rahul Bedarkar]
        Improve sentence describing freeing of resources on process termination
            As reported by Rahul, the existing sentence could be read as
            meaning that resources of joined and terminated detached
            threads are freed only at process termination. Eliminate
            that possible misreading.

pthread_yield.3
    Michael Kerrisk  [Peter Zijlstra]
        pthread_yield() is intended for use with real-time scheduling policies

setlocale.3
    Michael Kerrisk  [Křištof Želechovski]
        The standards do not specify all of the locale categories

sockatmark.3
    Seonghun Lim
        Fix cruft in code example

stdio.3
    Michael Kerrisk
        Use proper section cross references in function list
    Michael Kerrisk
        Remove crufty reference to pc(1)

sysconf.3
    Michael Kerrisk
        Mention get_nprocs_conf(3)
            Mention get_nprocs_conf(3) in discussion of _SC_NPROCESSORS_CONF
            and _SC_NPROCESSORS_ONLN.

system.3
    Michael Kerrisk  [Bastien Roucaries]
        Create a "Caveats" subsection to hold warnings about the use of system()
        See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882222
    Michael Kerrisk  [Bastien Roucaries]
        Mention PATH explicitly in discussion of system() and set-UID programs
    Michael Kerrisk  [Bastien Roucaries]
        Note that user input for system() should be carefully sanitized
    Michael Kerrisk
        Mention file capabilities in discussion of privileged programs
    Michael Kerrisk
        Correctly note which shell Debian uses as (noninteractive) /bin/sh

core.5
    Michael Kerrisk
        Add some notes on systemd and core dumps
    Michael Kerrisk
        Dumps are not produced if core_pattern is empty and core_uses_pid is 0
    Michael Kerrisk  [Per Böhlin]
        RLIMIT_CORE is not enforced when piping core dump to a program
    Michael Kerrisk
        SEE ALO: add systemd-coredump(8)
    Michael Kerrisk
        SEE ALSO: add coredumpctl(1)

filesystems.5
    Michael Kerrisk  [Jonny Grant]
        Replace crufty URL reference for 'smb' with up-to-date URL
    Michael Kerrisk  [Jonny Grant]
        Refer to VFAT as an extended FAT (not DOS) filesystem

proc.5
    Michael Kerrisk  [Miklos Szered, Ram Pai]
        Correct the description of the parent mount ID for /proc/PID/mountinfo
    Oliver Ebert
        Add mmap-exclusive bit for /proc/[pid]/pagemap
    Marcus Folkesson
        Update description of /proc/<pid>/oom_score
    Lucas Werkmeister
        Clarify permissions in /proc/[pid]/fd/
    Michael Kerrisk
        Add reference to pid_namespaces(7) for /proc/sys/kernel/ns_last_pid

shells.5
    Michael Kerrisk
        SEE ALSO: add pam_shells(8)

sysfs.5
    Michael Kerrisk
        Add a brief explanation of /sys/kernel
    Michael Kerrisk
        Add a brief description of /sys/class/net
    Michael Kerrisk
        Add a brief description of /sys/kernel/mm
    Michael Kerrisk
        Add brief description of /sys/kernel/debug/tracing
    Michael Kerrisk
        Add a description of /sys/kernel/mm/hugepages

arp.7
    Michael Kerrisk
        SEE ALSO: add arpd(8)

capabilities.7
    Michael Kerrisk
        Add a reference to xattr(7) in the discussion of extended attributes
    Michael Kerrisk
        SEE ALSO: add captest(8)

epoll.7
    Michael Kerrisk
        Note existence of kcmp() KCMP_EPOLL_TFD operation

fifo.7
    Michael Kerrisk
        Refer reader to pipe(7) for details of I/O semantics of FIFOs

hier.7
    Michael Kerrisk
        SEE ALSO: add file-hierarchy(7)

icmp.7
    Michael Kerrisk
        SEE ALSO: add rdisc(8)

man-pages.7
    Michael Kerrisk
        Note that "x86-64" is generally preferred over "x86_64"
    G. Branden Robinson
        Add a use case for real minus character

namespaces.7
    Michael Kerrisk
        Add a reference to new veth(4) page
    Michael Kerrisk
        EXAMPLE: refer also to example in clone(2)

pid_namespaces.7
    Michael Kerrisk
        SEE ALSO: add reboot(2)
            Add because reboot(2) has special semantics for non-initial
            PID namespaces.

pthreads.7
    Michael Kerrisk
        SEE ALSO: add pthread_spin_init(3) and pthread_spin_lock(3)

socket.7
    Michael Kerrisk  [Petr Malat, Tobias Klausmann]
        Correct the description of SO_RXQ_OVFL

standards.7
    Michael Kerrisk
        SEE ALSO: add getconf(1), confstr(3), pathconf(3), sysconf(3)

user_namespaces.7
    Christian Brauner  [Michael Kerrisk]
        Document new 340 line idmap limit

ld.so.8
    Michael Kerrisk  [Yubin Ruan]
        Simplify language around conferring capabilities
            The statement "conferring permitted or effective capabilities"
            to the process is somewhat redundant. Binaries with capabilities
            confer capabilities only to those process capability sets, so it's
            simpler to just say "confers capabilities to the process".