summaryrefslogtreecommitdiff
path: root/gnulib/lib/sys_time.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib/lib/sys_time.in.h')
-rw-r--r--gnulib/lib/sys_time.in.h40
1 files changed, 28 insertions, 12 deletions
diff --git a/gnulib/lib/sys_time.in.h b/gnulib/lib/sys_time.in.h
index 2a45a157..c4c2eb5e 100644
--- a/gnulib/lib/sys_time.in.h
+++ b/gnulib/lib/sys_time.in.h
@@ -39,13 +39,15 @@
# include <time.h>
# endif
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
+
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
# if ! @HAVE_STRUCT_TIMEVAL@
struct timeval
@@ -55,15 +57,33 @@ struct timeval
};
# endif
+# ifdef __cplusplus
+}
+# endif
+
# if @GNULIB_GETTIMEOFDAY@
# if @REPLACE_GETTIMEOFDAY@
-# undef gettimeofday
-# define gettimeofday rpl_gettimeofday
-# endif
-# if @REPLACE_GETTIMEOFDAY@ || !@HAVE_GETTIMEOFDAY@
-extern int gettimeofday (struct timeval *restrict, void *restrict)
- _GL_ARG_NONNULL ((1));
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef gettimeofday
+# define gettimeofday rpl_gettimeofday
+# endif
+_GL_FUNCDECL_RPL (gettimeofday, int,
+ (struct timeval *restrict, void *restrict)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (gettimeofday, int,
+ (struct timeval *restrict, void *restrict));
+# else
+# if !@HAVE_GETTIMEOFDAY@
+_GL_FUNCDECL_SYS (gettimeofday, int,
+ (struct timeval *restrict, void *restrict)
+ _GL_ARG_NONNULL ((1)));
+# endif
+/* Need to cast, because on glibc systems, by default, the second argument is
+ struct timezone *. */
+_GL_CXXALIAS_SYS_CAST (gettimeofday, int,
+ (struct timeval *restrict, void *restrict));
# endif
+_GL_CXXALIASWARN (gettimeofday);
# elif defined GNULIB_POSIXCHECK
# undef gettimeofday
# if HAVE_RAW_DECL_GETTIMEOFDAY
@@ -72,8 +92,4 @@ _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
# endif
# endif
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _GL_SYS_TIME_H */