Subject: man-pages-5.11 released

Gidday,

Alex Colomar and I are proud to announce:

man-pages-5.11 - man pages for Linux

This release resulted from patches, bug reports, reviews, and
comments from around 40 contributors. The release includes
around 480 commits that changed 950 (about 90% of the) pages.
With a 50k diff, this is one of the largest man-pages releases
in quite a long time.

Tarball download:
http://www.kernel.org/doc/man-pages/download.html
Git repository:
https://git.kernel.org/cgit/docs/man-pages/man-pages.git/
Online changelog:
http://man7.org/linux/man-pages/changelog.html#release_5.11

A short summary of the release is blogged at:
https://linux-man-pages.blogspot.com/2021/03/man-pages-511-is-released.html

The current version of the pages is browsable at:
http://man7.org/linux/man-pages/

A selection of changes in this release that may be of interest
to readers of LKML is shown below.

Cheers,

Michael

==================== Changes in man-pages-5.11 ====================

Released: 2021-03-21, Munich


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

close_range.2
Stephen Kitt, Michael Kerrisk [Christian Brauner]
New page documenting close_range(2)

process_madvise.2
Suren Baghdasaryan, Minchan Kim [Michal Hocko, Alejandro Colomar,
Michael Kerrisk]
Document process_madvise(2)

fileno.3
Michael Kerrisk
Split fileno(3) content out of ferror(3) into new page
fileno(3) differs from the other functions in various ways.
For example, it is governed by different standards,
and can set 'errno'. Conversely, the other functions
are about examining the status of a stream, while
fileno(3) simply obtains the underlying file descriptor.
Furthermore, splitting this function out allows
for some cleaner upcoming changes in ferror(3).


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

epoll_wait.2
Willem de Bruijn [Dmitry V. Levin]
Add documentation of epoll_pwait2()
Expand the epoll_wait() page with epoll_pwait2(), an epoll_wait()
variant that takes a struct timespec to enable nanosecond
resolution timeout.

fanotify_init.2
fanotify.7
Jan Kara [Steve Grubb]
Document FAN_AUDIT flag and FAN_ENABLE_AUDIT

madvise.2
Michael Kerrisk
Add descriptions of MADV_COLD and MADV_PAGEOUT
Taken from process_madvise(2).

openat2.2
Jens Axboe
Add RESOLVE_CACHED

prctl.2
Gabriel Krisman Bertazi
Document Syscall User Dispatch

mallinfo.3
Michael Kerrisk
Document mallinfo2() and note that mallinfo() is deprecated
Document the mallinfo2() function added in glibc 2.33.
Update example program to use mallinfo2()

system_data_types.7
Alejandro Colomar
Add off64_t to system_data_types(7)

ld.so.8
Michael Kerrisk
Document the --argv0 option added in glibc 2.33


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

Various pages
Alejandro Colomar
SYNOPSIS: Use 'restrict' in prototypes
This change has been completed for *all* relevant pages
(around 135 pages in total).

Various pages
Alejandro Colomar [Zack Weinberg]
Remove unused <sys/types.h>
The manual pages are already inconsistent in which headers need
to be included. Right now, not all of the types used by a
function have their required header included in the SYNOPSIS.

If we were to add the headers required by all of the types used by
functions, the SYNOPSIS would grow too much. Not only it would
grow too much, but the information there would be less precise.

Having system_data_types(7) document each type with all the
information about required includes is much more precise, and the
info is centralized so that it's much easier to maintain.

So let's document only the include required for the function
prototype, and also the ones required for the macros needed to
call the function.

<sys/types.h> only defines types, not functions or constants, so
it doesn't belong to man[23] (function) pages at all.

I ignore if some old systems had headers that required you to
include <sys/types.h> *before* them (incomplete headers), but if
so, those implementations would be broken, and those headers
should probably provide some kind of warning. I hope this is not
the case.

[mtk: Already in 2001, POSIX.1 removed the requirement to
include <sys/types.h> for many APIs, so this patch seems
well past due.]

_exit.2
abort.3
err.3
exit.3
pthread_exit.3
setjmp.3
Alejandro Colomar
SYNOPSIS: Use 'noreturn' in prototypes
Use standard C11 'noreturn' in these manual page for
functions that do not return.


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

getcpu.2
Michael Kerrisk [Alejandro Colomar]
Rewrite page to describe glibc wrapper function
Since glibc 2.29, there is a wrapper for getcpu(2).
The wrapper has only 2 arguments, omitting the unused
third system call argument. Rework the manual page
to reflect this.

kcmp.2
Michael Kerrisk
Since Linux 5.12, kcmp() availability is unconditional
kcmp() is no longer dependent on CONFIG_CHECKPOINT_RESTORE.

mmap2.2
Alejandro Colomar
Fix prototype parameter types
There are many slightly different prototypes for this syscall,
but none of them is like the documented one.
Of all the different prototypes,
let's document the asm-generic one.

mount.2
Michael Kerrisk
Note that the 'data' argument can be NULL

syscall.2
Peter H. Froehlich
Update superh syscall convention

syscalls.2
Michael Kerrisk
Add epoll_pwait2()

netdevice.7
Pali Rohár [Alejandro Colomar]
Update documentation for SIOCGIFADDR SIOCSIFADDR SIOCDIFADDR

netlink.7
Pali Rohár [Alejandro Colomar]
Fix minimal Linux version for NETLINK_CAP_ACK
NETLINK_CAP_ACK option was introduced in commit 0a6a3a23ea6e which first
appeared in Linux version 4.3 and not 4.2.
Pali Rohár [Alejandro Colomar]
Remove IPv4 from description
rtnetlink is not only used for IPv4
Philipp Schuster
Clarify details of netlink error responses
Make it clear that netlink error responses (i.e., messages with
type NLMSG_ERROR (0x2)), can be longer than sizeof(struct
nlmsgerr). In certain circumstances, the payload can be longer.
sock_diag.7
Pali Rohár [Alejandro Colomar]
Fix recvmsg() usage in the example

tcp.7
Enke Chen
Documentation revision for TCP_USER_TIMEOUT

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/