1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
Index: hdf5/fortran/src/H5_ff.F90
===================================================================
--- hdf5.orig/fortran/src/H5_ff.F90
+++ hdf5/fortran/src/H5_ff.F90
@@ -1064,7 +1064,16 @@ CONTAINS
INTEGER(C_INT), DIMENSION(:), POINTER :: c_time
INTERFACE
+#if H5_SIZEOF_TIME_T == 8
+# ifdef H5_HAVE___GMTIME64
+# define H5_USE_GMTIME64
+# endif
+#endif
+#ifndef H5_USE_GMTIME64
FUNCTION gmtime(stdtime_t) BIND(C, NAME='gmtime')
+#else
+ FUNCTION gmtime(stdtime_t) BIND(C, NAME='__gmtime64')
+#endif
IMPORT :: TIME_T, C_PTR
IMPLICIT NONE
INTEGER(KIND=TIME_T) :: stdtime_t
Index: hdf5/configure.ac
===================================================================
--- hdf5.orig/configure.ac
+++ hdf5/configure.ac
@@ -1862,6 +1862,7 @@ AC_CHECK_SIZEOF([ptrdiff_t])
AC_CHECK_SIZEOF([size_t])
AC_CHECK_SIZEOF([ssize_t])
AC_CHECK_SIZEOF([time_t], [], [#include <time.h>])
+AC_CHECK_FUNCS(__gmtime64)
## Checkpoint the cache
AC_CACHE_SAVE
Index: hdf5/fortran/src/H5config_f.inc.in
===================================================================
--- hdf5.orig/fortran/src/H5config_f.inc.in
+++ hdf5/fortran/src/H5config_f.inc.in
@@ -110,3 +110,6 @@
(((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE <= Rel)) || \
((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR < Min)) || (H5_VERS_MAJOR < Maj))
+! For being able to choose between C gmtime() and __gmtime64()
+#undef SIZEOF_TIME_T
+#undef HAVE___GMTIME64
Index: hdf5/config/cmake/ConfigureChecks.cmake
===================================================================
--- hdf5.orig/config/cmake/ConfigureChecks.cmake
+++ hdf5/config/cmake/ConfigureChecks.cmake
@@ -336,6 +336,7 @@ endif ()
HDF_CHECK_TYPE_SIZE (off_t ${HDF_PREFIX}_SIZEOF_OFF_T)
HDF_CHECK_TYPE_SIZE (time_t ${HDF_PREFIX}_SIZEOF_TIME_T)
+check_function_exists(__gmtime64 ${HDF_PREFIX}_HAVE___GMTIME64)
#-----------------------------------------------------------------------------
# Extra C99 types
Index: hdf5/fortran/src/H5config_f.inc.cmake
===================================================================
--- hdf5.orig/fortran/src/H5config_f.inc.cmake
+++ hdf5/fortran/src/H5config_f.inc.cmake
@@ -162,3 +162,9 @@
(((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR == Min) && (H5_VERS_RELEASE <= Rel)) || \
((H5_VERS_MAJOR == Maj) && (H5_VERS_MINOR < Min)) || (H5_VERS_MAJOR < Maj))
+! For being able to choose between C gmtime() and __gmtime64()
+#define H5_SIZEOF_TIME_T @H5_SIZEOF_TIME_T@
+#cmakedefine01 H5_HAVE___GMTIME64
+#if H5_HAVE___GMTIME64 == 0
+#undef H5_HAVE___GMTIME64
+#endif
|