regression in man pages for interfaces using loff_t

Rich Felker
2023-06-28T17:53:36Z

https://github.com/mkerrisk/man-pages/commit/9bebb17e5b5794e495ba8e6c0a75266c65b9d2d7
https://github.com/mkerrisk/man-pages/commit/76c5631fb442f1c7c0b5ec8c653e84f2997249c8

and perhaps related changes for other functions introduced a breaking
change in the documentation for the way applications should call libc
functions for Linux-specific APIs that always take a 64-bit file
offset. The type for this is loff_t, not off64_t, which is an LFS64
type which only exists when LFS64 is supported and enabled.

Applications following the documentation change will not compile on
musl libc, and in theory would not compile even on glibc if it
followed reasonable policy for exposing visibility of off64_t, though
it might happen to be that on glibc, all feature profiles that expose
the relevant functions also expose LFS64.

The whole reason loff_t exists is to avoid this problem and make a
type that's "always full width offset, regardless of _FILE_OFFSET_BITS
or _LARGEFILE64_SOURCE" to match with the kernel expectation for these
interfaces.

For an example of the breakage resulting from following the change in
documentation, see:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110462

Please revert this.

Rich