On 3/21/2016 12:04 PM, Eric Blake wrote:
On 03/21/2016 09:47 AM, Eric Blake wrote:
Would you mind to follow up with that problem on bug-gnulib? The test
should probably look like this, more or less:
#!((defined __GLIBC__ \
|| (defined __NEWLIB__ \
&& ((__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || __NEWLIB__ >= 3))) \
&& !defined __UCLIBC__)
As for the actual version number to test I have to talk to Jeff if we
can change the version to 2.4 or at least 2.3.1. 2.4 would simplify the
test in gnulib, otherwise the test gets a bit more complicated.
Do we even need to wait for a version number from newlib, or can we
probe based on one of the other changes going in at the same time? For
example, part of the newlib/Cygwin changes was the addition of a new
sys/_timespec.h, with a new witness variable _SYS__TIMESPEC_H_, which
should not be defined in the older layout of the headers. Therefore, it
may be feasible to do:
#if !((defined __GLIBC__ \
|| (defined __NEWLIB__ && defined _SYS_TIMESPEC_H)) \
&& !defined __UCLIBC__
and thereby simultaneously cater to both old and new cygwin headers
without waiting for a version number bump from newlib.
Also, this patch needs to adjust comments elsewhere in gnulib's
sys/select.h replacement, such as:
/* On OSF/1 and Solaris 2.6, <sys/types.h> and <sys/time.h>
both include <sys/select.h>.
On Cygwin, <sys/time.h> includes <sys/select.h>.
Simply delegate to the system's header in this case. */
...
#elif (@HAVE_SYS_SELECT_H@ \
&& (defined _CYGWIN_SYS_TIME_H \
This is obsolete anyway. _CYGWIN_SYS_TIME_H was removed from the Cygwin
headers a year ago.
Ken