This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
_ATFILE_SOURCE Obsoletion
- From: Rical Jasan <ricaljasan at pacific dot net>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: libc-alpha <libc-alpha at sourceware dot org>, Carlos O'Donell <carlos at redhat dot com>, Zack Weinberg <zackw at panix dot com>, Michael Kerrisk <mtk dot manpages at gmail dot com>
- Date: Wed, 18 Oct 2017 02:34:44 -0700
- Subject: _ATFILE_SOURCE Obsoletion
- Authentication-results: sourceware.org; auth=none
Referencing [0]:
On 08/10/2017 03:26 PM, Joseph Myers wrote:
> * Consider obsoleting _ATFILE_SOURCE and making it into an alias for
> _POSIX_C_SOURCE = 200809L if _POSIX_C_SOURCE is undefined or has a lower
> value (similar to the _REENTRANT obsoletion); I don't think we really need
> a separate feature test macro for this subset of POSIX features.
I've written a patch that obsoletes _ATFILE_SOURCE, but before I submit
it, I'm interested in hearing whether others consider this useful. My
commit message currently reads:
----
Before various *at functions were included in POSIX.1-2008, they were
activated by defining _ATFILE_SOURCE. Since then, _ATFILE_SOURCE has
automatically been defined when _POSIX_C_SOURCE is at least 200809L.
This commit changes the meaning of _ATFILE_SOURCE to imply all of
POSIX.1-2008 (which implies __USE_XOPEN2K8) rather than only including
the additional *at interfaces (as long as no conformance mode equal to
or greater than _POSIX_C_SOURCE=200809L or equivalent is present).
----
Does it really serve a useful purpose to broaden the definition of
_ATFILE_SOURCE? I understand the desire to cease support of historical
artifacts, but I would rather remove support entirely than merely change
the definition. While POSIX.1-2008 may imply __USE_ATFILE,
_ATFILE_SOURCE does not necessarily imply all of POSIX.1-2008.
Rical
[0] https://sourceware.org/ml/libc-alpha/2017-08/msg00409.html