From 595785701d1fe44d8abac5a1454f2468a0482bf0 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Sun, 6 Feb 2011 17:01:26 -0800 Subject: [PATCH] gnulib: allow multiple gnulib generated replacements to coexist This defines a few preprocessor symbols that should not affect Emacs. * lib/getopt.in.h, lib/time.in.h, lib/unistd.in.h: Regenerate via "make sync-from-gnulib". --- ChangeLog | 5 +++++ lib/getopt.in.h | 3 +++ lib/time.in.h | 10 ++++++++-- lib/unistd.in.h | 3 +++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec53bb0ecd5..07f01d6207e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2011-02-06 Paul Eggert <eggert@cs.ucla.edu> + gnulib: allow multiple gnulib generated replacements to coexist + This defines a few preprocessor symbols that should not affect Emacs. + * lib/getopt.in.h, lib/time.in.h, lib/unistd.in.h: Regenerate + via "make sync-from-gnulib". + gnulib: undo previous change The upstream _HEADERS change was backed out of gnulib (see the same thread). Stay in sync with gnulib. diff --git a/lib/getopt.in.h b/lib/getopt.in.h index 9b0a9a58bc9..82e2937d6d2 100644 --- a/lib/getopt.in.h +++ b/lib/getopt.in.h @@ -181,6 +181,7 @@ extern int optopt; one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ +# if !GNULIB_defined_struct_option struct option { const char *name; @@ -190,6 +191,8 @@ struct option int *flag; int val; }; +# define GNULIB_defined_struct_option 1 +# endif /* Names for the values of the `has_arg' field of `struct option'. */ diff --git a/lib/time.in.h b/lib/time.in.h index 2d6da7161fb..cb533a46e10 100644 --- a/lib/time.in.h +++ b/lib/time.in.h @@ -69,13 +69,16 @@ extern "C" { # endif -# undef timespec -# define timespec rpl_timespec +# if !GNULIB_defined_struct_timespec +# undef timespec +# define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; +# define GNULIB_defined_struct_timespec 1 +# endif # ifdef __cplusplus } @@ -84,6 +87,7 @@ struct timespec # endif # endif +# if !GNULIB_defined_struct_time_t_must_be_integral /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating @@ -92,6 +96,8 @@ struct timespec struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; +# define GNULIB_defined_struct_time_t_must_be_integral 1 +# endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See diff --git a/lib/unistd.in.h b/lib/unistd.in.h index 14d685e0c8f..15893d7eecc 100644 --- a/lib/unistd.in.h +++ b/lib/unistd.in.h @@ -796,11 +796,14 @@ _GL_CXXALIAS_RPL (getpagesize, int, (void)); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else +# if !GNULIB_defined_getpagesize_function static inline int getpagesize () { return _gl_getpagesize (); } +# define GNULIB_defined_getpagesize_function 1 +# endif # endif # endif # endif -- 2.39.5