remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE
authorRich Felker <dalias@aerifal.cx>
Tue, 27 Sep 2022 19:04:05 +0000 (15:04 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 19 Oct 2022 18:01:31 +0000 (14:01 -0400)
commit25e6fee27f4a293728dd15b659170e7b9c7db9bc
tree021a60df1b99aee79c94d4cfd1c3ca19b13e6a57
parent246f1c811448f37a44b41cd8df8d0ef9736d95f4
remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE

these badly pollute the namespace with macros whenever _GNU_SOURCE is
defined, which is always the case with g++, and especially tends to
interfere with C++ constructs.

as our implementation of these was macro-only, their removal cannot
affect any existing binaries. at the source level, portable software
should be prepared for them not to exist.

for now, they are left in place with explicit _LARGEFILE64_SOURCE.
this provides an easy temporary path for integrators/distributions to
get packages building again right away if they break while working on
a proper, upstreamable fix. the intent is that this be a very
short-term measure and that the macros be removed entirely in the next
release cycle.
16 files changed:
include/aio.h
include/dirent.h
include/fcntl.h
include/ftw.h
include/glob.h
include/stdio.h
include/stdlib.h
include/sys/mman.h
include/sys/resource.h
include/sys/sendfile.h
include/sys/stat.h
include/sys/statfs.h
include/sys/statvfs.h
include/sys/types.h
include/sys/uio.h
include/unistd.h