From 9ded0d63d51de421bd12da08d8d1992d17272410 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sun, 24 Feb 2008 18:40:04 +0100
Subject: [PATCH] Fix a build problem on HP-UX 10.

---
 ChangeLog                            | 8 ++++++++
 doc/posix-functions/gmtime_r.texi    | 3 ++-
 doc/posix-functions/localtime_r.texi | 3 ++-
 m4/time_r.m4                         | 6 ++++--
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 31c51cf7ab..bc278830e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-02-22  Bruno Haible  <bruno@clisp.org>
+
+	* m4/time_r.m4 (gl_TIME_R): Also check that localtime_r's return type
+	is a pointer type.  Needed for HP-UX 10.
+	* doc/posix-functions/localtime_r.texi: Mention HP-UX 10.
+	* doc/posix-functions/gmtime_r.texi: Likewise.
+	Reported by Peter O'Gorman <bug-gnulib@mlists.thewrittenword.com>.
+
 2008-02-24  Bruno Haible  <bruno@clisp.org>
 
 	* modules/environ-tests: New file.
diff --git a/doc/posix-functions/gmtime_r.texi b/doc/posix-functions/gmtime_r.texi
index e600277bbd..42aa95ab37 100644
--- a/doc/posix-functions/gmtime_r.texi
+++ b/doc/posix-functions/gmtime_r.texi
@@ -16,5 +16,6 @@ Portability problems not fixed by Gnulib:
 This function is missing on some platforms:
 mingw.
 @item
-Some platforms define a function of this name that is incompatible to POSIX.
+Some platforms define a function of this name that is incompatible to POSIX:
+HP-UX 10.
 @end itemize
diff --git a/doc/posix-functions/localtime_r.texi b/doc/posix-functions/localtime_r.texi
index ad6876496f..c0b5b5e694 100644
--- a/doc/posix-functions/localtime_r.texi
+++ b/doc/posix-functions/localtime_r.texi
@@ -16,5 +16,6 @@ Portability problems not fixed by Gnulib:
 This function is missing on some platforms:
 mingw.
 @item
-Some platforms define a function of this name that is incompatible to POSIX.
+Some platforms define a function of this name that is incompatible to POSIX:
+HP-UX 10.
 @end itemize
diff --git a/m4/time_r.m4 b/m4/time_r.m4
index dbb6396607..c871b56d76 100644
--- a/m4/time_r.m4
+++ b/m4/time_r.m4
@@ -1,6 +1,6 @@
 dnl Reentrant time functions like localtime_r.
 
-dnl Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -23,7 +23,9 @@ AC_DEFUN([gl_TIME_R],
 	   even though the POSIX signature has the 'restrict's,
 	   since C99 says they can't affect type compatibility.  */
 	struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r;
-        if (ptr) return 0;],
+        if (ptr) return 0;
+        /* Check the return type is a pointer.  On HP-UX 10 it is 'int'.  */
+        *localtime_r (0, 0);],
        [gl_cv_time_r_posix=yes],
        [gl_cv_time_r_posix=no])])
   if test $gl_cv_time_r_posix = yes; then
-- 
2.30.2