Mercurial > hg > octave-nkf > gnulib-hg
changeset 14057:f00add3c323d
time_r: Add missing declarations on HP-UX 11.
* lib/time.in.h (localtime_r, gmtime_r): Test HAVE_DECL_LOCALTIME_R
instead of HAVE_LOCALTIME_R.
* m4/time_r.m4 (gl_TIME_R): Test whether localtime_r is declared. Set
HAVE_LOCALTIME_R always.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize
HAVE_DECL_LOCALTIME_R, not HAVE_LOCALTIME_R.
* modules/time (Makefile.am): Substitute HAVE_DECL_LOCALTIME_R, not
HAVE_LOCALTIME_R.
* doc/posix-functions/gmtime_r.texi: Document the HP-UX 11 problem.
* doc/posix-functions/localtime_r.texi: Likewise.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 31 Dec 2010 14:01:33 +0100 |
parents | 602afdb74dc3 |
children | 4b44ba76787f |
files | ChangeLog doc/posix-functions/gmtime_r.texi doc/posix-functions/localtime_r.texi lib/time.in.h m4/time_h.m4 m4/time_r.m4 modules/time |
diffstat | 7 files changed, 39 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2010-12-31 Bruno Haible <bruno@clisp.org> + + time_r: Add missing declarations on HP-UX 11. + * lib/time.in.h (localtime_r, gmtime_r): Test HAVE_DECL_LOCALTIME_R + instead of HAVE_LOCALTIME_R. + * m4/time_r.m4 (gl_TIME_R): Test whether localtime_r is declared. Set + HAVE_LOCALTIME_R always. + * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize + HAVE_DECL_LOCALTIME_R, not HAVE_LOCALTIME_R. + * modules/time (Makefile.am): Substitute HAVE_DECL_LOCALTIME_R, not + HAVE_LOCALTIME_R. + * doc/posix-functions/gmtime_r.texi: Document the HP-UX 11 problem. + * doc/posix-functions/localtime_r.texi: Likewise. + 2010-12-29 Eric Blake <eblake@redhat.com> mountlist: tweak previous commit
--- a/doc/posix-functions/gmtime_r.texi +++ b/doc/posix-functions/gmtime_r.texi @@ -12,6 +12,10 @@ This function is missing on some platforms: mingw. @item +This function is not declared unless @code{_REENTRANT} is defined, +on some platforms: +HP-UX 11. +@item Some platforms define a function of this name that is incompatible to POSIX: HP-UX 10. @end itemize
--- a/doc/posix-functions/localtime_r.texi +++ b/doc/posix-functions/localtime_r.texi @@ -12,6 +12,10 @@ This function is missing on some platforms: mingw. @item +This function is not declared unless @code{_REENTRANT} is defined, +on some platforms: +HP-UX 11. +@item Some platforms define a function of this name that is incompatible to POSIX: HP-UX 10. @end itemize
--- a/lib/time.in.h +++ b/lib/time.in.h @@ -147,7 +147,7 @@ _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else -# if ! @HAVE_LOCALTIME_R@ +# if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); @@ -155,7 +155,9 @@ _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif +# if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); +# endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r @@ -167,7 +169,7 @@ _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else -# if ! @HAVE_LOCALTIME_R@ +# if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); @@ -175,7 +177,9 @@ _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif +# if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); +# endif # endif /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
--- a/m4/time_h.m4 +++ b/m4/time_h.m4 @@ -2,7 +2,7 @@ # Copyright (C) 2000-2001, 2003-2007, 2009-2010 Free Software Foundation, Inc. -# serial 2 +# serial 3 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -95,7 +95,7 @@ GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_LOCALTIME_R=1; AC_SUBST([HAVE_LOCALTIME_R]) + HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM])
--- a/m4/time_r.m4 +++ b/m4/time_r.m4 @@ -15,8 +15,16 @@ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) + dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is + dnl not defined. + AC_CHECK_DECLS_ONCE([localtime_r]) + if test $ac_cv_have_decl_localtime_r = no; then + HAVE_DECL_LOCALTIME_R=0 + fi + AC_CHECK_FUNCS_ONCE([localtime_r]) if test $ac_cv_func_localtime_r = yes; then + HAVE_LOCALTIME_R=1 AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature], [gl_cv_time_r_posix], [AC_COMPILE_IFELSE(
--- a/modules/time +++ b/modules/time @@ -33,7 +33,7 @@ -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \ -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \ -e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \ - -e 's|@''HAVE_LOCALTIME_R''@|$(HAVE_LOCALTIME_R)|g' \ + -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \