This is a followup to https://cygwin.com/ml/cygwin/2018-05/msg00334.html.
In this patch series I attempt to implement the glibc extension clearenv(). I also implement glibc's notion of environ==NULL being shorthand for an empty environment. Two questions: 1. I haven't yet absorbed what SIGFE means. I arbitrarily decorated clearenv with SIGFE rather than NOSIGFE in common.din, but I don't know if that's right. 2. I guarded the declaration of clearenv() with __GNU_VISIBLE, but again I'm not sure about this. On the one hand, clearenv() is a GNU extension, so __GNU_VISIBLE would seem to be the right guard. On the other hand, glibc declares clearenv() if _DEFAULT_SOURCE is defined, so maybe the guard should be relaxed if our goal is to emulate Linux. Yaakov? Ken Brown (5): Cygwin: Clarify some code in environ.cc Cygwin: Allow the environment pointer to be NULL Cygwin: Implement the GNU extension clearenv Cygwin: Remove workaround in environ.cc Cygwin: Document clearenv winsup/cygwin/common.din | 1 + winsup/cygwin/environ.cc | 45 ++++++++++++++++++++++---- winsup/cygwin/include/cygwin/stdlib.h | 1 + winsup/cygwin/include/cygwin/version.h | 3 +- winsup/cygwin/release/2.10.1 | 1 + winsup/doc/posix.xml | 1 + 6 files changed, 44 insertions(+), 8 deletions(-) -- 2.17.0