view doc/posix-headers/sys_time.texi @ 16327:588e064cc6e1

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>.
author Bruno Haible <bruno@clisp.org>
date Sat, 28 Jan 2012 18:12:10 +0100
parents 6355dc4626b5
children 536d27654da7
line wrap: on
line source

@node sys/time.h
@section @file{sys/time.h}

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_time.h.html}

Gnulib module: sys_time

Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
MSVC 9.
@item
@samp{struct timeval} is not defined on some platforms.
@item
@samp{struct timeval} is defined with an incompatible type for @code{tv_sec}
on some native Windows platforms:
mingw64 in 64-bit mode,
mingw64 in 32-bit mode when @code{__MINGW_USE_VC2005_COMPAT} is defined,
MSVC 9 in 64-bit mode,
MSVC 9 in 32-bit mode when @code{_USE_32BIT_TIME_T} is not defined.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@end itemize