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
