diff options
author | Bruno Haible <bruno@clisp.org> | 2012-01-28 18:12:10 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2012-01-28 18:12:10 +0100 |
commit | f8e84098084b3b53bc6943a5542af1f607ffd477 (patch) | |
tree | 7d82e52468f5450b34c46d0810a29abfa117ceec /modules | |
parent | c47bb7060a7947d3c454a54f4b80b3c8283407d0 (diff) | |
download | gnulib-f8e84098084b3b53bc6943a5542af1f607ffd477.tar.gz |
sys_time: Override 'struct timeval' on some native Windows platforms.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Test whether tv_sec
has the right type. Set REPLACE_STRUCT_TIMEVAL if not.
(gl_HEADER_SYS_TIME_H_DEFAULTS): Initialize REPLACE_STRUCT_TIMEVAL.
* lib/sys_time.in.h: Include <winsock2.h> also when 'struct timeval'
needs to be overridden.
(timeval): Override if REPLACE_STRUCT_TIMEVAL is set.
* modules/sys_time (Makefile.am): Substitute REPLACE_STRUCT_TIMEVAL.
* tests/test-sys_select.c: Check that the tv_sec member has the same
size as a 'time_t'.
* tests/test-sys_time.c: Likewise.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): If REPLACE_STRUCT_TIMEVAL
is set, set also REPLACE_GETTIMEOFDAY.
* lib/gettimeofday.c (gettimeofday): If 'struct timeval' is overridden,
convert the resulting 'struct timeval' before returning.
* lib/select.c: Include <sys/time.h>.
(select, timeval): Undefine at the right place.
* modules/select (Depends-on): Add sys_time.
* doc/posix-headers/sys_time.texi: Mention the problem with tv_sec on
some Windows platforms.
Reported by Marc-André Lureau <marcandre.lureau@redhat.com>.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/select | 1 | ||||
-rw-r--r-- | modules/sys_time | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/modules/select b/modules/select index 7b25a8bc9c..ab8ce7e01f 100644 --- a/modules/select +++ b/modules/select @@ -9,6 +9,7 @@ Depends-on: sys_select alloca [test $REPLACE_SELECT = 1] sockets [test $REPLACE_SELECT = 1] +sys_time [test $REPLACE_SELECT = 1] msvc-nothrow [test $REPLACE_SELECT = 1] configure.ac: diff --git a/modules/sys_time b/modules/sys_time index cdf0d46674..cfb7ddd2d9 100644 --- a/modules/sys_time +++ b/modules/sys_time @@ -36,6 +36,7 @@ sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ + -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ |