annotate m4/sys_time_h.m4 @ 17440:0d0daceb5bdd

nproc: relax license to LGPLv2+ nproc merely exposes alternatives to sysconf(_SC_NPROCESSORS_CONF), which is part of glibc and thus LGPLv2+; it is not adding any value that strategically requires LGPLv3+. See also this thread. https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00105.html * modules/nproc (License): Change from LGPLv3+. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Wed, 03 Jul 2013 15:34:30 -0600
parents e542fd46ad6f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
1 # Configure a replacement for <sys/time.h>.
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
2 # serial 8
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
3
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 16970
diff changeset
4 # Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
5 # This file is free software; the Free Software Foundation
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
6 # gives unlimited permission to copy and/or distribute it,
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
7 # with or without modifications, as long as this notice is preserved.
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
8
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
9 # Written by Paul Eggert and Martin Lambers.
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
10
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
11 AC_DEFUN([gl_HEADER_SYS_TIME_H],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
12 [
8337
039bedae1345 Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents: 8043
diff changeset
13 dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement
039bedae1345 Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY.
Bruno Haible <bruno@clisp.org>
parents: 8043
diff changeset
14 dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1
7903
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
15 dnl statements that occur in other macros.
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
16 AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY])
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
17 ])
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
18
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
19 AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
42e2f1ada185 Enforce that GETTIMEOFDAY_REPLACEMENT=0 is only expanded once.
Bruno Haible <bruno@clisp.org>
parents: 7902
diff changeset
20 [
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
21 AC_REQUIRE([AC_C_RESTRICT])
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
22 AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS])
12563
21ecefd9dc81 headers: make check of system header explicit
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
23 AC_CHECK_HEADERS_ONCE([sys/time.h])
8995
1025663f7658 * m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST
Paul Eggert <eggert@cs.ucla.edu>
parents: 8337
diff changeset
24 gl_CHECK_NEXT_HEADERS([sys/time.h])
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
25
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
26 if test $ac_cv_header_sys_time_h != yes; then
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
27 HAVE_SYS_TIME_H=0
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
28 fi
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
29
15613
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
30 dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h>
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
31 dnl only. So include that header in the list.
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
32 gl_PREREQ_SYS_H_WINSOCK2
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
33 AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
34 [AC_COMPILE_IFELSE(
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
35 [AC_LANG_PROGRAM(
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
36 [[#if HAVE_SYS_TIME_H
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
37 #include <sys/time.h>
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
38 #endif
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
39 #include <time.h>
15613
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
40 #if HAVE_WINSOCK2_H
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
41 # include <winsock2.h>
e819b881a9e2 sys_time: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
42 #endif
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
43 ]],
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 8995
diff changeset
44 [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
45 [gl_cv_sys_struct_timeval=yes],
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
46 [gl_cv_sys_struct_timeval=no])
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
47 ])
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
48 if test $gl_cv_sys_struct_timeval != yes; then
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
49 HAVE_STRUCT_TIMEVAL=0
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
50 else
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
51 dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
52 dnl (in <sys/time.h> and <winsock2.h> for mingw64, in <winsock2.h> only
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
53 dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
54 dnl smaller than the 'time_t' type mandated by POSIX.
16970
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
55 dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
56 dnl that is good enough.
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
57 AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member],
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
58 [gl_cv_sys_struct_timeval_tv_sec],
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
59 [AC_COMPILE_IFELSE(
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
60 [AC_LANG_PROGRAM(
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
61 [[#if HAVE_SYS_TIME_H
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
62 #include <sys/time.h>
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
63 #endif
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
64 #include <time.h>
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
65 #if HAVE_WINSOCK2_H
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
66 # include <winsock2.h>
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
67 #endif
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
68 ]],
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
69 [[static struct timeval x;
16970
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
70 typedef int verify_tv_sec_type[
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
71 sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
536d27654da7 sys_time: allow too-wide tv_sec
Paul Eggert <eggert@cs.ucla.edu>
parents: 16327
diff changeset
72 ];
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
73 ]])],
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
74 [gl_cv_sys_struct_timeval_tv_sec=yes],
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
75 [gl_cv_sys_struct_timeval_tv_sec=no])
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
76 ])
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
77 if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
78 REPLACE_STRUCT_TIMEVAL=1
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
79 fi
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
80 fi
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
81
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
82 dnl Check for declarations of anything we want to poison if the
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
83 dnl corresponding gnulib module is not in use.
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
84 gl_WARN_ON_USE_PREPARE([[
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
85 #if HAVE_SYS_TIME_H
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
86 # include <sys/time.h>
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
87 #endif
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
88 #include <time.h>
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
89 ]], [gettimeofday])
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
90 ])
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
91
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
92 AC_DEFUN([gl_SYS_TIME_MODULE_INDICATOR],
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
93 [
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
94 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
95 AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS])
13066
fc8c984b0733 Factorize common .m4 code.
Bruno Haible <bruno@clisp.org>
parents: 12971
diff changeset
96 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
12971
bd4194c91570 Tests of module 'sys_time' in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12888
diff changeset
97 dnl Define it also as a C macro, for the benefit of the unit tests.
13071
b2385e7b332e Distinguish two kinds of module indicators.
Bruno Haible <bruno@clisp.org>
parents: 13066
diff changeset
98 gl_MODULE_INDICATOR_FOR_TESTS([$1])
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
99 ])
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
100
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
101 AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS],
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
102 [
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
103 GNULIB_GETTIMEOFDAY=0; AC_SUBST([GNULIB_GETTIMEOFDAY])
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
104 dnl Assume POSIX behavior unless another module says otherwise.
12888
88955fc5764d gettimeofday: restore support for platforms that lack function
Eric Blake <eblake@redhat.com>
parents: 12844
diff changeset
105 HAVE_GETTIMEOFDAY=1; AC_SUBST([HAVE_GETTIMEOFDAY])
12844
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
106 HAVE_STRUCT_TIMEVAL=1; AC_SUBST([HAVE_STRUCT_TIMEVAL])
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
107 HAVE_SYS_TIME_H=1; AC_SUBST([HAVE_SYS_TIME_H])
aaa284caae61 sys_time: use link-warning
Eric Blake <ebb9@byu.net>
parents: 12563
diff changeset
108 REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY])
16327
588e064cc6e1 sys_time: Override 'struct timeval' on some native Windows platforms.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
109 REPLACE_STRUCT_TIMEVAL=0; AC_SUBST([REPLACE_STRUCT_TIMEVAL])
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
110 ])