summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2010-11-12 21:18:27 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2010-11-12 21:18:27 (GMT)
commite99c8dd6bc7e7901e6f56547da2adb6a08b32d7c (patch)
treea02006103914e0dda879396f1547751e87b889cd
parente9670c038230a2cc53c2f576b493c6bef8cc5660 (diff)
downloadhdf5-e99c8dd6bc7e7901e6f56547da2adb6a08b32d7c.zip
hdf5-e99c8dd6bc7e7901e6f56547da2adb6a08b32d7c.tar.gz
hdf5-e99c8dd6bc7e7901e6f56547da2adb6a08b32d7c.tar.bz2
[svn-r19776] Corrected handling of largefile and linux_lfs handling.
Synched cmake version of H5pubconf.h.in Added another variation of H5detect warning to ignore list.
-rwxr-xr-xconfig/cmake/CTestCustom.cmake1
-rw-r--r--config/cmake/ConfigureChecks.cmake26
-rw-r--r--config/cmake/H5pubconf.h.in31
-rw-r--r--config/cmake/libhdf5.settings.cmake.in2
4 files changed, 49 insertions, 11 deletions
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake
index 8cc9844..fa43a6a 100755
--- a/config/cmake/CTestCustom.cmake
+++ b/config/cmake/CTestCustom.cmake
@@ -4,6 +4,7 @@ SET (CTEST_CUSTOM_WARNING_EXCEPTION
${CTEST_CUSTOM_WARNING_EXCEPTION}
"H5detect.c.[0-9]+.[ \t]*:[ \t]*warning C4090"
"H5detect.c.[0-9]+.[ \t]*:[ \t]*warning:[ \t]*passing argument"
+ "H5detect.c[0-9 \t:]*warning:[ \t]*passing argument"
"H5Tconv.c[0-9]+.[ \t]*:[ \t]*warning:[ \t]*comparison is always false due to limited range of data type"
"testhdf5.h.[0-9]+.[ \t]*:[ \t]*warning C4005"
"H5Ztrans.c.[0-9]+.[ \t]*:[ \t]*warning C4244"
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index fc479d7..73a9b13 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -282,22 +282,21 @@ ENDIF (H5_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
# Check for large file support
#-----------------------------------------------------------------------------
+# The linux-lfs option is deprecated.
SET (LINUX_LFS 0)
+
SET (HDF5_EXTRA_FLAGS)
IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
# Linux Specific flags
- ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ SET (HDF5_EXTRA_FLAGS -D_POSIX_SOURCE -D_BSD_SOURCE)
OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
IF (HDF5_ENABLE_LARGE_FILE)
SET (LARGEFILE 1)
- SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
- SET (CMAKE_REQUIRED_DEFINITIONS ${HDF5_EXTRA_FLAGS})
+ SET (HDF5_EXTRA_FLAGS ${HDF5_EXTRA_FLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
ENDIF (HDF5_ENABLE_LARGE_FILE)
+ SET (CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${HDF5_EXTRA_FLAGS})
ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
-IF (LINUX_LFS)
- SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
- SET (CMAKE_REQUIRED_DEFINITIONS ${HDF5_EXTRA_FLAGS})
-ENDIF (LINUX_LFS)
+
ADD_DEFINITIONS (${HDF5_EXTRA_FLAGS})
#-----------------------------------------------------------------------------
@@ -419,6 +418,15 @@ CHECK_FUNCTION_EXISTS (fstat64 H5_HAVE_FSTAT64)
CHECK_FUNCTION_EXISTS (stat64 H5_HAVE_STAT64)
#-----------------------------------------------------------------------------
+# sigsetjmp is special; may actually be a macro
+IF (NOT H5_HAVE_SIGSETJMP)
+ IF (H5_HAVE_SETJMP_H)
+ CHECK_SYMBOL_EXISTS (sigsetjmp "setjmp.h" H5_HAVE_MACRO_SIGSETJMP)
+ IF (H5_HAVE_MACRO_SIGSETJMP)
+ SET (H5_HAVE_SIGSETJMP 1)
+ ENDIF (H5_HAVE_MACRO_SIGSETJMP)
+ ENDIF (H5_HAVE_SETJMP_H)
+ENDIF (NOT H5_HAVE_SIGSETJMP)
#-----------------------------------------------------------------------------
# Since gettimeofday is not defined any where standard, lets look in all the
@@ -506,11 +514,11 @@ MACRO (HDF5_FUNCTION_TEST OTHER_TEST)
ENDIF ("${def}")
ENDFOREACH (def)
- IF (LINUX_LFS)
+ IF (LARGEFILE)
SET (MACRO_CHECK_FUNCTION_DEFINITIONS
"${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
)
- ENDIF (LINUX_LFS)
+ ENDIF (LARGEFILE)
# (STATUS "Performing ${OTHER_TEST}")
TRY_COMPILE (${OTHER_TEST}
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 0c2b084..6debc5f 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -291,6 +291,9 @@
/* Define to 1 if you have the `rand_r' function. */
#cmakedefine H5_HAVE_RAND_R @H5_HAVE_RAND_R@
+/* Define to 1 if you have the `sigsetjmp' function. */
+#cmakedefine H5_HAVE_SETJMP_H @H5_HAVE_SETJMP@
+
/* Define to 1 if you have the <setjmp.h> header file. */
#cmakedefine H5_HAVE_SETJMP_H @H5_HAVE_SETJMP_H@
@@ -306,6 +309,12 @@
/* Define to 1 if you have the `signal' function. */
#cmakedefine H5_HAVE_SIGNAL @H5_HAVE_SIGNAL@
+/* Define to 1 if you have the `sigprocmask' function. */
+#cmakedefine H5_HAVE_SIGPROCMASK @H5_HAVE_SIGPROCMASK@
+
+/* Define to 1 if you have the `sigsetjmp' function. */
+#cmakedefine H5_HAVE_SIGSETJMP @H5_HAVE_SIGSETJMP@
+
/* Define to 1 if you have the `snprintf' function. */
#cmakedefine H5_HAVE_SNPRINTF @H5_HAVE_SNPRINTF@
@@ -345,7 +354,7 @@
/* Define if `struct timezone' is defined */
#cmakedefine H5_HAVE_STRUCT_TIMEZONE @H5_HAVE_STRUCT_TIMEZONE@
-/* Define to 1 if `struct tm' is a member of `tm_zone'. */
+/* Define to 1 if `tm_zone' is a member of `struct tm'. */
#cmakedefine H5_HAVE_STRUCT_TM_TM_ZONE @H5_HAVE_STRUCT_TM_TM_ZONE@
/* Define if `struct videoconfig' is defined */
@@ -470,6 +479,10 @@
values correctly. */
#cmakedefine H5_LDOUBLE_TO_LLONG_ACCURATE @H5_LDOUBLE_TO_LLONG_ACCURATE@
+/* Define if your system converts long double to (unsigned) long values with
+ special algorithm. */
+#cmakedefine H5_LDOUBLE_TO_LONG_SPECIAL @H5_LDOUBLE_TO_LONG_SPECIAL@
+
/* Define if your system can convert long double to unsigned int values
correctly. */
#cmakedefine H5_LDOUBLE_TO_UINT_ACCURATE @H5_LDOUBLE_TO_UINT_ACCURATE@
@@ -481,6 +494,10 @@
values correctly. */
#cmakedefine H5_LLONG_TO_LDOUBLE_CORRECT @H5_LLONG_TO_LDOUBLE_CORRECT@
+/* Define if your system can convert (unsigned) long to long double values
+ with special algorithm. */
+#cmakedefine H5_LONG_TO_LDOUBLE_SPECIAL @H5_LONG_TO_LDOUBLE_SPECIAL@
+
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#cmakedefine H5_LT_OBJDIR @H5_LT_OBJDIR@
@@ -620,6 +637,9 @@
/* The size of `off_t', as computed by sizeof. */
#define H5_SIZEOF_OFF_T @H5_SIZEOF_OFF_T@
+/* The size of `ptrdiff_t', as computed by sizeof. */
+#define H5_SIZEOF_PTRDIFF_T @H5_SIZEOF_PTRDIFF_T@
+
/* The size of `short', as computed by sizeof. */
#define H5_SIZEOF_SHORT @H5_SIZEOF_SHORT@
@@ -730,6 +750,12 @@
# endif
#endif
+/* Number of bits in a file offset, on hosts where this is settable. */
+#cmakedefine _FILE_OFFSET_BITS
+
+/* Define for large files, on AIX-style hosts. */
+#cmakedefine _LARGE_FILES
+
/* Define to empty if `const' does not conform to ANSI C. */
#cmakedefine H5_const
@@ -742,6 +768,9 @@
/* Define to `long int' if <sys/types.h> does not define. */
#cmakedefine H5_off_t
+/* Define to `long' if <sys/types.h> does not define. */
+#cmakedefine H5_ptrdiff_t
+
/* Define to `unsigned long' if <sys/types.h> does not define. */
#cmakedefine H5_size_t
diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in
index a3032e5..ba233e8 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
@@ -65,4 +65,4 @@ Clear file buffers before write: @CLEARFILEBUF@
GPFS: @GPFS@
Strict File Format Checks: @STRICT_FORMAT_CHECKS@
Optimization Instrumentation: @INSTRUMENT@
- Linux Large File Support (LFS): @LINUX_LFS@
+ Large File Support (LFS): @LARGEFILE@