Mercurial > gnulib
annotate lib/sys_time.in.h @ 12844:aaa284caae61
sys_time: use link-warning
Modernize replacement header, to allow another GNULIB_POSIXCHECK
opportunity.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Split defaults...
(gl_HEADER_SYS_TIME_H_DEFAULTS): ...into new macro.
(gl_SYS_TIME_MODULE_INDICATOR): New macro.
* modules/sys_time (Depends-on): Add warn-on-use.
(Makefile.am): Always build replacement.
(configure.ac): Update substitutions.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY)
(gl_FUNC_GETTIMEOFDAY_CLOBBER): Include defaults, and no longer
bother with SYS_TIME_H.
* modules/gettimeofday (configure.ac): Declare indicator.
* lib/sys_time.in.h (gettimeofday): Warn if gnulib module is not
in use.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Sat, 30 Jan 2010 08:51:59 -0700 |
parents | c2cbabec01dd |
children | 88955fc5764d |
rev | line source |
---|---|
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
1 /* Provide a more complete sys/time.h. |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
2 |
12559
c2cbabec01dd
update nearly all FSF copyright year lists to include 2010
Jim Meyering <meyering@redhat.com>
parents:
12422
diff
changeset
|
3 Copyright (C) 2007-2010 Free Software Foundation, Inc. |
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
4 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
5 This program is free software; you can redistribute it and/or modify |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
6 it under the terms of the GNU General Public License as published by |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
7 the Free Software Foundation; either version 2, or (at your option) |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
8 any later version. |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
9 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
10 This program is distributed in the hope that it will be useful, |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
13 GNU General Public License for more details. |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
14 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
15 You should have received a copy of the GNU General Public License |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
16 along with this program; if not, write to the Free Software Foundation, |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
18 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
19 /* Written by Paul Eggert. */ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
20 |
10655
8668b19a7032
Avoid gcc warnings because of #pragma GCC system_header on older gcc.
Bruno Haible <bruno@clisp.org>
parents:
10375
diff
changeset
|
21 #if __GNUC__ >= 3 |
10375
f96e845fc36d
Avoid some "gcc -pedantic" warnings.
Bruno Haible <bruno@clisp.org>
parents:
9268
diff
changeset
|
22 @PRAGMA_SYSTEM_HEADER@ |
10655
8668b19a7032
Avoid gcc warnings because of #pragma GCC system_header on older gcc.
Bruno Haible <bruno@clisp.org>
parents:
10375
diff
changeset
|
23 #endif |
10375
f96e845fc36d
Avoid some "gcc -pedantic" warnings.
Bruno Haible <bruno@clisp.org>
parents:
9268
diff
changeset
|
24 |
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
25 #if defined _GL_SYS_TIME_H |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
26 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
27 /* Simply delegate to the system's header, without adding anything. */ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
28 # if @HAVE_SYS_TIME_H@ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
29 # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
30 # endif |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
31 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
32 #else |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
33 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
34 # define _GL_SYS_TIME_H |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
35 |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
36 # if @HAVE_SYS_TIME_H@ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
37 # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
38 # else |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
39 # include <time.h> |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
40 # endif |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
41 |
12422
f7842310a565
New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible <bruno@clisp.org>
parents:
10842
diff
changeset
|
42 /* The definition of _GL_ARG_NONNULL is copied here. */ |
f7842310a565
New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible <bruno@clisp.org>
parents:
10842
diff
changeset
|
43 |
12844 | 44 /* The definition of _GL_WARN_ON_USE is copied here. */ |
45 | |
10842
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
46 #ifdef __cplusplus |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
47 extern "C" { |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
48 #endif |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
49 |
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
50 # if ! @HAVE_STRUCT_TIMEVAL@ |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
51 struct timeval |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
52 { |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
53 time_t tv_sec; |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
54 long int tv_usec; |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
55 }; |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
56 # endif |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
57 |
12844 | 58 # if @GNULIB_GETTIMEOFDAY@ |
59 # if @REPLACE_GETTIMEOFDAY@ | |
60 # undef gettimeofday | |
61 # define gettimeofday rpl_gettimeofday | |
12422
f7842310a565
New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible <bruno@clisp.org>
parents:
10842
diff
changeset
|
62 extern int gettimeofday (struct timeval *restrict, void *restrict) |
f7842310a565
New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible <bruno@clisp.org>
parents:
10842
diff
changeset
|
63 _GL_ARG_NONNULL ((1)); |
12844 | 64 # endif |
65 # elif defined GNULIB_POSIXCHECK | |
66 # undef gettimeofday | |
67 # if HAVE_RAW_DECL_GETTIMEOFDAY | |
68 _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - " | |
69 "use gnulib module gettimeofday for portability"); | |
70 # endif | |
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
71 # endif |
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
72 |
10842
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
73 #ifdef __cplusplus |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
74 } |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
75 #endif |
4a02c5d90eaf
sys_time: Add extern "C" block for C++.
Simon Josefsson <simon@josefsson.org>
parents:
10655
diff
changeset
|
76 |
9268
a553c18c572d
Rename sys_time_.h to sys_time.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
77 #endif /* _GL_SYS_TIME_H */ |