From e0e28a7aae2fabf3ae9d03a1bd5809176935466a Mon Sep 17 00:00:00 2001 From: Vailin Choi Date: Wed, 22 Apr 2015 17:31:12 -0500 Subject: [svn-r26894] Bring revisions #26459 - #26785 from trunk to revise_chunks. h5committested. --- CMakeFilters.cmake | 24 +- CMakeInstallation.cmake | 44 +- CMakeLists.txt | 63 +- COPYING | 2 +- MANIFEST | 15 +- Makefile.am | 10 +- Makefile.in | 15 +- README.txt | 2 +- bin/buildhdf5 | 13 - bin/cmakehdf5 | 26 +- bin/locate_sw | 57 - bin/release | 26 +- bin/snapshot | 4 +- c++/Makefile.in | 5 - c++/examples/CMakeLists.txt | 4 +- c++/examples/Makefile.in | 5 - c++/examples/run-c++-ex.sh.in | 2 +- c++/src/CMakeLists.txt | 2 +- c++/src/H5AbstractDs.cpp | 41 +- c++/src/H5AbstractDs.h | 1 + c++/src/H5ArrayType.h | 1 - c++/src/H5Attribute.cpp | 8 +- c++/src/H5Attribute.h | 23 +- c++/src/H5CommonFG.cpp | 127 +- c++/src/H5CommonFG.h | 10 + c++/src/H5CompType.cpp | 10 +- c++/src/H5DataSet.cpp | 8 +- c++/src/H5DataSet.h | 5 + c++/src/H5DataSpace.cpp | 1 + c++/src/H5DataSpace.h | 3 + c++/src/H5DataType.cpp | 42 +- c++/src/H5DataType.h | 6 + c++/src/H5FaccProp.cpp | 65 +- c++/src/H5FaccProp.h | 7 + c++/src/H5File.cpp | 45 +- c++/src/H5File.h | 7 +- c++/src/H5Group.cpp | 1 + c++/src/H5IdComponent.cpp | 5 + c++/src/H5IdComponent.h | 1 + c++/src/H5Include.h | 12 + c++/src/H5IntType.h | 2 +- c++/src/H5Location.cpp | 58 +- c++/src/H5Location.h | 6 +- c++/src/H5PropList.cpp | 1 + c++/src/H5VarLenType.h | 1 - c++/src/Makefile.am | 6 - c++/src/Makefile.in | 12 +- c++/src/h5c++.in | 2 +- c++/test/CMakeLists.txt | 2 +- c++/test/Makefile.am | 6 - c++/test/Makefile.in | 10 +- c++/test/dsets.cpp | 8 +- c++/test/tattr.cpp | 16 +- c++/test/tcompound.cpp | 2 +- c++/test/tfile.cpp | 142 + c++/test/tobject.cpp | 26 +- c++/test/ttypes.cpp | 21 +- config/cce-fflags | 73 + config/cce-flags | 79 + config/cmake/ConfigureChecks.cmake | 156 - config/cmake/ConversionTests.c | 367 - config/cmake/H5pubconf.h.in | 78 - config/cmake/HDF518_Examples.cmake.in | 12 +- config/cmake/README.txt.cmake.in | 8 +- config/cmake/cacheinit.cmake | 8 - config/cmake/hdf5-config.cmake.in | 157 +- config/craynv | 198 - config/dec-flags | 150 - config/hpux11.23 | 96 - config/ia64-linux-gnu | 144 - config/irix6.x | 178 - config/linux-gnulibc1 | 24 +- config/lt_vers.am | 2 +- config/nec-superux14.1 | 179 - config/sv1-cray | 199 - config/x86_64-redstorm-linux-gnu | 164 - configure | 13813 ++++++++----------- configure.ac | 1355 +- examples/CMakeLists.txt | 4 +- examples/Makefile.in | 5 - examples/run-c-ex.sh.in | 2 +- fortran/Makefile.in | 5 - fortran/examples/CMakeLists.txt | 49 +- fortran/examples/Makefile.in | 5 - fortran/examples/run-fortran-ex.sh.in | 2 +- fortran/src/CMakeLists.txt | 143 +- fortran/src/H5Df.c | 8 +- fortran/src/H5Ff.c | 9 +- fortran/src/H5Gf.c | 2 +- fortran/src/H5Lf.c | 15 +- fortran/src/H5Of.c | 7 +- fortran/src/H5Pf.c | 27 +- fortran/src/H5Pff.f90 | 116 +- fortran/src/H5Rf.c | 4 +- fortran/src/H5Rff_F03.f90 | 6 +- fortran/src/H5Sf.c | 21 +- fortran/src/H5Tf.c | 331 +- fortran/src/H5f90proto.h | 2 +- fortran/src/Makefile.in | 7 +- fortran/src/README | 4 - fortran/src/h5fc.in | 2 +- fortran/test/CMakeLists.txt | 58 +- fortran/test/Makefile.in | 5 - fortran/test/fortranlib_test_1_8.f90 | 8 +- fortran/test/t.h | 2 +- fortran/test/tH5A.f90 | 2 - fortran/test/tH5A_1_8.f90 | 688 +- fortran/test/tH5E_F03.f90 | 8 +- fortran/test/tH5F.f90 | 2 - fortran/test/tH5G_1_8.f90 | 620 +- fortran/test/tH5MISC_1_8.f90 | 80 +- fortran/test/tH5O.f90 | 8 +- fortran/test/tH5O_F03.f90 | 4 +- fortran/test/tH5P.f90 | 2 - fortran/test/tH5P_F03.f90 | 99 +- fortran/test/tH5Sselect.f90 | 340 +- fortran/test/tH5T.f90 | 26 +- fortran/test/tH5T_F03.f90 | 4 +- fortran/test/tH5VL.f90 | 1 - fortran/test/tf.f90 | 16 + fortran/testpar/CMakeLists.txt | 5 +- fortran/testpar/Makefile.in | 5 - hl/CMakeLists.txt | 4 - hl/Makefile.am | 2 +- hl/Makefile.in | 7 +- hl/c++/Makefile.in | 5 - hl/c++/examples/CMakeLists.txt | 2 +- hl/c++/examples/Makefile.in | 5 - hl/c++/examples/run-hlc++-ex.sh.in | 2 +- hl/c++/src/CMakeLists.txt | 2 +- hl/c++/src/Makefile.am | 6 - hl/c++/src/Makefile.in | 12 +- hl/c++/test/CMakeLists.txt | 2 +- hl/c++/test/Makefile.am | 6 - hl/c++/test/Makefile.in | 10 +- hl/examples/CMakeLists.txt | 2 +- hl/examples/Makefile.in | 5 - hl/examples/run-hlc-ex.sh.in | 2 +- hl/fortran/Makefile.in | 5 - hl/fortran/examples/CMakeLists.txt | 4 +- hl/fortran/examples/Makefile.in | 5 - hl/fortran/examples/run-hlfortran-ex.sh.in | 2 +- hl/fortran/src/CMakeLists.txt | 48 +- hl/fortran/src/Makefile.in | 7 +- hl/fortran/test/CMakeLists.txt | 12 +- hl/fortran/test/Makefile.in | 5 - hl/src/CMakeLists.txt | 2 +- hl/src/H5DS.c | 64 +- hl/src/Makefile.in | 7 +- hl/test/CMakeLists.txt | 6 +- hl/test/Makefile.in | 5 - hl/tools/CMakeLists.txt | 8 +- hl/tools/CMakeTests.cmake | 20 +- hl/tools/Makefile.in | 5 - hl/tools/gif2h5/Makefile.in | 5 - hl/tools/gif2h5/decompress.c | 2 +- hl/tools/gif2h5/gif2mem.c | 10 +- hl/tools/gif2h5/h52gifgentst.c | 8 +- hl/tools/gif2h5/h52giftest.sh.in | 75 +- hl/tools/gif2h5/hdf2gif.c | 21 +- hl/tools/gif2h5/hdfgifwr.c | 8 +- hl/tools/gif2h5/testfiles/REAMDE | 6 + hl/tools/gif2h5/testfiles/ex_image2.h5 | Bin 0 -> 224533 bytes hl/tools/h5watch/Makefile.in | 5 - release_docs/INSTALL_CMake.txt | 18 +- release_docs/INSTALL_parallel | 119 +- release_docs/RELEASE.txt | 2 +- release_docs/USING_CMake_Examples.txt | 10 +- release_docs/USING_HDF5_CMake.txt | 2 +- src/CMakeLists.txt | 8 +- src/H5A.c | 8 +- src/H5AC.c | 131 +- src/H5ACprivate.h | 10 - src/H5Aint.c | 10 +- src/H5Apkg.h | 4 +- src/H5D.c | 2 +- src/H5Dchunk.c | 78 +- src/H5Dcontig.c | 4 +- src/H5Ddbg.c | 2 +- src/H5Ddeprec.c | 2 +- src/H5Dfill.c | 2 +- src/H5Dio.c | 2 +- src/H5Dpkg.h | 4 +- src/H5E.c | 16 +- src/H5Eint.c | 16 +- src/H5Eprivate.h | 2 +- src/H5Epublic.h | 2 +- src/H5FDmpio.c | 48 +- src/H5Fprivate.h | 2 + src/H5G.c | 2 +- src/H5Gdeprec.c | 4 +- src/H5Gtest.c | 78 +- src/H5HGpkg.h | 19 +- src/H5O.c | 13 +- src/H5Ocopy.c | 14 +- src/H5Olayout.c | 1 + src/H5Pfcpl.c | 6 + src/H5R.c | 4 +- src/H5RS.c | 4 +- src/H5RSprivate.h | 2 +- src/H5Rdeprec.c | 2 +- src/H5S.c | 6 + src/H5Sdbg.c | 1 + src/H5T.c | 412 +- src/H5TS.c | 2 +- src/H5TSprivate.h | 2 +- src/H5Tcommit.c | 2 +- src/H5Tconv.c | 76 +- src/H5Tdeprec.c | 2 +- src/H5Tnative.c | 2 +- src/H5Tpkg.h | 117 - src/H5VM.c | 3 +- src/H5VMprivate.h | 29 +- src/H5Ztrans.c | 37 +- src/H5api_adpt.h | 196 +- src/H5config.h.in | 71 - src/H5private.h | 7 +- src/H5public.h | 4 +- src/Makefile.in | 7 +- test/CMakeLists.txt | 28 +- test/CMakeTests.cmake | 4 +- test/Makefile.in | 5 - test/dsets.c | 14 +- test/dt_arith.c | 285 - test/dtransform.c | 23 - test/flush2.c | 4 +- test/gen_filespace.c | 3 +- test/gen_plist.c | 4 +- test/getname.c | 59 +- test/plugin.c | 17 +- test/th5s.c | 28 + test/tmisc.c | 12 + test/ttsafe_cancel.c | 7 +- testpar/CMakeLists.txt | 4 +- testpar/Makefile.in | 5 - tools/Makefile.in | 5 - tools/h5copy/CMakeLists.txt | 6 +- tools/h5copy/Makefile.in | 5 - tools/h5diff/CMakeLists.txt | 8 +- tools/h5diff/Makefile.in | 5 - tools/h5dump/CMakeLists.txt | 6 +- tools/h5dump/CMakeTests.cmake | 20 +- tools/h5dump/CMakeTestsXML.cmake | 8 - tools/h5dump/Makefile.in | 5 - tools/h5dump/binread.c | 66 +- tools/h5dump/testh5dump.sh.in | 17 +- tools/h5dump/testh5dumpxml.sh.in | 12 +- tools/h5import/CMakeLists.txt | 4 +- tools/h5import/Makefile.in | 5 - tools/h5jam/CMakeLists.txt | 10 +- tools/h5jam/Makefile.in | 5 - tools/h5ls/CMakeLists.txt | 2 +- tools/h5ls/Makefile.in | 5 - tools/h5repack/CMakeLists.txt | 12 +- tools/h5repack/CMakeTests.cmake | 130 +- tools/h5repack/Makefile.in | 5 - tools/h5repack/h5repack.sh.in | 8 + tools/h5repack/testfiles/README | 5 + .../testfiles/h5repack_nested_8bit_enum.h5 | Bin 0 -> 273992 bytes .../h5repack_nested_8bit_enum_deflated.h5 | Bin 0 -> 120630 bytes tools/h5stat/CMakeLists.txt | 6 +- tools/h5stat/Makefile.in | 5 - tools/lib/CMakeLists.txt | 4 +- tools/lib/Makefile.in | 5 - tools/lib/h5tools_str.c | 6 +- tools/lib/h5tools_utils.c | 19 +- tools/lib/h5tools_utils.h | 6 +- tools/misc/CMakeLists.txt | 12 +- tools/misc/Makefile.in | 5 - tools/misc/h5cc.in | 2 +- tools/perform/CMakeLists.txt | 30 +- tools/perform/Makefile.in | 5 - 272 files changed, 9514 insertions(+), 14763 deletions(-) create mode 100644 config/cce-fflags create mode 100644 config/cce-flags delete mode 100644 config/craynv delete mode 100644 config/dec-flags delete mode 100644 config/hpux11.23 delete mode 100644 config/ia64-linux-gnu delete mode 100644 config/irix6.x delete mode 100644 config/nec-superux14.1 delete mode 100644 config/sv1-cray delete mode 100644 config/x86_64-redstorm-linux-gnu create mode 100644 hl/tools/gif2h5/testfiles/REAMDE create mode 100644 hl/tools/gif2h5/testfiles/ex_image2.h5 create mode 100644 tools/h5repack/testfiles/README create mode 100644 tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 create mode 100644 tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index bd39dd3..7050f87 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -1,16 +1,4 @@ -#----------------------------------------------------------------------------- -# Options for HDF5 Filters -#----------------------------------------------------------------------------- -MACRO (HDF5_SETUP_FILTERS FILTER) - option (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON) - if (HDF5_USE_FILTER_${FILTER}) - set (H5_HAVE_FILTER_${FILTER} 1) - set (FILTERS "${FILTERS} ${FILTER}") - endif (HDF5_USE_FILTER_${FILTER}) - # message (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}") -ENDMACRO (HDF5_SETUP_FILTERS) - include (ExternalProject) #option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO") set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)") @@ -19,8 +7,8 @@ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MAT option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 1) option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 1) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") - set (ZLIB_URL ${ZLIB_SVN_URL}) - set (SZIP_URL ${SZIP_SVN_URL}) + set (ZLIB_URL ${ZLIB_SVN_URL} CACHE STRING "Path to zlib Subversion repository") + set (SZIP_URL ${SZIP_SVN_URL} CACHE STRING "Path to szip Subversion repository") elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") if (NOT TGZPATH) set (TGZPATH ${HDF5_SOURCE_DIR}) @@ -43,6 +31,9 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT ZLIB_FOUND) find_package (ZLIB) # Legacy find + if (ZLIB_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES}) + endif (ZLIB_FOUND) endif (NOT ZLIB_FOUND) endif (NOT ZLIB_USE_EXTERNAL) if (ZLIB_FOUND) @@ -51,7 +42,7 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT) set (H5_HAVE_LIBZ 1) set (H5_ZLIB_HEADER "zlib.h") set (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR}) - set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR}) + set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) else (ZLIB_FOUND) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) @@ -87,6 +78,9 @@ if (HDF5_ENABLE_SZIP_SUPPORT) find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT}) if (NOT SZIP_FOUND) find_package (SZIP) # Legacy find + if (SZIP_FOUND) + set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES}) + endif (SZIP_FOUND) endif (NOT SZIP_FOUND) endif (NOT SZIP_USE_EXTERNAL) if (SZIP_FOUND) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 1df5311..0380adc 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -176,9 +176,17 @@ if (HDF5_PACK_EXAMPLES) COMPONENT hdfdocuments ) if (EXISTS "${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}") + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED} + ) + install ( + DIRECTORY ${HDF5_BINARY_DIR}/HDF5Examples-0.1.1-Source + DESTINATION ${HDF5_INSTALL_DATA_DIR} + USE_SOURCE_PERMISSIONS + COMPONENT hdfdocuments + ) install ( FILES - ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED} ${HDF5_SOURCE_DIR}/release_docs/USING_CMake_Examples.txt DESTINATION ${HDF5_INSTALL_DATA_DIR} COMPONENT hdfdocuments @@ -363,8 +371,9 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) set(CPACK_WIX_PROPERTY_ARPCOMMENTS "HDF5 (Hierarchical Data Format 5) Software Library and Utilities") set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "${HDF5_PACKAGE_URL}") set(CPACK_WIX_PROPERTY_ARPHELPLINK "${HDF5_PACKAGE_BUGREPORT}") - - set(CPACK_WIX_PATCH_FILE "${HDF_RESOURCES_DIR}/patch.xml") + if (BUILD_SHARED_LIBS) + set(CPACK_WIX_PATCH_FILE "${HDF_RESOURCES_DIR}/patch.xml") + endif (BUILD_SHARED_LIBS) elseif (APPLE) list (APPEND CPACK_GENERATOR "DragNDrop") set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON) @@ -380,7 +389,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns") set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist") set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities") - set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2014 by The HDF Group. All rights reserved.") + set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2015 by The HDF Group. All rights reserved.") set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}") set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}") set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}") @@ -472,7 +481,10 @@ The HDF5 data model, file format, API, library, and tools are open and distribut cpack_add_component_group(Runtime) - cpack_add_component_group(Documents) + cpack_add_component_group(Documents + EXPANDED + DESCRIPTION "Release notes for developing HDF5 applications" + ) cpack_add_component_group(Development EXPANDED @@ -487,28 +499,27 @@ The HDF5 data model, file format, API, library, and tools are open and distribut #--------------------------------------------------------------------------- # Now list the cpack commands #--------------------------------------------------------------------------- - CPACK_ADD_COMPONENT (hdfapplications - DISPLAY_NAME "HDF5 Applications" - DEPENDS libraries - GROUP Applications - ) CPACK_ADD_COMPONENT (libraries DISPLAY_NAME "HDF5 Libraries" GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (headers DISPLAY_NAME "HDF5 Headers" DEPENDS libraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hdfdocuments DISPLAY_NAME "HDF5 Documents" GROUP Documents + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (configinstall DISPLAY_NAME "HDF5 CMake files" DEPENDS libraries GROUP Development + INSTALL_TYPES Full Developer User ) if (HDF5_BUILD_FORTRAN) @@ -516,11 +527,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 Fortran Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (fortheaders DISPLAY_NAME "HDF5 Fortran Headers" DEPENDS fortlibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_FORTRAN) @@ -529,11 +542,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 C++ Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (cppheaders DISPLAY_NAME "HDF5 C++ Headers" DEPENDS cpplibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_CPP_LIB) @@ -542,16 +557,19 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 Tools Applications" DEPENDS toolslibraries GROUP Applications + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (toolslibraries DISPLAY_NAME "HDF5 Tools Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (toolsheaders DISPLAY_NAME "HDF5 Tools Headers" DEPENDS toolslibraries GROUP Development + INSTALL_TYPES Full Developer ) endif (HDF5_BUILD_TOOLS) @@ -560,31 +578,37 @@ The HDF5 data model, file format, API, library, and tools are open and distribut DISPLAY_NAME "HDF5 HL Libraries" DEPENDS libraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlheaders DISPLAY_NAME "HDF5 HL Headers" DEPENDS hllibraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hltoolsapplications DISPLAY_NAME "HDF5 HL Tools Applications" DEPENDS hllibraries GROUP Applications + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlcpplibraries DISPLAY_NAME "HDF5 HL C++ Libraries" DEPENDS hllibraries GROUP Runtime + INSTALL_TYPES Full Developer User ) CPACK_ADD_COMPONENT (hlcppheaders DISPLAY_NAME "HDF5 HL C++ Headers" DEPENDS hlcpplibraries GROUP Development + INSTALL_TYPES Full Developer ) CPACK_ADD_COMPONENT (hlfortlibraries DISPLAY_NAME "HDF5 HL Fortran Libraries" DEPENDS fortlibraries GROUP Runtime + INSTALL_TYPES Full Developer User ) endif (HDF5_BUILD_HL_LIB) diff --git a/CMakeLists.txt b/CMakeLists.txt index a09ab1a..a6994ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -283,8 +283,8 @@ if (BUILD_SHARED_LIBS) else (BUILD_SHARED_LIBS) set (H5_BUILT_AS_STATIC_LIB 1) set (H5_ENABLE_STATIC_LIB YES) - set (CMAKE_POSITION_INDEPENDENT_CODE ON) endif (BUILD_SHARED_LIBS) +set (CMAKE_POSITION_INDEPENDENT_CODE ON) #----------------------------------------------------------------------------- # Option to Build Static executables @@ -369,10 +369,11 @@ endif (MAKE_SYSTEM) #----------------------------------------------------------------------------- # Add some definitions for Debug Builds #----------------------------------------------------------------------------- +option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) +mark_as_advanced (HDF5_ENABLE_TRACE) if (CMAKE_BUILD_TYPE MATCHES Debug) add_definitions (-DDEBUG) # Enable tracing of the API - option (HDF5_ENABLE_TRACE "Enable API tracing capability" ON) if (HDF5_ENABLE_TRACE) add_definitions (-DH5_DEBUG_API ) endif (HDF5_ENABLE_TRACE) @@ -381,14 +382,13 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) if (HDF5_ENABLE_INSTRUMENT) set (H5_HAVE_INSTRUMENTED_LIBRARY 1) endif (HDF5_ENABLE_INSTRUMENT) - mark_as_advanced (HDF5_Enable_Instrument) + mark_as_advanced (HDF5_ENABLE_INSTRUMENT) #-- NMake Makefiles will overwhelm the console with warnings if -Wall is used. if (NOT WIN32) add_definitions (-Wall) endif (NOT WIN32) else (CMAKE_BUILD_TYPE MATCHES Debug) add_definitions (-DNDEBUG) - option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) if (HDF5_ENABLE_TRACE) add_definitions (-DH5_DEBUG_API ) endif (HDF5_ENABLE_TRACE) @@ -685,6 +685,9 @@ endif (HDF5_USE_18_API_DEFAULT) #----------------------------------------------------------------------------- include (UserMacros.cmake) +#----------------------------------------------------------------------------- +# Include filter (zlib, szip, etc.) macros +#----------------------------------------------------------------------------- include (CMakeFilters.cmake) #----------------------------------------------------------------------------- @@ -792,6 +795,27 @@ if (BUILD_TESTING) endif (BUILD_TESTING) #----------------------------------------------------------------------------- +# Option to build examples +#----------------------------------------------------------------------------- +if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") + option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON) + if (HDF5_BUILD_EXAMPLES) + add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples) + endif (HDF5_BUILD_EXAMPLES) +endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") + +#----------------------------------------------------------------------------- +# Option to build High Level API's +#----------------------------------------------------------------------------- +if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") + option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON) + if (HDF5_BUILD_HL_LIB) + set (H5_INCLUDE_HL 1) + add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl) + endif (HDF5_BUILD_HL_LIB) +endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") + +#----------------------------------------------------------------------------- # Option to build Fortran bindings/tests/examples # Make sure this appears before the CONFIGURE_FILE step # so that fortran name mangling is detected before writing H5pubconf.h @@ -829,20 +853,10 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for endif (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran") #----------------------------------------------------------------------------- -# Option to build examples -#----------------------------------------------------------------------------- -if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") - option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF) - if (HDF5_BUILD_EXAMPLES) - add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples) - endif (HDF5_BUILD_EXAMPLES) -endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") - -#----------------------------------------------------------------------------- # Option to build HDF5 C++ Library #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") - option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF) + option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON) if (HDF5_BUILD_CPP_LIB) # check for unsupported options if (HDF5_ENABLE_PARALLEL) @@ -852,6 +866,12 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") set (H5_NO_STD 1) endif (CMAKE_NO_STD_NAMESPACE) add_subdirectory (${HDF5_SOURCE_DIR}/c++ ${PROJECT_BINARY_DIR}/c++) + if (HDF5_BUILD_HL_LIB) + if (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++") + #-- Build the High Level Fortran source codes + add_subdirectory (${HDF5_SOURCE_DIR}/hl/c++ ${PROJECT_BINARY_DIR}/hl/c++) + endif (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++") + endif (HDF5_BUILD_HL_LIB) endif (HDF5_BUILD_CPP_LIB) endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") @@ -859,24 +879,13 @@ endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++" # Option to build HDF5 Tools #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") - option (HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF) + option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) if (HDF5_BUILD_TOOLS) add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools) endif (HDF5_BUILD_TOOLS) endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") #----------------------------------------------------------------------------- -# Option to build High Level API's -#----------------------------------------------------------------------------- -if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") - option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF) - if (HDF5_BUILD_HL_LIB) - set (H5_INCLUDE_HL 1) - add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl) - endif (HDF5_BUILD_HL_LIB) -endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") - -#----------------------------------------------------------------------------- # Check if Fortran's default real is double precision. If it is and HL is # being built then configure should fail due to bug HDFFV-889. #----------------------------------------------------------------------------- diff --git a/COPYING b/COPYING index b48d527..8428f33 100644 --- a/COPYING +++ b/COPYING @@ -4,7 +4,7 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities ----------------------------------------------------------------------------- HDF5 (Hierarchical Data Format 5) Software Library and Utilities -Copyright 2006-2014 by The HDF Group. +Copyright 2006-2015 by The HDF Group. NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities Copyright 1998-2006 by the Board of Trustees of the University of Illinois. diff --git a/MANIFEST b/MANIFEST index 70394e7..ee8b211 100644 --- a/MANIFEST +++ b/MANIFEST @@ -88,37 +88,31 @@ ./config/COPYING ./config/BlankForm ./config/apple +./config/cce-fflags +./config/cce-flags ./config/commence.am ./config/conclude.am -./config/craynv -./config/dec-flags ./config/examples.am ./config/freebsd ./config/gnu-fflags ./config/gnu-flags -./config/hpux11.23 ./config/i386-pc-cygwin32 ./config/i686-pc-cygwin -./config/ia64-linux-gnu ./config/ibm-aix ./config/ibm-flags ./config/intel-fflags ./config/intel-flags -./config/irix6.x ./config/linux-gnu ./config/linux-gnuaout ./config/linux-gnulibc1 ./config/linux-gnulibc2 ./config/lt_vers.am -./config/nec-superux14.1 ./config/Makefile.am.blank ./config/pgi-fflags ./config/pgi-flags ./config/powerpc-ibm-aix5.x ./config/solaris2.x -./config/sv1-cray ./config/x86_64-pc-cygwin -./config/x86_64-redstorm-linux-gnu ./config/site-specific/BlankForm @@ -2182,6 +2176,7 @@ ./tools/h5diff/testfiles/tmpSingleSiteBethe.output.h5 #test files for h5repack +./tools/h5repack/testfiles/README ./tools/h5repack/testfiles/h5repack_attr.h5 ./tools/h5repack/testfiles/h5repack_attr_refs.h5 ./tools/h5repack/testfiles/h5repack_deflate.h5 @@ -2199,6 +2194,8 @@ ./tools/h5repack/testfiles/h5repack_layout3.h5 ./tools/h5repack/testfiles/h5repack_layout.UD.h5 ./tools/h5repack/testfiles/h5repack_named_dtypes.h5 +./tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 +./tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 ./tools/h5repack/testfiles/h5repack_nbit.h5 ./tools/h5repack/testfiles/h5repack_objs.h5 ./tools/h5repack/testfiles/h5repack_refs.h5 @@ -2402,6 +2399,8 @@ ./hl/tools/gif2h5/writehdf.c ./hl/tools/gif2h5/h52gifgentst.c ./hl/tools/gif2h5/h52giftest.sh.in +./hl/tools/gif2h5/testfiles/REAMDE +./hl/tools/gif2h5/testfiles/ex_image2.h5 ./hl/tools/gif2h5/testfiles/image1.gif ./hl/tools/gif2h5/testfiles/h52giftst.h5 # diff --git a/Makefile.am b/Makefile.am index 0bef022..c34f2cd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,7 +87,7 @@ CHECK_CLEANFILES+=*-tmp test _test: check lib progs check-p check-s: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -95,7 +95,7 @@ lib progs check-p check-s: # Make all, tests, and (un)install tests: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -103,7 +103,7 @@ tests: # Check-clean also recurses into examples directory check-clean: - @@SETX@; for d in $(SUBDIRS) examples; do \ + for d in $(SUBDIRS) examples; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -130,7 +130,7 @@ uninstall-all: # Install examples in this directory and recursively install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \ + for d in examples $(HDF5_INTERFACES) $(HL); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done @@ -177,7 +177,7 @@ trace: # Run tests with different Virtual File Drivers. # Currently, only invoke check-vfd in the test directory. check-vfd: - @@SETX@; for d in src test; do \ + for d in src test; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ diff --git a/Makefile.in b/Makefile.in index 1b6b590..edee230 100644 --- a/Makefile.in +++ b/Makefile.in @@ -245,7 +245,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -277,7 +276,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -301,11 +299,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -368,7 +364,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -1006,7 +1001,7 @@ help: test _test: check lib progs check-p check-s: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1014,7 +1009,7 @@ lib progs check-p check-s: # Make all, tests, and (un)install tests: - @@SETX@; for d in $(SUBDIRS); do \ + for d in $(SUBDIRS); do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1022,7 +1017,7 @@ tests: # Check-clean also recurses into examples directory check-clean: - @@SETX@; for d in $(SUBDIRS) examples; do \ + for d in $(SUBDIRS) examples; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -1049,7 +1044,7 @@ uninstall-all: # Install examples in this directory and recursively install-examples uninstall-examples: - @@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \ + for d in examples $(HDF5_INTERFACES) $(HL); do \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ done @@ -1096,7 +1091,7 @@ trace: # Run tests with different Virtual File Drivers. # Currently, only invoke check-vfd in the test directory. check-vfd: - @@SETX@; for d in src test; do \ + for d in src test; do \ if test $$d != .; then \ (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ diff --git a/README.txt b/README.txt index f2b6d02..5de45c1 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.216-swmr0 currently under development +HDF5 version 1.9.217-swmr0 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/bin/buildhdf5 b/bin/buildhdf5 index 8ed4696..3a4b0d3 100755 --- a/bin/buildhdf5 +++ b/bin/buildhdf5 @@ -159,19 +159,6 @@ LOCATE_SZLIB() HP-UX) szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/HPUX-11.00" ;; - IRIX) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - IRIX64) - case "$CC" in - *-n32) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - *) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5" - ;; - esac - ;; Linux) case `uname -m` in i686) diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index c092545..1f0fb7c 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -45,9 +45,12 @@ fi cacheinit=$srcdir/config/cmake/cacheinit.cmake build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF # C++ interface default off build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF # Fortran interface default off +enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF # Fortran2003 interface default off build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON # High Level interface default on build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on +with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON # enable zlib filter default on +with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables zlib filter default off #============= @@ -71,6 +74,8 @@ Usage: $progname [] where options are: --enable-fortran | --disable-fortran: enable or disable fortran API. Default is off. + --enable-fortran2003 | --disable-fortran2003: + enable or disable fortran2003 API. Default is off. --enable-cxx | --disable-cxx: enable or disable c++ API. Default is off. --enable-hl | --disable-hl: @@ -79,6 +84,12 @@ Usage: $progname [] enable or disable building tools. Default is on. --enable-testing | --disable-testing: enable or disable building tests. Default is on. + --with-zlib=INC,LIB | --without-zlib: + Use zlib library for external deflate I/O filter. Default is on. + INC and LIB are the include and lib directories. + --with-szlib=INC,LIB| --without-szlib: + Use szip library for external szip library I/O filter. Default is off. + INC and LIB are the include and lib directories. --help: shows details help page EOF } @@ -106,7 +117,7 @@ STEP() (TIMESTAMP; nerror=0 ; echo "eval $command" eval $command || nerror=1 ; - TIMESTAMP; exit $nerror) < /dev/null >> "$logfile" 2>&1 + TIMESTAMP; exit $nerror) < /dev/null > "$logfile" 2>&1 if [ $? -ne 0 ]; then echo "error in '$banner'. $progname aborted." exit 1 @@ -137,6 +148,12 @@ while [ $# -gt 0 ]; do --disable-fortran) build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF ;; + --enable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=ON + ;; + --disable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF + ;; --enable-cxx) build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON ;; @@ -167,8 +184,9 @@ while [ $# -gt 0 ]; do exit 0 ;; *) - echo "Unknown options" + echo "Unknown options: $1" HELP + exit 1 ;; esac shift @@ -198,11 +216,15 @@ echo Running Cmake for HDF5-${version} ... # 4. Configure the C library, tools and tests with this command: STEP "Configure..." "cmake \ + -C $cacheinit \ $build_cpp_lib \ $build_fortran \ + $enable_f2003 \ $build_hl_lib \ $build_testing \ $build_tools \ + $with_zlib \ + $with_szlib \ $srcdir" $configlog # 5. Build the C library, tools and tests with this command: diff --git a/bin/locate_sw b/bin/locate_sw index 2f2b544..c9a7924 100755 --- a/bin/locate_sw +++ b/bin/locate_sw @@ -67,33 +67,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *-64) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf/Linux" ;; @@ -150,36 +123,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf5/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *-64) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf5/Linux" ;; diff --git a/bin/release b/bin/release index d771db6..703916b 100755 --- a/bin/release +++ b/bin/release @@ -50,31 +50,33 @@ Usage: $0 -d [-h] [--nocheck] [--private] ... This must be run at the top level of the source directory. The other command-line options are the names of the programs to use for compressing the resulting tar archive (if none are given then -"tar md5" is assumed): +"tar" is assumed): tar -- use tar and don't do any compressing. gzip -- use gzip with "-9" and append ".gz" to the output name. bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. zip -- convert all text files to DOS style and form a zip file for Windows use. - md5 -- produce a md5 checksum in addition to the archive. doc -- produce the latest doc tree in addition to the archive. +An md5 checksum is produced for each archive created and stored in the md5 file. + Examples: $ bin/release -d /tmp /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar - /tmp/hdf5-1.8.13.tar.md5 $ bin/release -d /tmp gzip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar.gz - $ bin/release -d /tmp tar gzip zip md5 + $ bin/release -d /tmp tar gzip zip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar /tmp/hdf5-1.8.13.tar.gz - /tmp/hdf5-1.8.13.tar.md5 /tmp/hdf5-1.8.13.tar.zip EOF @@ -212,9 +214,9 @@ while [ -n "$1" ]; do esac done -# Default methods are tar and md5 +# Default method is tar if [ "X$methods" = "X" ]; then - methods="tar md5" + methods="tar" fi # Create the temporay work directory. @@ -289,26 +291,28 @@ test "$verbose" && echo " Running tar..." 1>&2 ) # Compress +MD5file=$HDF5_VERS.md5 +cp /dev/null $DEST/$MD5file for comp in $methods; do case $comp in tar) cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar + (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) ;; gzip) test "$verbose" && echo " Running gzip..." 1>&2 gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz + (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) ;; bzip2) test "$verbose" && echo " Running bzip2..." 1>&2 bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 + (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) ;; zip) test "$verbose" && echo " Creating zip ball..." 1>&2 tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 - ;; - md5) - test "$verbose" && echo " Creating checksum..." 1>&2 - (cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5 + (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) ;; doc) test "$verbose" && echo " Creating docs..." 1>&2 diff --git a/bin/snapshot b/bin/snapshot index b4adf5e..a496edd 100755 --- a/bin/snapshot +++ b/bin/snapshot @@ -67,8 +67,8 @@ ReleaseDir_default=release_dir ZLIB_default= ZLIB=$ZLIB_default -# What compression methods to use? (md5 does checksum). -METHODS="gzip zip bzip2 md5 doc" +# What compression methods to use? +METHODS="gzip zip bzip2 doc" # Use User's MAKE if set. Else use generic make. MAKE=${MAKE:-make} diff --git a/c++/Makefile.in b/c++/Makefile.in index 36364eb..c964e95 100644 --- a/c++/Makefile.in +++ b/c++/Makefile.in @@ -405,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -437,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -461,11 +459,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -528,7 +524,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt index 5ea51a4..ff375f3 100644 --- a/c++/examples/CMakeLists.txt +++ b/c++/examples/CMakeLists.txt @@ -35,7 +35,7 @@ set (tutr_examples foreach (example ${examples}) add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp) TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (cpp_ex_${example} " " " ") + TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp) endforeach (example ${examples}) @@ -43,7 +43,7 @@ endforeach (example ${examples}) foreach (example ${tutr_examples}) add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp) TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (cpp_ex_${example} " " " ") + TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp) endforeach (example ${tutr_examples}) diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index 734fdc8..c8d6b18 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -353,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -385,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -409,11 +407,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -476,7 +472,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/c++/examples/run-c++-ex.sh.in b/c++/examples/run-c++-ex.sh.in index 77ac36a..eae2782 100644 --- a/c++/examples/run-c++-ex.sh.in +++ b/c++/examples/run-c++-ex.sh.in @@ -34,7 +34,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" AR="@AR@" RANLIB="@RANLIB@" H5TOOL="h5c++" # The tool name diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index 513bbb6..2f3a0c4 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -84,7 +84,7 @@ set (CPP_HDRS ) add_library (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS}) -TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE}) diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp index 0e6ac00..d59c1eb 100644 --- a/c++/src/H5AbstractDs.cpp +++ b/c++/src/H5AbstractDs.cpp @@ -21,6 +21,7 @@ #include "H5PropList.h" #include "H5Object.h" #include "H5AbstractDs.h" +#include "H5DataSpace.h" #include "H5DcreatProp.h" #include "H5CommonFG.h" #include "H5Alltypes.h" @@ -124,8 +125,9 @@ DataType AbstractDs::getDataType() const // depending on which object invokes getDataType. Then, create and // return the DataType object try { - DataType datatype(p_get_type()); - return(datatype); + DataType datatype; + f_DataType_setId(&datatype, p_get_type()); + return(datatype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getDataType", E.getDetailMsg()); @@ -150,8 +152,9 @@ ArrayType AbstractDs::getArrayType() const // depending on which object invokes getArrayType. Then, create and // return the ArrayType object try { - ArrayType arraytype(p_get_type()); - return(arraytype); + ArrayType arraytype; + f_DataType_setId(&arraytype, p_get_type()); + return(arraytype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getArrayType", E.getDetailMsg()); @@ -176,8 +179,9 @@ CompType AbstractDs::getCompType() const // depending on which object invokes getCompType. Then, create and // return the CompType object try { - CompType comptype(p_get_type()); - return(comptype); + CompType comptype; + f_DataType_setId(&comptype, p_get_type()); + return(comptype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getCompType", E.getDetailMsg()); @@ -202,8 +206,9 @@ EnumType AbstractDs::getEnumType() const // depending on which object invokes getEnumType. Then, create and // return the EnumType object try { - EnumType enumtype(p_get_type()); - return(enumtype); + EnumType enumtype; + f_DataType_setId(&enumtype, p_get_type()); + return(enumtype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getEnumType", E.getDetailMsg()); @@ -228,8 +233,9 @@ IntType AbstractDs::getIntType() const // depending on which object invokes getIntType. Then, create and // return the IntType object try { - IntType inttype(p_get_type()); - return(inttype); + IntType inttype; + f_DataType_setId(&inttype, p_get_type()); + return(inttype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getIntType", E.getDetailMsg()); @@ -254,8 +260,9 @@ FloatType AbstractDs::getFloatType() const // depending on which object invokes getFloatType. Then, create and // return the FloatType object try { - FloatType floatype(p_get_type()); - return(floatype); + FloatType floatype; + f_DataType_setId(&floatype, p_get_type()); + return(floatype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getFloatType", E.getDetailMsg()); @@ -280,8 +287,9 @@ StrType AbstractDs::getStrType() const // depending on which object invokes getStrType. Then, create and // return the StrType object try { - StrType strtype(p_get_type()); - return(strtype); + StrType strtype; + f_DataType_setId(&strtype, p_get_type()); + return(strtype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getStrType", E.getDetailMsg()); @@ -306,8 +314,9 @@ VarLenType AbstractDs::getVarLenType() const // depending on which object invokes getVarLenType. Then, create and // return the VarLenType object try { - VarLenType varlentype(p_get_type()); - return(varlentype); + VarLenType varlentype; + f_DataType_setId(&varlentype, p_get_type()); + return(varlentype); } catch (DataSetIException E) { throw DataTypeIException("DataSet::getVarLenType", E.getDetailMsg()); diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h index 8ed7967..810dc8b 100644 --- a/c++/src/H5AbstractDs.h +++ b/c++/src/H5AbstractDs.h @@ -28,6 +28,7 @@ class FloatType; class IntType; class StrType; class VarLenType; +class DataSpace; /*! \class AbstractDs \brief AbstractDs is an abstract base class, inherited by Attribute diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h index 511126e..6577a6e 100644 --- a/c++/src/H5ArrayType.h +++ b/c++/src/H5ArrayType.h @@ -49,7 +49,6 @@ class H5_DLLCPP ArrayType : public DataType { // Noop destructor virtual ~ArrayType(); - protected: // Default constructor ArrayType(); diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index 6b5c753..0bfdff8 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -74,7 +74,8 @@ Attribute::Attribute(const Attribute& original) : AbstractDs(), IdComponent() //-------------------------------------------------------------------------- Attribute::Attribute(const hid_t existing_id) : AbstractDs(), IdComponent() { - id = existing_id; + id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -270,8 +271,9 @@ DataSpace Attribute::getSpace() const // If the dataspace id is valid, create and return the DataSpace object if( dataspace_id > 0 ) { - DataSpace dataspace( dataspace_id ); - return( dataspace ); + DataSpace dataspace; + f_DataSpace_setId(&dataspace, dataspace_id); + return(dataspace); } else { diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h index f57b922..eced64e 100644 --- a/c++/src/H5Attribute.h +++ b/c++/src/H5Attribute.h @@ -31,6 +31,16 @@ namespace H5 { */ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { public: + + // Copy constructor: makes a copy of an existing Attribute object. + Attribute( const Attribute& original ); + + // Default constructor + Attribute(); + + // Creates a copy of an existing attribute using the attribute id + Attribute( const hid_t attr_id ); + // Closes this attribute. virtual void close(); @@ -70,15 +80,6 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { ///\brief Returns this class name. virtual H5std_string fromClass () const { return("Attribute"); } - // Creates a copy of an existing attribute using the attribute id - Attribute( const hid_t attr_id ); - - // Copy constructor: makes a copy of an existing Attribute object. - Attribute( const Attribute& original ); - - // Default constructor - Attribute(); - // Gets the attribute id. virtual hid_t getId() const; @@ -109,6 +110,10 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { // do not inherit H5Object::renameAttr void renameAttr() {} + + // Friend function to set Attribute id. For library use only. + friend void f_Attribute_setId(Attribute* attr, hid_t new_id); + }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp index 3aa0386..dbe26b4 100644 --- a/c++/src/H5CommonFG.cpp +++ b/c++/src/H5CommonFG.cpp @@ -14,6 +14,7 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include +#include #include "H5Include.h" #include "H5Exception.h" @@ -33,9 +34,6 @@ #include "H5Alltypes.h" #include "H5private.h" // for HDstrcpy -#include -using namespace std; - // There are a few comments that are common to most of the functions // defined in this file so they are listed here. // - getLocId is called by all functions, that call a C API, to get @@ -51,6 +49,7 @@ using namespace std; #ifndef H5_NO_NAMESPACE namespace H5 { +using namespace std; #endif //-------------------------------------------------------------------------- @@ -100,7 +99,9 @@ Group CommonFG::createGroup( const char* name, size_t size_hint ) const throwException("createGroup", "H5Gcreate2 failed"); // No failure, create and return the Group object - Group group( group_id ); + Group group; + CommonFG *ptr = &group; + ptr->p_setId(group_id); return( group ); } @@ -136,7 +137,9 @@ Group CommonFG::openGroup( const char* name ) const throwException("openGroup", "H5Gopen2 failed"); // No failure, create and return the Group object - Group group( group_id ); + Group group; + CommonFG *ptr = &group; + ptr->p_setId(group_id); return( group ); } @@ -178,7 +181,8 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co throwException("createDataSet", "H5Dcreate2 failed"); // No failure, create and return the DataSet object - DataSet dataset( dataset_id ); + DataSet dataset; + f_DataSet_setId(&dataset, dataset_id); return( dataset ); } @@ -213,7 +217,8 @@ DataSet CommonFG::openDataSet( const char* name ) const throwException("openDataSet", "H5Dopen2 failed"); // No failure, create and return the DataSet object - DataSet dataset( dataset_id ); + DataSet dataset; + f_DataSet_setId(&dataset, dataset_id); return( dataset ); } @@ -576,7 +581,8 @@ DataType CommonFG::openDataType( const char* name ) const throwException("openDataType", "H5Topen2 failed"); // No failure, create and return the DataType object - DataType data_type(type_id); + DataType data_type; + f_DataType_setId(&data_type, type_id); return(data_type); } @@ -611,7 +617,8 @@ ArrayType CommonFG::openArrayType( const char* name ) const throwException("openArrayType", "H5Topen2 failed"); // No failure, create and return the ArrayType object - ArrayType array_type (type_id); + ArrayType array_type; + f_DataType_setId(&array_type, type_id); return(array_type); } @@ -646,7 +653,8 @@ CompType CommonFG::openCompType( const char* name ) const throwException("openCompType", "H5Topen2 failed"); // No failure, create and return the CompType object - CompType comp_type(type_id); + CompType comp_type; + f_DataType_setId(&comp_type, type_id); return(comp_type); } @@ -681,7 +689,8 @@ EnumType CommonFG::openEnumType( const char* name ) const throwException("openEnumType", "H5Topen2 failed"); // No failure, create and return the EnumType object - EnumType enum_type(type_id); + EnumType enum_type; + f_DataType_setId(&enum_type, type_id); return(enum_type); } @@ -716,7 +725,8 @@ IntType CommonFG::openIntType( const char* name ) const throwException("openIntType", "H5Topen2 failed"); // No failure, create and return the IntType object - IntType int_type(type_id); + IntType int_type; + f_DataType_setId(&int_type, type_id); return(int_type); } @@ -751,7 +761,8 @@ FloatType CommonFG::openFloatType( const char* name ) const throwException("openFloatType", "H5Topen2 failed"); // No failure, create and return the FloatType object - FloatType float_type(type_id); + FloatType float_type; + f_DataType_setId(&float_type, type_id); return(float_type); } @@ -786,7 +797,8 @@ StrType CommonFG::openStrType( const char* name ) const throwException("openStrType", "H5Topen2 failed"); // No failure, create and return the StrType object - StrType str_type(type_id); + StrType str_type; + f_DataType_setId(&str_type, type_id); return(str_type); } @@ -821,7 +833,8 @@ VarLenType CommonFG::openVarLenType( const char* name ) const throwException("openVarLenType", "H5Topen2 failed"); // No failure, create and return the VarLenType object - VarLenType varlen_type(type_id); + VarLenType varlen_type; + f_DataType_setId(&varlen_type, type_id); return(varlen_type); } @@ -1100,6 +1113,58 @@ H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_ return(objtype); } +//-------------------------------------------------------------------------- +// Function: CommonFG::childObjVersion +///\brief Returns the object header version of an object in this file/group, +/// given the object's name. +///\param objname - IN: Name of the object +///\return Object version, which can have the following values: +/// \li \c H5O_VERSION_1 +/// \li \c H5O_VERSION_2 +///\exception H5::FileIException or H5::GroupIException +/// Exception will be thrown when: +/// - an error returned by the C API +/// - version number is not one of the valid values above +// Programmer Binh-Minh Ribler - April, 2014 +//-------------------------------------------------------------------------- +unsigned CommonFG::childObjVersion(const char* objname) const +{ + H5O_info_t objinfo; + unsigned version = 0; + + // Use C API to get information of the object + herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT); + + // Throw exception if C API returns failure + if (ret_value < 0) + throwException("childObjVersion", "H5Oget_info_by_name failed"); + // Return a valid version or throw an exception for invalid value + else + { + version = objinfo.hdr.version; + if (version != H5O_VERSION_1 && version != H5O_VERSION_2) + throwException("childObjVersion", "Invalid version for object"); + } + return(version); +} + +//-------------------------------------------------------------------------- +// Function: CommonFG::childObjVersion +///\brief This is an overloaded member function, provided for convenience. +/// It takes an \a H5std_string for the object's name. +///\brief Returns the type of an object in this group, given the +/// object's name. +///\param objname - IN: Name of the object (H5std_string&) +///\exception H5::FileIException or H5::GroupIException +// Programmer Binh-Minh Ribler - April, 2014 +//-------------------------------------------------------------------------- +unsigned CommonFG::childObjVersion(const H5std_string& objname) const +{ + // Use overloaded function + unsigned version = childObjVersion(objname.c_str()); + return(version); +} + #ifndef H5_NO_DEPRECATED_SYMBOLS #ifndef DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- @@ -1172,6 +1237,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const } return (obj_type); } + #endif // DOXYGEN_SHOULD_SKIP_THIS #endif /* H5_NO_DEPRECATED_SYMBOLS */ @@ -1189,6 +1255,37 @@ CommonFG::CommonFG() {} // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- CommonFG::~CommonFG() {} + +//-------------------------------------------------------------------------- +// Function: f_DataType_setId - friend +// Purpose: This function is friend to class H5::DataType so that it +// can set DataType::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dtype - IN/OUT: DataType object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataType_setId(DataType* dtype, hid_t new_id) +{ + dtype->id = new_id; +} + +//-------------------------------------------------------------------------- +// Function: f_DataSet_setId - friend +// Purpose: This function is friend to class H5::DataSet so that it +// can set DataSet::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dset - IN/OUT: DataSet object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataSet_setId(DataSet* dset, hid_t new_id) +{ + dset->id = new_id; +} + #endif // DOXYGEN_SHOULD_SKIP_THIS #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h index 5c8a142..d36d78c 100644 --- a/c++/src/H5CommonFG.h +++ b/c++/src/H5CommonFG.h @@ -21,6 +21,7 @@ namespace H5 { #endif +// Class forwarding class Group; class H5File; class ArrayType; @@ -70,6 +71,11 @@ class H5_DLLCPP CommonFG { H5O_type_t childObjType(const char* objname) const; H5O_type_t childObjType(hsize_t index, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_INC, const char* objname=".") const; + // Returns the object header version of an object in this file or group, + // given the object's name. + unsigned childObjVersion(const char* objname) const; + unsigned childObjVersion(const H5std_string& objname) const; + #ifndef H5_NO_DEPRECATED_SYMBOLS // Returns the type of an object in this group, given the // object's index. @@ -159,6 +165,10 @@ class H5_DLLCPP CommonFG { // Noop destructor. virtual ~CommonFG(); + + protected: + virtual void p_setId(const hid_t new_id) = 0; + #endif // DOXYGEN_SHOULD_SKIP_THIS }; // end of CommonFG declaration diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp index 191f004..393aafc 100644 --- a/c++/src/H5CompType.cpp +++ b/c++/src/H5CompType.cpp @@ -227,7 +227,8 @@ hid_t CompType::p_get_member_type(unsigned member_num) const DataType CompType::getMemberDataType( unsigned member_num ) const { try { - DataType datatype(p_get_member_type(member_num)); + DataType datatype; + f_DataType_setId(&datatype, p_get_member_type(member_num)); return(datatype); } catch (DataTypeIException E) { @@ -248,6 +249,7 @@ ArrayType CompType::getMemberArrayType( unsigned member_num ) const { try { ArrayType arraytype(p_get_member_type(member_num)); + f_DataType_setId(&arraytype, p_get_member_type(member_num)); return(arraytype); } catch (DataTypeIException E) { @@ -268,6 +270,7 @@ CompType CompType::getMemberCompType( unsigned member_num ) const { try { CompType comptype(p_get_member_type(member_num)); + f_DataType_setId(&comptype, p_get_member_type(member_num)); return(comptype); } catch (DataTypeIException E) { @@ -288,6 +291,7 @@ EnumType CompType::getMemberEnumType( unsigned member_num ) const { try { EnumType enumtype(p_get_member_type(member_num)); + f_DataType_setId(&enumtype, p_get_member_type(member_num)); return(enumtype); } catch (DataTypeIException E) { @@ -308,6 +312,7 @@ IntType CompType::getMemberIntType( unsigned member_num ) const { try { IntType inttype(p_get_member_type(member_num)); + f_DataType_setId(&inttype, p_get_member_type(member_num)); return(inttype); } catch (DataTypeIException E) { @@ -328,6 +333,7 @@ FloatType CompType::getMemberFloatType( unsigned member_num ) const { try { FloatType floatype(p_get_member_type(member_num)); + f_DataType_setId(&floatype, p_get_member_type(member_num)); return(floatype); } catch (DataTypeIException E) { @@ -348,6 +354,7 @@ StrType CompType::getMemberStrType( unsigned member_num ) const { try { StrType strtype(p_get_member_type(member_num)); + f_DataType_setId(&strtype, p_get_member_type(member_num)); return(strtype); } catch (DataTypeIException E) { @@ -368,6 +375,7 @@ VarLenType CompType::getMemberVarLenType( unsigned member_num ) const { try { VarLenType varlentype(p_get_member_type(member_num)); + f_DataType_setId(&varlentype, p_get_member_type(member_num)); return(varlentype); } catch (DataTypeIException E) { diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp index 0374d95..717ef88 100644 --- a/c++/src/H5DataSet.cpp +++ b/c++/src/H5DataSet.cpp @@ -63,6 +63,7 @@ DataSet::DataSet() : H5Object(), AbstractDs(), id(H5I_INVALID_HID) {} DataSet::DataSet(const hid_t existing_id) : H5Object(), AbstractDs() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -137,7 +138,8 @@ DataSpace DataSet::getSpace() const throw DataSetIException("DataSet::getSpace", "H5Dget_space failed"); } //create dataspace object using the existing id then return the object - DataSpace data_space( dataspace_id ); + DataSpace data_space; + f_DataSpace_setId(&data_space, dataspace_id); return( data_space ); } @@ -170,8 +172,8 @@ DSetCreatPropList DataSet::getCreatePlist() const throw DataSetIException("DataSet::getCreatePlist", "H5Dget_create_plist failed"); } // create and return the DSetCreatPropList object - DSetCreatPropList create_plist( create_plist_id ); - return( create_plist ); + DSetCreatPropList create_plist(create_plist_id); // ok to use existing id const + return(create_plist); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h index 529466a..b2544a2 100644 --- a/c++/src/H5DataSet.h +++ b/c++/src/H5DataSet.h @@ -30,6 +30,7 @@ namespace H5 { */ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { public: + // Close this dataset. virtual void close(); @@ -125,6 +126,10 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { // Reads variable or fixed len strings from this dataset. void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const; void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const; + + // Friend function to set DataSet id. For library use only. + friend void f_DataSet_setId(DataSet* dset, hid_t new_id); + }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp index 761a454..d9c262d 100644 --- a/c++/src/H5DataSpace.cpp +++ b/c++/src/H5DataSpace.cpp @@ -85,6 +85,7 @@ DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : DataSpace::DataSpace(const hid_t existing_id) : IdComponent() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h index b007fd0..a43cecd 100644 --- a/c++/src/H5DataSpace.h +++ b/c++/src/H5DataSpace.h @@ -129,6 +129,9 @@ class H5_DLLCPP DataSpace : public IdComponent { private: hid_t id; // HDF5 dataspace id + + // Friend function to set DataSpace id. For library use only. + friend void f_DataSpace_setId(DataSpace *dspace, hid_t new_id); }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index c4b1694..cdcd1e6 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -71,6 +71,7 @@ DataType::DataType() : H5Object(), id(H5I_INVALID_HID) {} DataType::DataType(const hid_t existing_id) : H5Object() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- @@ -105,7 +106,7 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object() // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object() { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference"); } @@ -141,6 +142,27 @@ DataType::DataType(const DataType& original) : H5Object() } //-------------------------------------------------------------------------- +// Function: DataType overloaded constructor +///\brief Creates a integer type using a predefined type +///\param pred_type - IN: Predefined datatype +///\exception H5::DataTypeIException +// Programmer Binh-Minh Ribler - 2000 +// Description +// Copying the type so that when a predefined type is passed in, +// a copy of it is made, not just a duplicate of the HDF5 id. +// Note: calling DataType::copy will invoke DataType::close() +// unnecessarily and will produce undefined behavior. +// -BMR, Apr 2015 +//-------------------------------------------------------------------------- +DataType::DataType(const PredType& pred_type) : H5Object() +{ + // call C routine to copy the datatype + id = H5Tcopy( pred_type.getId() ); + if (id < 0) + throw DataTypeIException("DataType constructor", "H5Tcopy failed"); +} + +//-------------------------------------------------------------------------- // Function: DataType::copy ///\brief Copies an existing datatype to this datatype object ///\param like_type - IN: Datatype to be copied @@ -203,11 +225,22 @@ void DataType::copy(const DataSet& dset) // Makes a copy of the type on the right hand side and stores // the new id in the left hand side object. // Programmer Binh-Minh Ribler - 2000 +// Modification +// Changed operator= to simply copy the id of rhs instead of +// calling H5Tcopy because, when the operator= is invoked, a +// different datatype id is created and it won't have the same +// characteristics as the original one, specifically, if the +// rhs represents a named datatype, "this" would still be a +// transient datatype. +// BMR - Mar, 2015 //-------------------------------------------------------------------------- DataType& DataType::operator=( const DataType& rhs ) { if (this != &rhs) - copy(rhs); + { + id = rhs.id; + incRefCount(); // increment number of references to this id + } return(*this); } @@ -463,8 +496,9 @@ DataType DataType::getSuper() const // the base type, otherwise, raise exception if( base_type_id > 0 ) { - DataType base_type( base_type_id ); - return( base_type ); + DataType base_type; + base_type.p_setId(base_type_id); + return(base_type); } else { diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h index 064bfe1..6c8a312 100644 --- a/c++/src/H5DataType.h +++ b/c++/src/H5DataType.h @@ -36,6 +36,9 @@ class H5_DLLCPP DataType : public H5Object { // Copy constructor: makes a copy of the original object DataType( const DataType& original ); + // Creates a copy of a predefined type + DataType(const PredType& pred_type); + // Creates a datatype by way of dereference. DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT); DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT); @@ -133,6 +136,9 @@ class H5_DLLCPP DataType : public H5Object { #endif // DOXYGEN_SHOULD_SKIP_THIS private: + // Friend function to set DataType id. For library use only. + friend void f_DataType_setId(DataType* dtype, hid_t new_id); + void p_commit(hid_t loc_id, const char* name); }; #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp index 5696742..5ce9d8e 100644 --- a/c++/src/H5FaccProp.cpp +++ b/c++/src/H5FaccProp.cpp @@ -40,10 +40,10 @@ FileAccPropList::FileAccPropList() : PropList( H5P_FILE_ACCESS ) {} //-------------------------------------------------------------------------- // Function: FileAccPropList copy constructor ///\brief Copy Constructor: makes a copy of the original -/// FileAccPropList object. +///\param original - IN: FileAccPropList instance to copy // Programmer: Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -FileAccPropList::FileAccPropList(const FileAccPropList& orig) : PropList(orig) {} +FileAccPropList::FileAccPropList(const FileAccPropList& original) : PropList(original) {} //-------------------------------------------------------------------------- // Function: FileAccPropList overloaded constructor @@ -664,6 +664,67 @@ unsigned FileAccPropList::getGcReferences() const } //-------------------------------------------------------------------------- +// Function: FileAccPropList::setLibverBounds +///\brief Sets bounds on versions of library format to be used when creating +/// or writing objects. +///\param libver_low - IN: Earliest version of the library that will be +/// used for creating or writing objects +///\param libver_high - IN: Latest version of the library that will be +///\exception H5::PropListIException +///\par Description +/// Valid values of \a libver_low are as follows: +/// \li \c H5F_LIBVER_EARLIEST (Default) +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +/// +/// Valid values of \a libver_high are as follows: +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST (Default) +/// +/// For more details, please refer to +/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLibverBounds +// Programmer: Binh-Minh Ribler - March, 2015 +//-------------------------------------------------------------------------- +void FileAccPropList::setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const +{ + herr_t ret_value = H5Pset_libver_bounds(id, libver_low, libver_high); + if (ret_value < 0) + { + throw PropListIException("FileAccPropList::setLibverBounds", "H5Pset_libver_bounds failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: FileAccPropList::getLibverBounds +///\brief Gets the current settings for the library version format bounds +/// from a file access property list. +///\param libver_low - OUT: Earliest version of the library that will be +/// used for creating or writing objects +///\param libver_high - OUT: Latest version of the library that will be +/// used for creating or writing objects +///\exception H5::PropListIException +///\par Description +/// On success, the argument \a libver_low can have the following +/// values: +/// \li \c H5F_LIBVER_EARLIEST +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +/// +/// and \a libver_high: +/// \li \c H5F_LIBVER_18 +/// \li \c H5F_LIBVER_LATEST +// Programmer: Binh-Minh Ribler - March, 2015 +//-------------------------------------------------------------------------- +void FileAccPropList::getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const +{ + herr_t ret_value = H5Pget_libver_bounds(id, &libver_low, &libver_high); + if( ret_value < 0 ) + { + throw PropListIException("FileAccPropList::getLibverBounds", "H5Pget_libver_bounds failed"); + } +} + +//-------------------------------------------------------------------------- // Function: FileAccPropList destructor ///\brief Noop destructor // Programmer Binh-Minh Ribler - 2000 diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h index 861ac4c..fddc446 100644 --- a/c++/src/H5FaccProp.h +++ b/c++/src/H5FaccProp.h @@ -126,6 +126,13 @@ class H5_DLLCPP FileAccPropList : public PropList { // Returns garbage collecting references setting. unsigned getGcReferences() const; + // Sets bounds on versions of library format to be used when creating + // or writing objects. + void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const; + + // Gets the current settings for the library version format bounds. + void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const; + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("FileAccPropList"); } diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index e0a0da5..fc802d0 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -158,6 +158,25 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro #endif // DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- +// Function: H5File overloaded constructor +///\brief Creates an H5File object using an existing file id. +///\param existing_id - IN: Id of an existing file +// Programmer Binh-Minh Ribler - 2015 +// Description +// Mar 29, 2015 +// Added in responding to a request from user Jason Newton. +// However, it is not recommended to use the private member "id" +// in applications. Unlike other situations, where similar +// constructor is needed by the library in order to return +// an object, H5File doesn't need it. -BMR (HDFFV-8766 partially) +//-------------------------------------------------------------------------- +H5File::H5File(hid_t existing_id) : H5Location(), CommonFG() +{ + id = existing_id; + incRefCount(); // increment number of references to this id +} + +//-------------------------------------------------------------------------- // Function: H5File copy constructor ///\brief Copy constructor: makes a copy of the original /// H5File object. @@ -225,6 +244,13 @@ bool H5File::isHdf5(const H5std_string& name ) //-------------------------------------------------------------------------- void H5File::openFile(const char* name, unsigned int flags, const FileAccPropList& access_plist) { + try { + close(); + } + catch (Exception close_error) { + throw FileIException("H5File::openFile", close_error.getDetailMsg()); + } + hid_t access_plist_id = access_plist.getId(); id = H5Fopen (name, flags, access_plist_id); if (id < 0) // throw an exception when open fails @@ -379,25 +405,6 @@ ssize_t H5File::getObjCount(unsigned types) const } //-------------------------------------------------------------------------- -// Function: H5File::getObjCount -///\brief This is an overloaded member function, provided for convenience. -/// It takes no parameter and returns the object count of all -/// object types. -///\return Number of opened object IDs -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - May 2004 -//-------------------------------------------------------------------------- -ssize_t H5File::getObjCount() const -{ - ssize_t num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL); - if( num_objs < 0 ) - { - throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed"); - } - return (num_objs); -} - -//-------------------------------------------------------------------------- // Function: H5File::getObjIDs ///\brief Retrieves a list of opened object IDs (files, datasets, /// groups and datatypes) in the same file. diff --git a/c++/src/H5File.h b/c++/src/H5File.h index 0ef85b5..939ac8e 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -59,8 +59,7 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG { // Returns the number of opened object IDs (files, datasets, groups // and datatypes) in the same file. - ssize_t getObjCount(unsigned types) const; - ssize_t getObjCount() const; + ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const; // Retrieves a list of opened object IDs (files, datasets, groups // and datatypes) in the same file. @@ -84,6 +83,10 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG { // Gets the file id virtual hid_t getLocId() const; + // Creates an H5File using an existing file id. Not recommended + // in applications. + H5File(hid_t existing_id); + #endif // DOXYGEN_SHOULD_SKIP_THIS ///\brief Returns this class name. diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index 8b22458..4d1d61c 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -85,6 +85,7 @@ hid_t Group::getLocId() const Group::Group(const hid_t existing_id) : H5Object(), CommonFG() { id = existing_id; + incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp index 54813ea..c01d41e 100644 --- a/c++/src/H5IdComponent.cpp +++ b/c++/src/H5IdComponent.cpp @@ -46,6 +46,11 @@ namespace H5 { //-------------------------------------------------------------------------- IdComponent::IdComponent(const hid_t h5_id) {} +//void IdComponent::p_setId(const hid_t new_id) +//{ + //p_setId(new_id); +//} + //-------------------------------------------------------------------------- // Function: IdComponent copy constructor // Purpose: This noop copy constructor is removed as a result of the data diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h index f9fd56e..068fb74 100644 --- a/c++/src/H5IdComponent.h +++ b/c++/src/H5IdComponent.h @@ -104,6 +104,7 @@ class H5_DLLCPP IdComponent { // Sets the identifier of this object to a new value. - this one // doesn't increment reference count virtual void p_setId(const hid_t new_id) = 0; + //virtual void p_setId(const hid_t new_id); #endif // DOXYGEN_SHOULD_SKIP_THIS diff --git a/c++/src/H5Include.h b/c++/src/H5Include.h index 87cb182..1e0e952 100644 --- a/c++/src/H5Include.h +++ b/c++/src/H5Include.h @@ -28,3 +28,15 @@ typedef int bool; const bool false = 0; const bool true = 1; #endif + +// These are defined in H5Opkg.h, which should not be included in the C++ API, +// so re-define them here for now. + +/* Initial version of the object header format */ +#define H5O_VERSION_1 1 + +/* Revised version - leaves out reserved bytes and alignment padding, and adds + * magic number as prefix and checksum as suffix for all chunks. + */ +#define H5O_VERSION_2 2 + diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h index 95fa642..e28f5c2 100644 --- a/c++/src/H5IntType.h +++ b/c++/src/H5IntType.h @@ -24,7 +24,7 @@ namespace H5 { //! Class IntType operates on HDF5 integer datatype. class H5_DLLCPP IntType : public AtomType { public: - // Creates a integer type using a predefined type + // Creates an integer type using a predefined type IntType(const PredType& pred_type); // Gets the integer datatype of the specified dataset diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp index 5cece19..5100e12 100644 --- a/c++/src/H5Location.cpp +++ b/c++/src/H5Location.cpp @@ -126,8 +126,9 @@ Attribute H5Location::createAttribute( const char* name, const DataType& data_ty // If the attribute id is valid, create and return the Attribute object if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return( attr ); } else throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed"); @@ -158,8 +159,9 @@ Attribute H5Location::openAttribute( const char* name ) const hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT); if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return( attr ); } else { @@ -193,12 +195,13 @@ Attribute H5Location::openAttribute( const unsigned int idx ) const H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT); if( attr_id > 0 ) { - Attribute attr( attr_id ); - return( attr ); + Attribute attr; + f_Attribute_setId(&attr, attr_id); + return(attr); } else { - throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); + throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); } } @@ -904,6 +907,12 @@ H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const ///\return DataSpace object ///\exception H5::ReferenceException // Programmer Binh-Minh Ribler - May, 2004 +// Modification +// Mar 29, 2015 +// Used friend function to set id for DataSpace instead of the +// existing id constructor or the setId method to avoid incrementing +// ref count, as a work-around for a problem described in the JIRA +// issue HDFFV-7947. -BMR //-------------------------------------------------------------------------- DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const { @@ -913,8 +922,9 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const throw ReferenceException(inMemFunc("getRegion"), "H5Rget_region failed"); } try { - DataSpace dataspace(space_id); - return(dataspace); + DataSpace dataspace; + f_DataSpace_setId(&dataspace, space_id); + return(dataspace); } catch (DataSpaceIException E) { throw ReferenceException(inMemFunc("getRegion"), E.getDetailMsg()); @@ -929,6 +939,36 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const //-------------------------------------------------------------------------- H5Location::~H5Location() {} +//-------------------------------------------------------------------------- +// Function: f_Attribute_setId - friend +// Purpose: This function is friend to class H5::Attribute so that it +// can set Attribute::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param attr - IN/OUT: Attribute object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_Attribute_setId(Attribute* attr, hid_t new_id) +{ + attr->id = new_id; +} + +//-------------------------------------------------------------------------- +// Function: f_DataSpace_setId - friend +// Purpose: This function is friend to class H5::DataSpace so that it can +// can set DataSpace::id in order to work around a problem +// described in the JIRA issue HDFFV-7947. +// Applications shouldn't need to use it. +// param dspace - IN/OUT: DataSpace object to be changed +// param new_id - IN: New id to set +// Programmer Binh-Minh Ribler - 2015 +//-------------------------------------------------------------------------- +void f_DataSpace_setId(DataSpace* dspace, hid_t new_id) +{ + dspace->id = new_id; +} + #endif // DOXYGEN_SHOULD_SKIP_THIS #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h index 15b9ffd..79a8d5c 100644 --- a/c++/src/H5Location.h +++ b/c++/src/H5Location.h @@ -151,7 +151,7 @@ class H5_DLLCPP H5Location : public IdComponent { H5Location(const hid_t loc_id); // Copy constructor. - H5Location(const H5Location& original); + // H5Location(const H5Location& original); // Creates a reference to an HDF5 object or a dataset region. void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; @@ -167,6 +167,10 @@ class H5_DLLCPP H5Location : public IdComponent { // Retrieves the type of object that an object reference points to. H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const; + // Sets the identifier of this object to a new value. - this one + // doesn't increment reference count + virtual void p_setId(const hid_t new_id) = 0; + #endif // DOXYGEN_SHOULD_SKIP_THIS // Noop destructor. diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp index 1d7d1ba..70ec629 100644 --- a/c++/src/H5PropList.cpp +++ b/c++/src/H5PropList.cpp @@ -258,6 +258,7 @@ void PropList::p_setId(const hid_t new_id) // reset object's id to the given id id = new_id; } + #endif // DOXYGEN_SHOULD_SKIP_THIS //-------------------------------------------------------------------------- diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h index 40c597f..672b3db 100644 --- a/c++/src/H5VarLenType.h +++ b/c++/src/H5VarLenType.h @@ -40,7 +40,6 @@ class H5_DLLCPP VarLenType : public DataType { // Noop destructor virtual ~VarLenType(); - protected: // Default constructor VarLenType(); }; diff --git a/c++/src/Makefile.am b/c++/src/Makefile.am index 7c1f497..cdef7bf 100644 --- a/c++/src/Makefile.am +++ b/c++/src/Makefile.am @@ -30,12 +30,6 @@ lib_LTLIBRARIES=libhdf5_cpp.la # Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am) libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - bin_SCRIPTS=h5c++ # Source files for the library diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 19e4e22..3afedda 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -103,9 +103,6 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(srcdir)/h5c++.in $(top_srcdir)/bin/depcomp \ $(include_HEADERS) $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static TESTS = subdir = c++/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -416,10 +413,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -451,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -475,11 +470,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -542,7 +535,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -678,7 +670,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # This is our main target diff --git a/c++/src/h5c++.in b/c++/src/h5c++.in index a4aaf52..069842a 100644 --- a/c++/src/h5c++.in +++ b/c++/src/h5c++.in @@ -333,7 +333,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt index fe463fa..dcdf3a3 100644 --- a/c++/test/CMakeLists.txt +++ b/c++/test/CMakeLists.txt @@ -36,7 +36,7 @@ configure_file (${HDF5_CPP_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h @O add_executable (cpp_testhdf5 ${CPP_TEST_SRCS} ) TARGET_NAMING (cpp_testhdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (cpp_testhdf5 " " " ") +TARGET_C_PROPERTIES (cpp_testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (cpp_testhdf5 ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET} diff --git a/c++/test/Makefile.am b/c++/test/Makefile.am index 2717e9c..705ec72 100644 --- a/c++/test/Makefile.am +++ b/c++/test/Makefile.am @@ -23,12 +23,6 @@ include $(top_srcdir)/config/commence.am # Include src, test, and c++/src directories AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src -# Shared C++ libraries aren't universally supported. -if CXX_SHARED_CONDITIONAL -else - AM_LDFLAGS+=-static -endif - # These are our main targets. They should be listed in the order to be # executed, generally most specific tests to least specific tests. TEST_PROG=testhdf5 diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in index 709a97e..8711eef 100644 --- a/c++/test/Makefile.in +++ b/c++/test/Makefile.in @@ -99,9 +99,6 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(srcdir)/H5srcdir_str.h.in $(top_srcdir)/bin/depcomp \ $(top_srcdir)/bin/test-driver - -# Shared C++ libraries aren't universally supported. -@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = c++/test @@ -407,10 +404,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \ AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) +AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -442,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -466,11 +461,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -533,7 +526,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp index e5c8bf0..9f1916d 100644 --- a/c++/test/dsets.cpp +++ b/c++/test/dsets.cpp @@ -59,11 +59,9 @@ const H5std_string DSET_BOGUS_NAME ("bogus"); /* Temporary filter IDs used for testing */ const int H5Z_FILTER_BOGUS = 305; -#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead static size_t filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); -#endif -static size_t filter_bogus(size_t nbytes); +// UNUSED variables caused warning, but taking them out caused failure. /*------------------------------------------------------------------------- * Function: test_create @@ -461,12 +459,10 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{ *------------------------------------------------------------------------- */ static size_t -#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[], size_t nbytes, size_t *buf_size, void **buf) -#endif -filter_bogus(size_t nbytes) +// UNUSED variables caused warning, but taking them out caused failure. { return nbytes; } diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp index 407e6a8..c9422ce 100644 --- a/c++/test/tattr.cpp +++ b/c++/test/tattr.cpp @@ -741,12 +741,26 @@ static void test_attr_compound_read() // Verify name H5std_string attr_name = attr.getName(); verify_val(attr_name, ATTR4_NAME, "Attribute::getName", __LINE__, __FILE__); - PASSED(); } // end try block catch (Exception E) { issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, E.getCDetailMsg()); } + + try + { + // Now, try truncating the file to make sure reference counting is good. + // If any references to ids in the previous block are left unterminated, + // the truncating will fail, because the file will not be closed in + // the file.close() above. + H5File file1(FILE_COMPOUND, H5F_ACC_TRUNC); + + PASSED(); + } // end try block + + catch (FileIException E) { + issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, "Unable to truncate file, possibly because some objects are left opened"); + } } // test_attr_compound_read() /**************************************************************** diff --git a/c++/test/tcompound.cpp b/c++/test/tcompound.cpp index 156f438..dbf2f0c 100644 --- a/c++/test/tcompound.cpp +++ b/c++/test/tcompound.cpp @@ -780,7 +780,7 @@ static void test_compound_set_size() CompType dtype_tmp = file.openCompType("dtype"); // Make a copy of the data type - dtype = dtype_tmp; + dtype.copy(dtype_tmp); // Verify that the compound is not packed // packed = dtype_tmp.packed(); // not until C library provides API diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp index ad5e6fc..f3bbb16 100644 --- a/c++/test/tfile.cpp +++ b/c++/test/tfile.cpp @@ -330,6 +330,32 @@ static void test_file_open() verify_val(iparm1, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); verify_val(iparm2, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); + // Test H5File constructor with existing file id + H5File file2(file1.getId()); + file1.close(); + + // Try truncating the file, and it should fail because the file is + // still opened with file2. + try { + H5File file3 (FILE2, H5F_ACC_TRUNC); // should throw E + + // Should FAIL but didn't, so throw an invalid action exception + throw InvalidActionException("H5File constructor", "Attempt truncating an opened file."); + } + catch( FileIException E ) // catching H5F_ACC_TRUNC on opened file + {} // do nothing, FAIL expected + + // Now, really close the file. + file2.close(); + + // Truncating should succeed now. + H5File file3(FILE2, H5F_ACC_TRUNC); + + // Opening another file to file3 object, FILE2 should be closed, so + // the next attempt to truncate FILE2 should succeed. + file3.openFile(FILE1, H5F_ACC_RDONLY); + H5File file4(FILE2, H5F_ACC_TRUNC); + PASSED(); } // end of try block @@ -501,6 +527,7 @@ const H5std_string FATTR1_NAME ("file attribute 1"); const H5std_string FATTR2_NAME ("file attribute 2"); int fattr_data[ATTR1_DIM1]={512,-234,98123}; /* Test data for file attribute */ int dattr_data[ATTR1_DIM1]={256,-123,1000}; /* Test data for dataset attribute */ + static void test_file_attribute() { int rdata[ATTR1_DIM1]; @@ -602,6 +629,119 @@ static void test_file_attribute() } } // test_file_attribute() +const H5std_string FILE6("tfile5.h5"); +const H5std_string ROOTGROUP("/"); +const H5std_string GROUP1("/G1"); +const H5std_string SUBGROUP3("/G1/G3"); + +/*------------------------------------------------------------------------- + * Function: test_libver_bounds_real + * + * Purpose: Verify that a file created and modified with the + * specified libver bounds has the specified object header + * versions for the right objects. + * + * Return: None + * + * Programmer: Binh-Minh Ribler (use C version) + * March, 2015 + * + *------------------------------------------------------------------------- + */ +static void test_libver_bounds_real( + H5F_libver_t libver_create, unsigned oh_vers_create, + H5F_libver_t libver_mod, unsigned oh_vers_mod) +{ + try { + + /* + * Create a new file using the default creation property and access property + * with latest library version. + */ + FileAccPropList fapl; + fapl.setLibverBounds(libver_create, H5F_LIBVER_LATEST); + H5File file(FILE6, H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, fapl); + + /* + * Make sure the root group has the correct object header version + */ + unsigned obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + /* + * Reopen the file and make sure the root group still has the correct version + */ + file.close(); + + fapl.setLibverBounds(libver_mod, H5F_LIBVER_LATEST); + + file.openFile(FILE6, H5F_ACC_RDWR, fapl); + + obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + /* + * Create a group named "/G1" in the file, and make sure it has the correct + * object header version + */ + Group group = file.createGroup(GROUP1); + + obj_version = file.childObjVersion(GROUP1); + verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__); + + group.close(); // close "/G1" + + /* + * Create a group named "/G1/G3" in the file, and make sure it has the + * correct object header version + */ + group = file.createGroup(SUBGROUP3); + + obj_version = group.childObjVersion(SUBGROUP3); + verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__); + + group.close(); // close "/G1/G3" + + /* + * Make sure the root group still has the correct object header version + */ + obj_version = file.childObjVersion(ROOTGROUP); + verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__); + + // Everything should be closed as they go out of scope + } // end of try block + + catch (Exception E) { + issue_fail_msg("test_libver_bounds_real()", __LINE__, __FILE__, E.getCDetailMsg()); + } + +} /* end test_libver_bounds_real() */ + +/*------------------------------------------------------------------------- + * + * Function: test_libver_bounds + * + * Purpose: Verify that a file created and modified with various + * libver bounds is handled correctly. + * + * Return: None + * + * Programmer: Binh-Minh Ribler (use C version) + * March 2015 + * + *------------------------------------------------------------------------- + */ +static void test_libver_bounds() +{ + // Output message about test being performed + SUBTEST("Setting library version bounds"); + + /* Run the tests */ + test_libver_bounds_real(H5F_LIBVER_EARLIEST, H5O_VERSION_1, H5F_LIBVER_LATEST, H5O_VERSION_2); + test_libver_bounds_real(H5F_LIBVER_LATEST, H5O_VERSION_2, H5F_LIBVER_EARLIEST, H5O_VERSION_1); + PASSED(); +} /* end test_libver_bounds() */ + /*------------------------------------------------------------------------- * Function: test_file * @@ -629,6 +769,7 @@ void test_file() test_file_size(); // Test file size test_file_name(); // Test getting file's name test_file_attribute(); // Test file attribute feature + test_libver_bounds(); // Test format version } // test_file() @@ -655,4 +796,5 @@ void cleanup_file() HDremove(FILE3.c_str()); HDremove(FILE4.c_str()); HDremove(FILE5.c_str()); + HDremove(FILE6.c_str()); } // cleanup_file diff --git a/c++/test/tobject.cpp b/c++/test/tobject.cpp index c74d34a..2381ec2 100644 --- a/c++/test/tobject.cpp +++ b/c++/test/tobject.cpp @@ -182,20 +182,38 @@ static void test_get_objname_ontypes() // Create a datatype and save it IntType inttype(PredType::STD_B8LE); + inttype.commit(file, "INT type of STD_B8LE"); + // Close the type then open it again to test getting its name + inttype.close(); + inttype = file.openIntType("INT type of STD_B8LE"); + + // Get and verify its name + H5std_string inttype_name = inttype.getObjName(); + verify_val(inttype_name, "/INT type of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); + + // Make copy of a predefined type and save it DataType dtype(PredType::STD_B8LE); dtype.commit(file, "STD_B8LE"); + // Close the data type and file + dtype.close(); + file.close(); + + // Re-open the file and the data type to test getting its name + file.openFile(FILE_OBJECTS, H5F_ACC_RDWR); + dtype = file.openDataType("STD_B8LE"); + // Get and verify its name H5std_string type_name = dtype.getObjName(); - verify_val(type_name, "/STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); // Test getting type's name from copied type DataType copied_type; copied_type.copy(dtype); copied_type.commit(file, "copy of STD_B8LE"); type_name = copied_type.getObjName(); - verify_val(type_name, "/copy of STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/copy of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__); // Test copying an integer predefined type IntType new_int_type(PredType::NATIVE_INT); @@ -203,8 +221,8 @@ static void test_get_objname_ontypes() // Name this datatype new_int_type.commit(grp, "IntType NATIVE_INT"); ssize_t name_len = new_int_type.getObjName(type_name); // default len - verify_val(name_len, (ssize_t)HDstrlen("/typetests/IntType NATIVE_INT"), "DataSet::getObjName", __LINE__, __FILE__); - verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataSet::getObjName", __LINE__, __FILE__); + verify_val(name_len, (ssize_t)HDstrlen("/typetests/IntType NATIVE_INT"), "DataType::getObjName", __LINE__, __FILE__); + verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataType::getObjName", __LINE__, __FILE__); // Close everything or they can be closed when objects go out of scope dtype.close(); diff --git a/c++/test/ttypes.cpp b/c++/test/ttypes.cpp index 004723f..2e64051 100644 --- a/c++/test/ttypes.cpp +++ b/c++/test/ttypes.cpp @@ -283,10 +283,16 @@ static void test_query() tid2.close(); file.close(); + // Try truncating the file to make sure reference counting is good. + // If any references to ids of tid1 and tid2 are left unterminated, + // the truncating will fail, because the file will not be closed in + // the file.close() above. + H5File file1(FILENAME[2], H5F_ACC_TRUNC); + PASSED(); } // end of try block catch (Exception E) { - issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg()); + issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg()); } } // test_query @@ -467,27 +473,20 @@ static void test_named () trans_type.setPrecision(256); trans_type.close(); - /* - * Close the committed type and reopen it. It should return a named type. -* This had something to do with the way IntType was returned and assigned -and caused itype.committed not working correctly. So, use another_type for -now. + // Close the committed type and reopen it. It should be a named type. itype.close(); itype = file.openIntType("native-int"); iscommitted = itype.committed(); -*/ - IntType another_type = file.openIntType("native-int"); - iscommitted = another_type.committed(); if (!iscommitted) throw InvalidActionException("IntType::committed()", "Opened named types should be named types!"); // Create a dataset that uses the named type, then get the dataset's // datatype and make sure it's a named type. - DataSet dset = file.createDataSet("dset1", another_type, space); + DataSet dset = file.createDataSet("dset1", itype, space); ds_type = new DataType(dset.getDataType()); iscommitted = ds_type->committed(); if (!iscommitted) - throw InvalidActionException("IntType::committed()", "1 Dataset type should be named type!"); + throw InvalidActionException("IntType::committed()", "Dataset type should be named type!"); dset.close(); ds_type->close(); delete ds_type; diff --git a/config/cce-fflags b/config/cce-fflags new file mode 100644 index 0000000..896e711 --- /dev/null +++ b/config/cce-fflags @@ -0,0 +1,73 @@ +# -*- shell-script -*- +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. + + +# This file should be sourced into configure if the compiler is the +# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything +# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version in a way that works for cce +# unless a compiler version is already known +# +# cc_vendor: The compiler name: Cray +# cc_version: Version number: 8.3.0 +# +if test X = "X$f9x_flags_set"; then + f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -V 2>&1 |grep 'Cray'`" + if test X != "X$f9x_version"; then + f9x_vendor=cce + f9x_version=`echo $f9x_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'` + echo "compiler '$FC' is Cray $f9x_vendor-$f9x_version" + fc_version_info=$f9x_version + fi +fi + +# Common Cray flags for various situations +if test "X-cce" = "X-$f9x_vendor"; then + # Insert section about version specific problems from compiler flags here, + # if necessary. + + arch= + # Architecture-specific flags + # Nothing currently. (Uncomment code below and modify to add any) + #case "$host_os-$host_cpu" in + # *-i686) + # arch="-march=i686" + # ;; + #esac + + # General + H5_FCFLAGS="${H5_FCFLAGS} -hnocaf" + + # Production + # -Wl,-s to remove all symbols for smaller file + PROD_FCFLAGS="-O3 -Wl,-s" + + # Debug + DEBUG_FCFLAGS="-g -O0" + + # Profile + # Use this for profiling with gprof + PROFILE_FCFLAGS="-g -p" + + # Flags are set + f9x_flags_set=yes +fi + +# Clear f9x info if no flags set +if test "X-$f9x_flags_set" = "X-"; then + f9x_vendor= + f9x_version= +fi diff --git a/config/cce-flags b/config/cce-flags new file mode 100644 index 0000000..a34fcbe --- /dev/null +++ b/config/cce-flags @@ -0,0 +1,79 @@ +# -*- shell-script -*- +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. + + +# This file should be sourced into configure if the compiler is the +# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything +# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version in a way that works for cce +# unless a compiler version is already known +# +# cc_vendor: The compiler name: Cray +# cc_version: Version number: 8.3.0 +# +if test X = "X$cc_flags_set"; then + cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |grep 'Cray'`" + if test X != "X$cc_version"; then + cc_vendor=cce + cc_version=`echo $cc_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'` + echo "compiler '$CC' is Cray $cc_vendor-$cc_version" + cc_version_info=$cc_version + cxx_version_info=$cc_version + fi +fi + +# Common Cray flags for various situations +if test "X-cce" = "X-$cc_vendor"; then + # Insert section about version specific problems from compiler flags here, + # if necessary. + + arch= + # Architecture-specific flags + # Nothing currently. (Uncomment code below and modify to add any) + #case "$host_os-$host_cpu" in + # *-i686) + # arch="-march=i686" + # ;; + #esac + + # General + # Default to C99 standard. + H5_CFLAGS="${H5_CFLAGS:--hc99 $arch}" + + # Production + # -Wl,-s to remove all symbols for smaller file + PROD_CFLAGS="-O3 -Wl,-s" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -O0" + DEBUG_CPPFLAGS= + + # Profile + # Use this for profiling with gprof + PROFILE_CFLAGS="-g -p" + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + +fi + +# Clear cc info if no flags set +if test "X-$cc_flags_set" = "X-"; then + cc_vendor= + cc_version= +fi diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 80b44cb..b193ff4 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -33,18 +33,6 @@ endif (HDF5_METADATA_TRACE_FILE) MARK_AS_ADVANCED (HDF5_METADATA_TRACE_FILE) # ---------------------------------------------------------------------- -# Decide whether the data accuracy has higher priority during data -# conversions. If not, some hard conversions will still be prefered even -# though the data may be wrong (for example, some compilers don't -# support denormalized floating values) to maximize speed. -# -option (HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON) -if (HDF5_WANT_DATA_ACCURACY) - set (H5_WANT_DATA_ACCURACY 1) -endif (HDF5_WANT_DATA_ACCURACY) -MARK_AS_ADVANCED (HDF5_WANT_DATA_ACCURACY) - -# ---------------------------------------------------------------------- # Decide whether the presence of user's exception handling functions is # checked and data conversion exceptions are returned. This is mainly # for the speed optimization of hard conversions. Soft conversions can @@ -73,13 +61,6 @@ if (HDF5_ENABLE_HSIZET) set (${HDF_PREFIX}_HAVE_LARGE_HSIZET 1) endif (HDF5_ENABLE_HSIZET) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can handle converting -# floating-point to long long values. -# (This flag should be _unset_ for all machines) -# -# set (H5_HW_FP_TO_LLONG_NOT_WORKS 0) - # so far we have no check for this set (H5_HAVE_TMPFILE 1) @@ -258,109 +239,6 @@ ENDMACRO (H5MiscConversionTest) # Check various conversion capabilities #----------------------------------------------------------------------------- -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can handle conversion from -# long double to integers accurately. This flag should be set "yes" for -# all machines except all SGIs. For SGIs, some conversions are -# incorrect and its cache value is set "no" in its config/irix6.x and -# irix5.x. -# -H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate") -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can do conversion from -# long double to integers regardless of accuracy. This flag should be -# set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -# compiler has 'floating exception' when converting 'long double' to all -# integers except 'unsigned long long'. Other HP-UX systems are unknown -# yet. (1/8/05 - SLU) -# -H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works") -# ----------------------------------------------------------------------- -# Set flag to indicate that the machine can handle conversion from -# integers to long double. (This flag should be set "yes" for all -# machines except all SGIs, where some conversions are -# incorrect and its cache value is set "no" in its config/irix6.x and -# irix5.x) -# -H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_INTEGER_TO_LDOUBLE_ACCURATE "checking IF accurately converting from integers to long double") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'unsigned long' to 'float' values. -# (This flag should be set for all machines, except for Pathscale compiler -# on Sandia's Linux machine where the compiler interprets 'unsigned long' -# values as negative when the first bit of 'unsigned long' is on during -# the conversion to float.) -# -H5ConversionTests (H5_ULONG_TO_FLOAT_ACCURATE "Checking IF accurately converting unsigned long to float values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'unsigned (long) long' values to 'float' and 'double' values. -# (This flag should be set for all machines, except for the SGIs, where -# the cache value is set in the config/irix6.x config file) and Solaris -# 64-bit machines, where the short program below tests if round-up is -# correctly handled. -# -if (CMAKE_SYSTEM MATCHES "solaris2.*") - H5ConversionTests (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE "Checking IF accurately converting unsigned long long to floating-point values") -else (CMAKE_SYSTEM MATCHES "solaris2.*") - set (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1) -endif (CMAKE_SYSTEM MATCHES "solaris2.*") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'float' or 'double' to 'unsigned long long' values. -# (This flag should be set for all machines, except for PGI compiler -# where round-up happens when the fraction of float-point value is greater -# than 0.5. -# -H5ConversionTests (H5_FP_TO_ULLONG_ACCURATE "Checking IF accurately roundup converting floating-point to unsigned long long values" ) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'float', 'double' or 'long double' to 'unsigned long long' values. -# (This flag should be set for all machines, except for HP-UX machines -# where the maximal number for unsigned long long is 0x7fffffffffffffff -# during conversion. -# -H5ConversionTests (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "Checking IF right maximum converting floating-point to unsigned long long values" ) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'long double' to 'unsigned int' values. (This flag should be set for -# all machines, except for some Intel compilers on some Linux.) -# -H5ConversionTests (H5_LDOUBLE_TO_UINT_ACCURATE "Checking IF correctly converting long double to unsigned int values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can _compile_ -# 'unsigned long long' to 'float' and 'double' typecasts. -# (This flag should be set for all machines.) -# -if (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$) - set (H5_ULLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling unsigned long long to floating-point typecasts work") - message (STATUS "Checking IF compiling unsigned long long to floating-point typecasts work... yes") -endif (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can _compile_ -# 'long long' to 'float' and 'double' typecasts. -# (This flag should be set for all machines.) -# -if (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) - set (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work") - message (STATUS "Checking IF compiling long long to floating-point typecasts work... yes") -endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can convert from -# 'unsigned long long' to 'long double' without precision loss. -# (This flag should be set for all machines, except for FreeBSD(sleipnir) -# where the last 2 bytes of mantissa are lost when compiler tries to do -# the conversion, and Cygwin where compiler doesn't do rounding correctly.) -# -H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can handle overflow converting -# all floating-point to all integer types. -# (This flag should be set for all machines, except for Cray X1 where -# floating exception is generated when the floating-point value is greater -# than the maximal integer value). -# -H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows normally converting floating-point to integer values") # ---------------------------------------------------------------------- # Set the flag to indicate that the machine is using a special algorithm to convert # 'long double' to '(unsigned) long' values. (This flag should only be set for @@ -381,44 +259,10 @@ H5ConversionTests (H5_LDOUBLE_TO_LONG_SPECIAL "Checking IF your system converts # H5ConversionTests (H5_LONG_TO_LDOUBLE_SPECIAL "Checking IF your system can convert (unsigned) long to long double values with special algorithm") # ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# 'long double' to '(unsigned) long long' values. (This flag should be set for -# all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -# of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -# start to go wrong on these two machines. Adjusting it higher to -# 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -# values wildly wrong. This test detects this wrong behavior and disable the test. -# -H5ConversionTests (H5_LDOUBLE_TO_LLONG_ACCURATE "Checking IF correctly converting long double to (unsigned) long long values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can accurately convert -# '(unsigned) long long' to 'long double' values. (This flag should be set for -# all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -# 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -# as big as they should be. -# -H5ConversionTests (H5_LLONG_TO_LDOUBLE_CORRECT "Checking IF correctly converting (unsigned) long long to long double values") -# ---------------------------------------------------------------------- -# Set the flag to indicate that the machine generates bad code -# for the H5VM_log2_gen() routine in src/H5VMprivate.h -# (This flag should be set to no for all machines, except for SGI IRIX64, -# where the cache value is set to yes in it's config file) -# -if (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$) - set (H5_BAD_LOG2_CODE_GENERATED 0 CACHE INTERNAL "Define if your system generates wrong code for log2 routine") - message (STATUS "Checking IF your system generates wrong code for log2 routine... no") -endif (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$) -# ---------------------------------------------------------------------- # Check if pointer alignments are enforced # H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restrictions are strictly enforced") -# Define a macro for Cygwin (on XP only) where the compiler has rounding -# problem converting from unsigned long long to long double */ -if (CYGWIN) - set (H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1) -endif (CYGWIN) - # ----------------------------------------------------------------------- # wrapper script variables # diff --git a/config/cmake/ConversionTests.c b/config/cmake/ConversionTests.c index 010ee32..cd2e8bb 100644 --- a/config/cmake/ConversionTests.c +++ b/config/cmake/ConversionTests.c @@ -1,95 +1,3 @@ -#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS_TEST - -int main(void) -{ - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); -} - -#endif - -#ifdef H5_FP_TO_ULLONG_ACCURATE_TEST - -int main(void) -{ - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); -} - -#endif - -#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM_TEST -int main(void) -{ - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); -} - -#endif - -#ifdef H5_LDOUBLE_TO_INTEGER_WORKS_TEST - -#include -#include - -int main(void) -{ - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - -done: - exit(ret); -} - -#endif - #ifdef H5_LDOUBLE_TO_LONG_SPECIAL_TEST int main(void) @@ -208,104 +116,6 @@ done: #endif -#ifdef H5_LDOUBLE_TO_LLONG_ACCURATE_TEST -int main(void) -{ - long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; - } - } -done: - exit(ret); -} -#endif - -#ifdef H5_LDOUBLE_TO_UINT_ACCURATE_TEST -int main(void) -{ - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; - -done: - exit(ret); -} -#endif - -#ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST -int main(void) -{ - long double ld; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int flag=0, ret=0; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } -done: - exit(ret); -} -#endif - #ifdef H5_NO_ALIGNMENT_RESTRICTIONS_TEST #include @@ -359,180 +169,3 @@ main () #endif -#ifdef H5_ULLONG_TO_LDOUBLE_PRECISION_TEST - -#include -#include -#include - -int main(void) -{ - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - -done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); -} - -#endif - - -#ifdef H5_ULONG_TO_FLOAT_ACCURATE_TEST - -int main(void) -{ - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } - -done: - exit(ret); -} - -#endif - -#ifdef H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE_TEST - -#include - - -int main(void) -{ - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); -} -} -#endif diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index ff05373..c47b7c4 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -36,24 +36,13 @@ /* Define if building universal (internal helper macro) */ #cmakedefine H5_AC_APPLE_UNIVERSAL_BUILD @H5_AC_APPLE_UNIVERSAL_BUILD@ -/* Define if your system generates wrong code for log2 routine. */ -#cmakedefine H5_BAD_LOG2_CODE_GENERATED @H5_BAD_LOG2_CODE_GENERATED@ - /* Define if the memory buffers being written to disk should be cleared before writing. */ #cmakedefine H5_CLEAR_MEMORY @H5_CLEAR_MEMORY@ -/* Define if your system can handle converting denormalized floating-point - values. */ -#cmakedefine H5_CONVERT_DENORMAL_FLOAT @H5_CONVERT_DENORMAL_FLOAT@ - /* Define if C++ compiler recognizes offsetof */ #cmakedefine H5_CXX_HAVE_OFFSETOF @H5_CXX_HAVE_OFFSETOF@ -/* Define a macro for Cygwin (on XP only) where the compiler has rounding - problem converting from unsigned long long to long double */ -#cmakedefine H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM @H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM@ - /* Define the default plugins path to compile */ #cmakedefine H5_DEFAULT_PLUGINDIR "@H5_DEFAULT_PLUGINDIR@" @@ -74,18 +63,6 @@ /* As FC_FUNC, but for C identifiers containing underscores. */ #define @H5_FC_FUNC_@ -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#cmakedefine H5_FP_TO_INTEGER_OVERFLOW_WORKS @H5_FP_TO_INTEGER_OVERFLOW_WORKS@ - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#cmakedefine H5_FP_TO_ULLONG_ACCURATE @H5_FP_TO_ULLONG_ACCURATE@ - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -#cmakedefine H5_FP_TO_ULLONG_RIGHT_MAXIMUM @H5_FP_TO_ULLONG_RIGHT_MAXIMUM@ - /* Define to 1 if you have the `alarm' function. */ #cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@ @@ -218,9 +195,6 @@ /* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ #cmakedefine H5_HAVE_LIBDMALLOC @H5_HAVE_LIBDMALLOC@ -/* Define to 1 if you have the `lmpe' library (-llmpe). */ -#cmakedefine H5_HAVE_LIBLMPE @H5_HAVE_LIBLMPE@ - /* Define to 1 if you have the `m' library (-lm). */ #cmakedefine H5_HAVE_LIBM @H5_HAVE_LIBM@ @@ -449,42 +423,13 @@ /* Define to 1 if you have the `_scrsize' function. */ #cmakedefine H5_HAVE__SCRSIZE @H5_HAVE__SCRSIZE@ -/* Define if your system can't handle converting floating-point values to long - long. */ -#cmakedefine H5_HW_FP_TO_LLONG_NOT_WORKS @H5_HW_FP_TO_LLONG_NOT_WORKS@ - /* Define if HDF5's high-level library headers should be included in hdf5.h */ #cmakedefine H5_INCLUDE_HL @H5_INCLUDE_HL@ -/* Define if your system can accurately convert from integers to long double - values. */ -#cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@ - -/* Define if your system can convert long double to integers accurately. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@ - -/* Define if your system can convert from long double to integer values. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@ - -/* Define if your system can convert long double to (unsigned) long long - 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@ - -/* Define if your system can compile long long to floating-point casts. */ -#cmakedefine H5_LLONG_TO_FP_CAST_WORKS @H5_LLONG_TO_FP_CAST_WORKS@ - -/* Define if your system can convert (unsigned) long long to long double - 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@ @@ -678,22 +623,6 @@ /* Define to 1 if your declares `struct tm'. */ #cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@ -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#cmakedefine H5_ULLONG_TO_FP_CAST_WORKS @H5_ULLONG_TO_FP_CAST_WORKS@ - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#cmakedefine H5_ULLONG_TO_LDOUBLE_PRECISION @H5_ULLONG_TO_LDOUBLE_PRECISION@ - -/* Define if your system accurately converting unsigned long to float values. - */ -#cmakedefine H5_ULONG_TO_FLOAT_ACCURATE @H5_ULONG_TO_FLOAT_ACCURATE@ - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#cmakedefine H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE @H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE@ - /* Define using v1.6 public API symbols by default */ #cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@ @@ -708,13 +637,6 @@ /* Version number of package */ #define H5_VERSION "@HDF5_PACKAGE_VERSION_STRING@" -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -#cmakedefine H5_VSNPRINTF_WORKS @H5_VSNPRINTF_WORKS@ - -/* Data accuracy is prefered to speed during data conversions */ -#cmakedefine H5_WANT_DATA_ACCURACY @H5_WANT_DATA_ACCURACY@ - /* Check exception handling functions during data conversions */ #cmakedefine H5_WANT_DCONV_EXCEPTION @H5_WANT_DCONV_EXCEPTION@ diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index efd7c04..d767f51 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -13,8 +13,8 @@ set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_BUILD_CONFIGURATION "Release") #set(NO_MAC_FORTRAN "true") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON") -#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) -set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") +set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON") +#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") ############################################################################################################### # Adjust the following SET Commands as needed @@ -23,7 +23,7 @@ if(WIN32) if(STATICLIBRARIES) set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF") endif(STATICLIBRARIES) - set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake/hdf5") + set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake") set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build) set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}") set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") @@ -31,7 +31,7 @@ else(WIN32) if(STATICLIBRARIES) set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") endif(STATICLIBRARIES) - set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake/hdf5") + set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake") set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib") set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build) set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") @@ -71,8 +71,8 @@ if(CTEST_USE_TAR_SOURCE) message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]") execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv) else(WIN32) - message(STATUS "extracting... [${CTEST_CMAKE_COMMAND} -E tar -xvf ${CTEST_SOURCE_NAME}.tar.gz]") - execute_process(COMMAND tar -xvf ${CTEST_SOURCE_NAME}.tar.gz RESULT_VARIABLE rv) + message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]") + execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv) endif(WIN32) if(NOT rv EQUAL 0) diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in index 4044ce5..cc8baeb 100644 --- a/config/cmake/README.txt.cmake.in +++ b/config/cmake/README.txt.cmake.in @@ -24,15 +24,15 @@ Installation After Installation =========================================================================== -The compressed examples file HDF5Examples-0.1.1-Source.@BINARY_EXAMPLE_ENDING@, located in the +The examples folder, HDF5Examples, located in the HDF5 install folder, can be built and tested with CMake and the supplied HDF518_Examples.cmake file. The HDF518_Examples.cmake expects HDF5 to have -been installed in the default location with above compilers. Also, CMake and 7Zip -utilities should be installed. +been installed in the default location with above compilers. Also, the CMake +utility should be installed. To test the installation with the examples; Create a directory to run the examples. - Copy HDF5Examples-0.1.1-Source.@BINARY_EXAMPLE_ENDING@ to this directory, do NOT unzip. + Copy HDF5Examples folder to this directory. Copy HDF518_Examples.cmake to this directory. Edit HDF518_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed. (The default should be correct unless you installed into a different folder.) diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake index e68afe6..87d4fcc 100644 --- a/config/cmake/cacheinit.cmake +++ b/config/cmake/cacheinit.cmake @@ -10,18 +10,10 @@ set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE) set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE) -set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE) - -set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE) - set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE) set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE) -set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE) - -set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE) - set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE) set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE) diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index 8287c7b..da5304d 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -3,63 +3,76 @@ #----------------------------------------------------------------------------- @PACKAGE_INIT@ +string(TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME) + +set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS + C + CXX + Fortran + HL + CXX_HL + Fortran_HL + Tools +) + #----------------------------------------------------------------------------- # User Options #----------------------------------------------------------------------------- -set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@) -set (HDF5_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@) -set (HDF5_ENABLE_F2003 @HDF5_ENABLE_F2003@) -set (HDF5_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@) -set (HDF5_BUILD_TOOLS @HDF5_BUILD_TOOLS@) -set (HDF5_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@) -set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) -set (HDF5_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) -set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) -set (HDF5_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) -set (HDF5_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) +set (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@) +set (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN @HDF5_BUILD_FORTRAN@) +set (${HDF5_PACKAGE_NAME}_ENABLE_F2003 @HDF5_ENABLE_F2003@) +set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@) +set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS @HDF5_BUILD_TOOLS@) +set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@) +set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) +set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) +set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) +set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) +set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) +set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@) #----------------------------------------------------------------------------- # Dependencies #----------------------------------------------------------------------------- -IF(HDF5_ENABLE_PARALLEL) - SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@") - SET(HDF5_MPI_C_LIBRARIES "@MPI_C_LIBRARIES@") -ENDIF(HDF5_ENABLE_PARALLEL) +if (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL) + set (${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@") + set (${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES "@MPI_C_LIBRARIES@") +endif () #----------------------------------------------------------------------------- # Directories #----------------------------------------------------------------------------- -set (HDF5_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${HDF5_MPI_C_INCLUDE_PATH}" ) +set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH}") -set (HDF5_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@") -set_and_check (HDF5_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@") +set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@") +set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@") -if (HDF5_BUILD_FORTRAN) - set (HDF5_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_FORTRAN) +if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_CPP_LIB) - set (HDF5_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_CPP_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_HL_LIB) - set (HDF5_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_HL_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB) - set (HDF5_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@" ) -endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB) +if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB AND ${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@") +endif () -if (HDF5_BUILD_TOOLS) - set (HDF5_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@" ) - set_and_check (HDF5_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin" ) -endif (HDF5_BUILD_TOOLS) +if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS) + set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@") + set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin") +endif () if (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_DYNAMIC_LIB 1 ) -else (HDF5_BUILD_SHARED_LIBS) - set (H5_BUILT_AS_STATIC_LIB 1 ) -endif (HDF5_BUILD_SHARED_LIBS) + set (H5_BUILT_AS_DYNAMIC_LIB 1) +else () + set (H5_BUILT_AS_STATIC_LIB 1) +endif () #----------------------------------------------------------------------------- # Version Strings @@ -73,14 +86,64 @@ set (HDF5_VERSION_MINOR @HDF5_VERSION_MINOR@) # project which has already built hdf5 as a subproject #----------------------------------------------------------------------------- if (NOT TARGET "@HDF5_PACKAGE@") - if (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") - include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) - endif (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib") - if (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") - include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) - endif (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip") + if (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "zlib") + include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + endif () + if (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "szip") + include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake) + endif () include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake) - set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@") -endif (NOT TARGET "@HDF5_PACKAGE@") +endif () + +# Handle default component : +if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL) + set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_C true) +endif () + +# Handle requested components: +list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) + set (hdf5_comp2) + if (${comp} MATCHES "C") + set (hdf5_comp "hdf5") + elseif (${comp} MATCHES "CXX") + set (hdf5_comp "hdf5_cpp") + elseif (${comp} MATCHES "HL") + set (hdf5_comp "hdf5_hl") + elseif (${comp} MATCHES "CXX_HL") + set (hdf5_comp "hdf5_hl_cpp") + elseif (${comp} MATCHES "Tools") + set (hdf5_comp "hdf5_tools") + elseif (${comp} MATCHES "Fortran") + set (hdf5_comp2 "hdf5_f90cstub") + set (hdf5_comp "hdf5_fortran") + elseif (${comp} MATCHES "Fortran_HL") + set (hdf5_comp2 "hdf5_hl_f90cstub") + set (hdf5_comp "hdf5_hl_fortran") + endif () + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP) + if (${HAVE_COMP} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + if (hdf5_comp2) + list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}" HAVE_COMP2) + if (${HAVE_COMP2} LESS 0) + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0) + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2} ${hdf5_comp}) + endif () + else () + set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) + string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) + set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}) + endif () + endif () + endforeach () + + check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) -check_required_components(hdf5) +set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${COMP_LIBRARY}}) + \ No newline at end of file diff --git a/config/craynv b/config/craynv deleted file mode 100644 index 479d5c8..0000000 --- a/config/craynv +++ /dev/null @@ -1,198 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. - -# Disabling Dependency Tracking -# --------------------- -# -# The Cray X1 machines that The HDF Group tests on seem to have trouble doing -# dependency tracking (probably because they use Cray's C++ compiler, -# which autoconf may not recognize). Until this is fixed by autoconf -# or a user complains, disable dependency tracking on Crays. -enable_dependency_tracking="no" - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC=cc - CC_BASENAME=cc -fi -# no need to use RANLIB -RANLIB=: - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - gcc) - H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="" - PROD_CPPFLAGS= - PROFILE_CFLAGS= - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - - - -# Overriding Configure Tests -# -------------------------- -# -# Values for overriding configuration tests when cross compiling. -# This includes compiling on some machines where the serial front end -# compiles for a parallel back end. - -# Set this to `yes' or `no' depending on whether the target is big -# endian or little endian. -#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Hard set the flag to indicate that converting denormalized floating-point -# values doesn't work. -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} - -# The default Fortran 90 compiler - -if test "X-" = "X-$F9X"; then - F9X=ftn -fi - -if test "X-" = "X-$f9x_flags_set"; then - # -Wl passes flags to the linker and -M# will ignore warnings with - # number#. Warning 405 and 412 were stopping the executable from - # being built. - # The -em flag enables .mod files, which is what HDF5 builds. - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -em" - DEBUG_FCFLAGS="-g" - PROD_FCFLAGS="" - PROFILE_FCFLAGS="" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX="CC" - CXX_BASENAME=CC -fi - -case $CXX_BASENAME in - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS= - PROFILE_CPPFLAGS= - ;; -esac - diff --git a/config/dec-flags b/config/dec-flags deleted file mode 100644 index 8f3fa1a..0000000 --- a/config/dec-flags +++ /dev/null @@ -1,150 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file should be sourced into configure if the compiler is a DEC -# compiler. It is careful not to do anything if the compiler is not -# DEC; otherwise `cc_flags_set' is set to `yes' -# - -# Get the compiler version unless it's already known. -# -# cc_vendor: The compiler vendor: DEC -# cc_version: Version number, like: V5.2-038 -# -if test X = "X$cc_flags_set"; then - cc_vendor=DEC - cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |head -1`" - case "$cc_version" in - DEC*) - cc_version="`echo $cc_version |\ - sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`" - ;; - Compaq*) - cc_version="`echo $cc_version |\ - sed 's/.*Compaq C \(V[0-9][-\.0-9]*\).*/\1/'`" - ;; - esac - - if test X != "$gcc_version"; then - echo "compiler '$CC' is $cc_vendor-$cc_version" - else - cc_vendor= - fi -fi - -# Warn about old compilers that don't work right. -case "$cc_vendor-$cc_version" in - DEC-V5.2-038) - cat < /dev/null; then - CC=icc - CC_BASENAME=icc - fi -fi - -# Define RUNPARALLEL if parallel mode is enabled or a parallel compiler used. -if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then - RUNPARALLEL=${RUNPARALLEL="mpirun -np \$\${NPROCS:=6}"} -fi - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. - -case $CC_BASENAME in - ecc|icc) - . $srcdir/config/intel-flags - ;; - - gcc) - . $srcdir/config/gnu-flags - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - -# The default Fortran 90 compiler - -# Use Intel Fortran compiler by default. -if test X-$enable_fortran = X-yes -a "X-$FC" = "X-"; then - if test "X-$enable_parallel" = "X-yes"; then - FC=mpif90 - else - FC="ifort" - fi -fi - -case $FC in - *efc|*ifort) - # this is for efc v7. Older efc do not work with these. - # -Vaxlib is for non-standard fortran calls like exit(). - MORE_FCFLAGS='-fpp -DDEC$=DEC_ -DMS$=MS_ -Vaxlib' - H5_FCFLAGS="$H5_FCFLAGS $MORE_FCFLAGS" - f9x_flags_set=yes - ;; - - *) - f9x_flags_set=yes - ;; -esac - -# The following is not right and need work. -if test "X$f9x_flags_set" = "X"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS" - DEBUG_FCFLAGS="" - PROD_FCFLAGS="" - PROFILE_FCFLAGS="" - f9x_flags_set=yes -fi - -# The Default settings for C++ -# Intel changed C++ compiler's name from "icc" to "icpc" in version 8.1 -if test -z "$CXX"; then - CXX=icpc - CXX_BASENAME=icpc -fi - -# A patch to make g++ getting the default settings. -# CXX_BASENAME should have been set in configure. -if test "X$CXX" = "Xg++"; then - CXX_BASENAME=g++ -fi - - -case $CXX_BASENAME in - ecc|icc) # Intel compilers - # Default to C99 standard. - H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}" - DEBUG_CXXFLAGS="-g -w2 -Wall" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="" #Default optimization O2 is used - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - # Default to C99 standard. - H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac diff --git a/config/irix6.x b/config/irix6.x deleted file mode 100644 index 8907a66..0000000 --- a/config/irix6.x +++ /dev/null @@ -1,178 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# -# See BlankForm in this directory for details. - -# Disable dependency tracking on IRIX unless the user specifically asks for -# it. -# IRIX's pmake confuses automake (as of version 1.9) if dependency tracking -# is enabled and it is not an in-place build. Simply disabling dependency -# tracking on IRIX is simpler to implement than detecting pmake, detecting -# when a build is not in-place, and then disabling dependency tracking. -if test -z "${enable_dependency_tracking}"; then - enable_dependency_tracking="no" -fi - -# Use SGI supplied C compiler by default. There is no ranlib -if test "X-" = "X-$CC"; then - CC='cc' - CC_BASENAME=cc - # use c99 compiler if available. - if `c99 -version >/dev/null 2>&1` ; then - CC='c99' - fi -fi -RANLIB=: - -# Compiler flags -case "X-$CC_BASENAME" in - X-gcc) - . $srcdir/config/gnu-flags - ;; - - *) - if [ "$CC_BASENAME" = "cc" ] || ($CC -version 2>&1 | grep -s "MIPSpro Compilers") 2>&1 > /dev/null; then - # use these flags if this is the SGI cc compiler or some compiler - # command that eventually uses the SGI cc compiler. - - # Check for old versions of the compiler that don't work right. - case "`$CC -version 2>&1 |head -1`" in - "Mongoose Compilers: Version 7.00") - echo " +---------------------------------------------------+" - echo " | You have an old version of cc (Mongoose Compilers |" - echo " | version 7.00). Please upgrade to MIPSpro version |" - echo " | 7.2.1.2m (patches are available from the SGI web |" - echo " | site). The 7.00 version may generate incorrect |" - echo " | code, especially when optimizations are enabled. |" - echo " +---------------------------------------------------+" - sleep 5 - ;; - esac - - # Always turn off these compiler warnings for the -64 compiler: - # 1174: function declared but not used - # 1196: __vfork() (this is an SGI config problem) - # 1209: constant expressions - # 1429: the `long long' type is not standard - # 1685: turn off warnings about turning off invalid warnings - # 3201: remark - parameter not referenced - #H5_CFLAGS="$H5_CFLAGS -woff 1174,1429,1209,1196,1685,3201" - H5_CFLAGS="$H5_CFLAGS -woff 1209,3201" - - # Always turn off these compiler warnings for the old compiler: - # 799: the `long long' type is not standard - # 803: turn off warnings about turning off invalid warnings - # 835: __vfork() (this is an SGI config problem) - #H5_CFLAGS="$H5_CFLAGS -woff 799,803,835" - - # Always turn off these loader warnings: - # (notice the peculiar syntax) - # 47: branch instructions that degrade performance on R4000 - # 84: a library is not used - # 85: duplicate definition preemption (from -lnsl) - # 134: duplicate weak definition preemption (from -lnsl) - H5_CFLAGS="$H5_CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134" - fi - - # Extra debugging flags - DEBUG_CFLAGS="-g -fullwarn" - DEBUG_CPPFLAGS= - - # Extra production flags - PROD_CFLAGS="-O -OPT:Olimit=0 -s" - PROD_CPPFLAGS= - - # Extra profiling flags - PROFILE_CFLAGS= - PROFILE_CPPFLAGS= - ;; -esac - -# The default Fortran 90 compiler - -if test "X-" = "X-$FC"; then - FC="f90" -fi - -if test "X-" = "X-$f9x_flags_set"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -mips4 -O -s" - DEBUG_FCFLAGS="-mips4 -O -s" - PROD_FCFLAGS="-mips4 -O -s" - PROFILE_FCFLAGS="-mips4 -O -s" - f9x_flags_set=yes -fi - -# The default C++ compiler - -# The default compiler is `MIPSpro CC' -if test -z "$CXX"; then - CXX=CC - CXX_BASENAME=CC -fi - -# Try native compiler flags -if test -z "$cxx_flags_set"; then - # -LANG:std required for std use; -ptused causes templates used to be - # instantiated - AM_CPPFLAGS="$AM_CPPFLAGS -LANG:std" - H5_CPPFLAGS="$H5_CPPFLAGS -ptused" - - # libCio is a default library, since libtool before 1.5 doesn't fully - # support C++ yet, default libraries must be explicitly specified. - # A new macro is used for this temporary and specific task so it - # won't polute the existing configuration - DEFAULT_LIBS="-lCio" - - DEBUG_CXXFLAGS=-g - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O -s" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS=-xpg - PROFILE_CPPFLAGS= - cxx_flags_set=yes -fi - -# Hard set flag to indicate that the 'unsigned long long' to floating-point -# value conversion are broken by the compilers (as of 4/27/04 - QAK) -hdf5_cv_ulong_to_fp_bottom_bit_accurate=${hdf5_cv_ulong_to_fp_bottom_bit_accurate='no'} - -# Set flags to avoid conversion between 'long double' and integers because of -# SGI's compiler problems. For both IRIX64 6.5 and IRIX 6.5, the compilers -# have the following problems, -# long double -> signed char : incorrect rounding -# long double -> unsigned char : incorrect rounding -# long double -> short : incorrect rounding -# long double -> unsigned short : incorrect rounding -# long double -> long or long long: incorrect value -# long double -> unsigned long or long long : incorrect value -# -# long or long long -> long double : correct value but incorrect bit pattern -# unsigned long or long long -> long double : correct value but incorrect bit pattern -# (1/5/05 - SLU) -hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate='no'} -hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate='no'} - -# Set flag to generate alternate code for H5VM_log2_gen, to avoid -# problems with the MIPSpro compiler 7.30 and IRIX64 6.5 (ie. other -# combinations might work, but haven't been tested) -# (9/15/06 - QAK) -hdf5_cv_bad_log2_code_generated=${hdf5_cv_bad_log2_code_generated='yes'} diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index c18c02d..465bfed 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -38,6 +38,9 @@ fi # Figure out PGI C compiler flags . $srcdir/config/pgi-flags +# Figure out CCE C compiler flags +. $srcdir/config/cce-flags + # Figure out Intel C compiler flags . $srcdir/config/intel-flags @@ -89,10 +92,13 @@ else esac fi -# Figure out PGI F90 compiler flags +# Figure out PGI FC compiler flags . $srcdir/config/pgi-fflags -# Figure out Intel F90 compiler flags +# Figure out CCE FC compiler flags +. $srcdir/config/cce-fflags + +# Figure out Intel FC compiler flags . $srcdir/config/intel-fflags case $FC_BASENAME in @@ -125,6 +131,10 @@ if test -z "$CXX"; then fi # compiler version strings + +# check if the compiler_version_info is already set +if test -z "$cc_version_info"; then + case $CC in # whatever matches *pgcc* will also match *gcc*, so this one must come first *pgcc*) @@ -153,7 +163,11 @@ case $CC in ;; esac +fi + # get fortran version info +# check if the compiler_version_info is already set +if test -z "$fc_version_info"; then case $FC in *gfortran*) fc_version_info=`$FC $FCFLAGS $H5_FCFLAGS --version 2>&1 |\ @@ -199,9 +213,11 @@ case $FC in echo "No match to get fc_version_info for $FC" ;; esac - +fi # get c++ version info +# check if the compiler_version_info is already set +if test -z "$cxx_version_info"; then case $CXX in *g++*) cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS --version 2>&1 |\ @@ -226,4 +242,4 @@ case $CXX in echo "No match to get cxx_version_info for $CXX" ;; esac - +fi diff --git a/config/lt_vers.am b/config/lt_vers.am index 41d7e81..3cb67a4 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -19,7 +19,7 @@ # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/config/nec-superux14.1 b/config/nec-superux14.1 deleted file mode 100644 index dc1a15d..0000000 --- a/config/nec-superux14.1 +++ /dev/null @@ -1,179 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# [ak] created for a nec sx6 running superux with native compilers -# [ak] -xint is neccessary because of src/H5FDmulti.c[H5Pset_fapl_multi] -# [ak] integer division of unsigned longs for _memb_addr - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. -#---------------------------------------------------------------------------- - - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC="sxc++ -Xa -size_t64 -xint -K c99" - CC_BASENAME=sxc++ -fi -# The default archiver is `sxar' -AR=${AR:-sxar} -RANLIB=${RANLIB:=":"} - -if test "X-" = "X-$CXX"; then - CXX="sxc++ -size_t64 -xint -Kexceptions" - CXX_BASENAME=sxc++ -fi - -if test "X-" = "X-$F9X"; then - FC="sxf90 -size_t64 -ew " - FC_BASENAME=sxf90 -fi - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROD_CPPFLAGS production version of the library. These -# usualy exclude symbolic debugging switches -# (like `-g') and include optimization switches -# (like `-O'). -# -# PROFILE_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-Cdebug -g -wall" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-Cnoopt" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-p" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-p" - PROFILE_CPPFLAGS= - ;; -esac - -case $CXX_BASENAME in - c++) - H5_CXXFLAGS="$H5_CXXFLAGS -Tlocal" - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS" - ;; -esac - -case $FC_BASENAME in - f90) - H5_FCFLAGS="$F9XFLAGS" - ;; - - *) - H5_FCFLAGS="$F9XFLAGS" - ;; -esac - -# Overriding Configure Tests -# -------------------------- -# -ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=0} -hdf5_cv_gettimeofday_tz=no -# I have to add the follwoing two lines when -K c99 was used -ac_cv_func_getrusage=no -ac_cv_func_gethostname=no -hdf5_cv_vsnprintf_works=no -hdf5_cv_printf_ll=l -hdf5_cv_system_scope_threads=no -hdf5_cv_sw_ldouble_to_integer_works=no -hdf5_cv_fp_to_ullong_right_maximum=no -hdf5_cv_fp_to_ullong_bottom_bit_works=yes -hdf5_cv_fp_to_ullong_right_maximum=no -hdf5_cv_ldouble_to_uint_work=no -hdf5_cv_ullong_to_fp_cast_works=yes -hdf5_cv_ullong_to_ldouble_precision_works=no -hdf5_cv_fp_to_integer_overflow_works=yes -hdf5_cv_fp_to_ullong_accurate=no -hdf5_cv_fp_to_ullong_right_maximum=no -CONFIGURE_LIBS=/usr/lib/libi90sxe.a - - diff --git a/config/sv1-cray b/config/sv1-cray deleted file mode 100644 index 1bae48d..0000000 --- a/config/sv1-cray +++ /dev/null @@ -1,199 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. - - -#---------------------------------------------------------------------------- -# Compiler flags. The CPPFLAGS values should not include package debug -# flags like `-DH5G_DEBUG' since these are added with the -# `--enable-debug' switch of configure. -#---------------------------------------------------------------------------- - - -# Choosing a C Compiler -# --------------------- -# -# The user should be able to specify the compiler by setting the CC -# environment variable to the name of the compiler and any switches it -# requires for proper operation. If CC is unset then this script may -# set it. If CC is unset by time this script completes then configure -# will try `gcc' and `cc' in that order (perhaps some others too). -# -# Note: Code later in this file may depend on the value of $CC_BASENAME -# in order to distinguish between different compilers when -# deciding which compiler command-line switches to use. This -# variable is set based on the incoming value of $CC and is only -# used within this file. - -if test "X-" = "X-$CC"; then - CC=cc - CC_BASENAME=cc -fi -# no need to use RANLIB -RANLIB=: - - -# C Compiler and Preprocessor Flags -# --------------------------------- -# -# Flags that end with `_CFLAGS' are always passed to the compiler. -# Flags that end with `_CPPFLAGS' are passed to the compiler when -# compiling but not when linking. -# -# DEBUG_CFLAGS Flags to pass to the compiler to create a -# DEBUG_CPPFLAGS library suitable for use with debugging -# tools. Usually this list will exclude -# optimization switches (like `-O') and include -# switches that turn on symbolic debugging -# support (like `-g'). -# -# PROD_CFLAGS Flags to pass to the compiler to create a -# PROD_CPPFLAGS production version of the library. These -# usualy exclude symbolic debugging switches -# (like `-g') and include optimization switches -# (like `-O'). -# -# PROFILE_CFLAGS Flags to pass to the compiler to create a -# PROFILE_CPPFLAGS library suitable for performance testing (like -# `-pg'). This may or may not include debugging -# or production flags. -# -# H5_CFLAGS Flags can be added to this variable which -# might already be partially initialized. These -# flags will always be passed to the compiler -# and should include switches to turn on full -# warnings. HDF5 attempts to be ANSI and Posix -# compliant and employ good programming -# practices resulting in few if any -# warnings. -# -# Warning flags do not have to be added to H5_CFLAGS -# variable if the compiler is the GNU gcc -# compiler or a descendent of gcc such as EGCS or PGCC. -# -# AM_CFLAGS Flags added directly into this variable will -# be propogated to the compiler wrapper scripts (h5cc, -# h5c++, et cetera) in addition to being used to compile -# the library. -# -# These flags should be set according to the compiler being used. -# There are two ways to check the compiler. You can try using `-v' or -# `--version' to see if the compiler will print a version string. You -# can use the value of $CC_BASENAME which is the base name of the -# first word in $CC (note that the value of CC may have changed -# above). - -case $CC_BASENAME in - gcc) - H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - cc) - H5_CFLAGS="$H5_CFLAGS" - DEBUG_CFLAGS="-g -h zero" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O2 -h scalar0 -h vector0 -h task1" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CFLAGS="$H5_CFLAGS -ansi" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac - - -# Overriding Configure Tests -# -------------------------- -# -# Values for overriding configuration tests when cross compiling. -# This includes compiling on some machines where the serial front end -# compiles for a parallel back end. - -# Set this to `yes' or `no' depending on whether the target is big -# endian or little endian. -#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Hard set the flag to indicate that converting denormalized floating-point -# values doesn't work. -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} - -# The default Fortran 90 compiler - -if test "X-" = "X-$FC"; then - FC=f90 -fi - -if test "X-" = "X-$f9x_flags_set"; then - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" - H5_FCFLAGS="$H5_FCFLAGS -dp" - DEBUG_FCFLAGS="-dp" - PROD_FCFLAGS="-dp" - PROFILE_FCFLAGS="-dp" - f9x_flags_set=yes -fi - -# The default C++ compiler - -if test -z "$CXX"; then - CXX="CC" - CXX_BASENAME=CC -fi - - -case $CXX_BASENAME in - g++) - H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CXXFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O3 -fomit-frame-pointer" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - H5_CXXFLAGS="$H5_CXXFLAGS -h instantiate=used" - DEBUG_CXXFLAGS="-g" - DEBUG_CPPFLAGS= - PROD_CXXFLAGS="-O" - PROD_CPPFLAGS= - PROFILE_CXXFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; -esac diff --git a/config/x86_64-redstorm-linux-gnu b/config/x86_64-redstorm-linux-gnu deleted file mode 100644 index 76f9711..0000000 --- a/config/x86_64-redstorm-linux-gnu +++ /dev/null @@ -1,164 +0,0 @@ -# -*- shell-script -*- -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the files COPYING and Copyright.html. COPYING can be found at the root -# of the source code distribution tree; Copyright.html can be found at the -# root level of an installed copy of the electronic HDF5 document set and -# is linked from the top-level documents page. It can also be found at -# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -# access to either file, you may request a copy from help@hdfgroup.org. - - -# This file is part of the HDF5 build script. It is processed shortly -# after configure starts and defines, among other things, flags for -# the various compile modes. -# -# See BlankForm in this directory for details. - -# This is for the ASCI RED STORM machine - -# Define RUNPARALLEL and RUNSERIAL if parallel mode is enabled or a parallel -# compiler is used. -if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then - RUNSERIAL=${RUNSERIAL:-"yod -sz 1"} - RUNPARALLEL=${RUNPARALLEL:-"yod -sz 3"} - # Disable stream-vfd option. It does not work in parallel mode. - enable_stream_vfd="${enable_stream_vfd:-no}" - # Turn off shared lib option. It does not work in parallel mode. - enable_shared="${enable_shared:-no}" -fi - -H5_CFLAGS="$H5_CFLAGS -DRED_STORM" - -# What compiler flags should be used for code development? -DEBUG_CFLAGS=-g -DEBUG_CPPFLAGS= - -# What compiler flags should be used for building a production -# library? -PROD_CFLAGS=-O -PROD_CPPFLAGS= - -# What compiler flags enable code profiling? -PROFILE_CFLAGS=-pg -PROFILE_CPPFLAGS= - -# Set this to the width required by printf() to print type `long -# long'. For instance, if the format would be `%lld' then set it to -# `ll' or if the format would be `%qd' set it to `q'. -hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_char=${ac_cv_type_char=yes} -ac_cv_sizeof_char=${ac_cv_sizeof_char='1'} -ac_cv_type_short=${ac_cv_type_short=yes} -ac_cv_sizeof_short=${ac_cv_sizeof_short='2'} -ac_cv_type_int=${ac_cv_type_int=yes} -ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} -ac_cv_type_long=${ac_cv_type_long=yes} -ac_cv_sizeof_long=${ac_cv_sizeof_long='8'} -ac_cv_type_float=${ac_cv_type_float=yes} -ac_cv_sizeof_float=${ac_cv_sizeof_float='4'} -ac_cv_type_double=${ac_cv_type_double=yes} -ac_cv_sizeof_double=${ac_cv_sizeof_double='8'} -ac_cv_type_long_double=${ac_cv_type_long_double=yes} -# no cache for long double which varies in size in different compilers. -# gcc defines it as 12 bytes but pgcc defines it as 8 bytes. -#ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double='8'} -ac_cv_type_long_long=${ac_cv_type_long_long=yes} -ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'} -ac_cv_type_size_t=${ac_cv_type_size_t=yes} -ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t='8'} -ac_cv_type_ssize_t=${ac_cv_type_ssize_t=yes} -ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t='8'} -ac_cv_type_off_t=${ac_cv_type_off_t=yes} -ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t='8'} - -# Hard set sizeof of the following types to 0 because they are not supported. -#ac_cv_type___int64=${ac_cv_type___int64=no} -#ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'} - -# Hard set malloc of zero bytes to no because it does not work. -hdf5_cv_malloc_works=${hdf5_cv_malloc_works='no'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int8_t=${ac_cv_type_int8_t=yes} -ac_cv_type_int16_t=${ac_cv_type_int16_t=yes} -ac_cv_type_int32_t=${ac_cv_type_int32_t=yes} -ac_cv_type_int64_t=${ac_cv_type_int64_t=yes} -ac_cv_type_uint8_t=${ac_cv_type_uint8_t=yes} -ac_cv_type_uint16_t=${ac_cv_type_uint16_t=yes} -ac_cv_type_uint32_t=${ac_cv_type_uint32_t=yes} -ac_cv_type_uint64_t=${ac_cv_type_uint64_t=yes} -ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='1'} -ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='2'} -ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='4'} -ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='8'} -ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='1'} -ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='2'} -ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='4'} -ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='8'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int_least8_t=${ac_cv_type_int_least8_t=yes} -ac_cv_type_int_least16_t=${ac_cv_type_int_least16_t=yes} -ac_cv_type_int_least32_t=${ac_cv_type_int_least32_t=yes} -ac_cv_type_int_least64_t=${ac_cv_type_int_least64_t=yes} -ac_cv_type_uint_least8_t=${ac_cv_type_uint_least8_t=yes} -ac_cv_type_uint_least16_t=${ac_cv_type_uint_least16_t=yes} -ac_cv_type_uint_least32_t=${ac_cv_type_uint_least32_t=yes} -ac_cv_type_uint_least64_t=${ac_cv_type_uint_least64_t=yes} -ac_cv_sizeof_int_least8_t=${ac_cv_sizeof_int_least8_t='1'} -ac_cv_sizeof_int_least16_t=${ac_cv_sizeof_int_least16_t='2'} -ac_cv_sizeof_int_least32_t=${ac_cv_sizeof_int_least32_t='4'} -ac_cv_sizeof_int_least64_t=${ac_cv_sizeof_int_least64_t='8'} -ac_cv_sizeof_uint_least8_t=${ac_cv_sizeof_uint_least8_t='1'} -ac_cv_sizeof_uint_least16_t=${ac_cv_sizeof_uint_least16_t='2'} -ac_cv_sizeof_uint_least32_t=${ac_cv_sizeof_uint_least32_t='4'} -ac_cv_sizeof_uint_least64_t=${ac_cv_sizeof_uint_least64_t='8'} - -# Cache the sizeof of the following types to save configure time. -# These are verified in test/tconfig in case they change. -ac_cv_type_int_fast8_t=${ac_cv_type_int_fast8_t=yes} -ac_cv_type_int_fast16_t=${ac_cv_type_int_fast16_t=yes} -ac_cv_type_int_fast32_t=${ac_cv_type_int_fast32_t=yes} -ac_cv_type_int_fast64_t=${ac_cv_type_int_fast64_t=yes} -ac_cv_type_uint_fast8_t=${ac_cv_type_uint_fast8_t=yes} -ac_cv_type_uint_fast16_t=${ac_cv_type_uint_fast16_t=yes} -ac_cv_type_uint_fast32_t=${ac_cv_type_uint_fast32_t=yes} -ac_cv_type_uint_fast64_t=${ac_cv_type_uint_fast64_t=yes} -ac_cv_sizeof_int_fast8_t=${ac_cv_sizeof_int_fast8_t='1'} -ac_cv_sizeof_int_fast16_t=${ac_cv_sizeof_int_fast16_t='8'} -ac_cv_sizeof_int_fast32_t=${ac_cv_sizeof_int_fast32_t='8'} -ac_cv_sizeof_int_fast64_t=${ac_cv_sizeof_int_fast64_t='8'} -ac_cv_sizeof_uint_fast8_t=${ac_cv_sizeof_uint_fast8_t='1'} -ac_cv_sizeof_uint_fast16_t=${ac_cv_sizeof_uint_fast16_t='8'} -ac_cv_sizeof_uint_fast32_t=${ac_cv_sizeof_uint_fast32_t='8'} -ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t='8'} - -hdf5_cv_system_scope_threads=${hdf5_cv_system_scope_threads="no"} - -# Hard set MPI_File_set_size() working for files over 2GB to yes -hdf5_cv_mpi_file_set_size_big=${hdf5_cv_mpi_file_set_size_big='yes'} - -# Hard set variables for v1.7 and higher. -# Set gettimeofday_tz to yes. -hdf5_cv_gettimeofday_tz=${hdf5_cv_gettimeofday_tz='yes'} -hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'} -hdf5_cv_fp_to_ullong_bottom_bit_works=${hdf5_cv_fp_to_ullong_bottom_bit_works='no'} -hdf5_cv_fp_to_ullong_right_maximum=${hdf5_cv_fp_to_ullong_right_maximum='yes'} -hdf5_cv_ldouble_to_uint_works=${hdf5_cv_ldouble_to_uint_works='yes'} -hdf5_cv_sw_ldouble_to_integer_works=${hdf5_cv_sw_ldouble_to_integer_works='yes'} -hdf5_cv_sw_ulong_to_fp_bottom_bit_works=${hdf5_cv_sw_ulong_to_fp_bottom_bit_works='no'} -hdf5_cv_ullong_to_fp_cast_works=${hdf5_cv_ullong_to_fp_cast_works='yes'} -hdf5_cv_ullong_to_ldouble_precision_works=${hdf5_cv_ullong_to_ldouble_precision_works='yes'} -hdf5_cv_vsnprintf_works=${hdf5_cv_vsnprintf_works='yes'} -hdf5_cv_fp_to_integer_overflow_works=${hdf5_cv_fp_to_integer_overflow_works='yes'} diff --git a/configure b/configure index 9c37880..661827e 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.216-swmr0. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.217-swmr0. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.216-swmr0' -PACKAGE_STRING='HDF5 1.9.216-swmr0' +PACKAGE_VERSION='1.9.217-swmr0' +PACKAGE_STRING='HDF5 1.9.217-swmr0' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -640,7 +640,6 @@ LTLIBOBJS LIBOBJS HAVE_SHARED_CONDITIONAL_FALSE HAVE_SHARED_CONDITIONAL_TRUE -SETX SEARCH BUILD_HDF5_HL_CONDITIONAL_FALSE BUILD_HDF5_HL_CONDITIONAL_TRUE @@ -655,7 +654,6 @@ DEFAULT_API_VERSION DEPRECATED_SYMBOLS BUILD_ALL_CONDITIONAL_FALSE BUILD_ALL_CONDITIONAL_TRUE -DYNAMIC_DIRS ROOT CXX_VERSION FC_VERSION @@ -674,7 +672,6 @@ CLEARFILEBUF INSTRUMENT_LIBRARY TRACE_API DEBUG_PKG -H5_LONE_COLON HAVE_PTHREAD BUILD_SHARED_SZIP_CONDITIONAL_FALSE BUILD_SHARED_SZIP_CONDITIONAL_TRUE @@ -694,6 +691,8 @@ DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR +DLLTOOL +OBJDUMP LN_S NM ac_ct_DUMPBIN @@ -704,12 +703,6 @@ EGREP GREP SED LIBTOOL -OBJDUMP -DLLTOOL -AS -CXX_SHARED_CONDITIONAL_FALSE -CXX_SHARED_CONDITIONAL_TRUE -H5_CXX_SHARED FORTRAN_SHARED_CONDITIONAL_FALSE FORTRAN_SHARED_CONDITIONAL_TRUE H5_FORTRAN_SHARED @@ -918,7 +911,6 @@ with_mpe enable_direct_vfd with_default_plugindir enable_dconv_exception -enable_dconv_accuracy enable_build_all enable_deprecated_symbols with_default_api_version @@ -1480,7 +1472,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.216-swmr0 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.217-swmr0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1550,7 +1542,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.216-swmr0:";; + short | recursive ) echo "Configuration of HDF5 1.9.217-swmr0:";; esac cat <<\_ACEOF @@ -1616,8 +1608,6 @@ Optional Features: --enable-dconv-exception if exception handling functions is checked during data conversions [default=yes] - --enable-dconv-accuracy if data accuracy is guaranteed during data - conversions [default=yes] --enable-build-all Build helper programs that only developers should need [default=no] --enable-deprecated-symbols @@ -1741,7 +1731,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.216-swmr0 +HDF5 configure 1.9.217-swmr0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2678,7 +2668,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.216-swmr0, which was +It was created by HDF5 $as_me 1.9.217-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3549,7 +3539,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.216-swmr0' + VERSION='1.9.217-swmr0' cat >>confdefs.h <<_ACEOF @@ -3830,7 +3820,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -## Make sure flags are set to something (otherwise macros may set them later). +## Make sure flags are initialized. AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -3851,12 +3841,6 @@ saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" -## Different compilers may need default libraries. They are specified in -## the config/* files, so we put this statement here so that it'll be -## set by the code which follows... -## -DEFAULT_LIBS="" - ## Support F9X variable to define Fortran compiler if FC variable is ## not used. This should be deprecated in the future. if test "x" = "x$FC"; then @@ -3915,15 +3899,9 @@ $as_echo "done" >&6; } ## ---------------------------------------------------------------------- ## Some platforms have broken basename, and/or xargs programs. Check ## that it actually does what it's supposed to do. Catch this early -## since configure relies upon them heavily and there's no use continuing -## if it's broken. +## since configure and scripts relies upon them heavily and there's +## no use continuing if it's broken. ## - -## Avoid depending upon Character Ranges. -## These are defined by autoconf. -## as_cr_letters='abcdefghijklmnopqrstuvwxyz' -## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename works" >&5 $as_echo_n "checking if basename works... " >&6; } BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`" @@ -3934,6 +3912,7 @@ else $as_echo "yes" >&6; } fi +## xargs basename used in configure to get the CC_BASENAME value { $as_echo "$as_me:${as_lineno-$LINENO}: checking if xargs works" >&5 $as_echo_n "checking if xargs works... " >&6; } XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`" @@ -3989,12 +3968,6 @@ case $host_os in freebsd*) host_os_novers=freebsd ;; - irix5.*) - host_os_novers=irix5.x - ;; - irix6.*) - host_os_novers=irix6.x - ;; osf4.*) host_os_novers=osf4.x ;; @@ -7602,6 +7575,7 @@ fi ## ---------------------------------------------------------------------- ## Set up ${TR} which is used to process DEBUG_PKG. + # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -7765,406 +7739,387 @@ fi ## ---------------------------------------------------------------------- -## Disable C++ shared libraries if +DD64 flag is detected. -## +## Create libtool. If shared/static libraries are going to be enabled +## or disabled, it should happen before these macros. -H5_CXX_SHARED="no" -if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if shared C++ libraries are supported" >&5 -$as_echo_n "checking if shared C++ libraries are supported... " >&6; } - H5_CXX_SHARED="yes" - ## Disable C++ shared libraries if DD64 flag is being used. +## ---------------------------------------------------------------------- +## dlopen - This will use an improved version of libtool +## win32-dll - This will build clean dlls on win32 platforms. +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac - if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then - H5_CXX_SHARED="no" - CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." - fi - ## Report results of check(s) - if test "X${H5_CXX_SHARED}" = "Xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CHECK_WARN" >&5 -$as_echo "$as_me: WARNING: $CHECK_WARN" >&2;} - if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling shared C++ libraries." >&5 -$as_echo "$as_me: WARNING: Disabling shared C++ libraries." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To override this behavior, please use --enable-unsupported configure option." >&5 -$as_echo "$as_me: WARNING: To override this behavior, please use --enable-unsupported configure option." >&2;} - if test "X${enable_static}" = "Xno"; then - as_fn_error $? "both static and shared C++ libraries are disabled" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&5 -$as_echo "$as_me: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&2;} - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi -fi +macro_version='2.4.2' +macro_revision='1.3337' - if test "X$H5_CXX_SHARED" = "Xyes"; then - CXX_SHARED_CONDITIONAL_TRUE= - CXX_SHARED_CONDITIONAL_FALSE='#' -else - CXX_SHARED_CONDITIONAL_TRUE='#' - CXX_SHARED_CONDITIONAL_FALSE= -fi -## ---------------------------------------------------------------------- -## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect -## these versions and add option "-Mx,28,0x8" to the compiler to avoid -## the problem if optimization is enabled. -## -if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then - echo 'adding compiler flag to avoid optimization problem in pgcc' - CC="${CC-cc} -Mx,28,0x8" -fi -## ---------------------------------------------------------------------- -## Shared libraries are not currently supported under Cygwin, so configure -## disables them unless --enable-unsupported has been supplied by the user. -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - case "`uname`" in - CYGWIN*) - if test "X${enable_shared}" = "Xyes"; then - echo ' warning: shared libraries are not supported on Cygwin!' - echo ' disabling shared libraries' - echo ' use --enable-unsupported to override this warning and keep shared libraries enabled' - fi - enable_shared="no" - ;; - esac -fi -## ---------------------------------------------------------------------- -## Windows won't create DLLs without the following macro. -## -enable_win32_dll=yes -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' fi - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break done -IFS=$as_save_IFS + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_path_SED=$SED fi - fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break done -IFS=$as_save_IFS + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_path_GREP=$GREP fi - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break done -IFS=$as_save_IFS + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_path_EGREP=$EGREP fi - + fi fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break done -IFS=$as_save_IFS + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else - OBJDUMP="$ac_cv_prog_OBJDUMP" + ac_cv_path_FGREP=$FGREP fi - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - -## ---------------------------------------------------------------------- -## Create libtool. If shared/static libraries are going to be enabled -## or disabled, it should happen before these macros. - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" -macro_version='2.4.2' -macro_revision='1.3337' +test -z "$GREP" && GREP=grep @@ -8177,63 +8132,115 @@ macro_revision='1.3337' -ltmain="$ac_aux_dir/ltmain.sh" -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' + with_gnu_ld=no fi -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; +LD="$lt_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld @@ -8243,412 +8250,525 @@ esac - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi done + IFS="$lt_save_ifs" done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED + : ${lt_cv_path_NM=no} fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done done IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done done IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } else - ac_cv_path_EGREP=$EGREP + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" + test -n "$ac_ct_DUMPBIN" && break +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_path_FGREP=$FGREP + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" -test -z "$GREP" && GREP=grep + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +fi +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset else - with_gnu_ld=no + lt_unset=false fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + fi -if ${lt_cv_path_LD+:} false; then : + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac @@ -8658,87 +8778,27 @@ with_gnu_ld=$lt_cv_prog_gnu_ld -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi done done @@ -8746,32 +8806,28 @@ IFS=$as_save_IFS fi fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$DUMPBIN" && break - done fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -8780,7 +8836,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -8790,21 +8846,17 @@ IFS=$as_save_IFS fi fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) @@ -8812,259 +8864,247 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - DUMPBIN=$ac_ct_DUMPBIN + OBJDUMP=$ac_ct_OBJDUMP fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" fi - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi +test -z "$OBJDUMP" && OBJDUMP=objdump - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else - i=0 - teststring="ABCD" + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; +beos*) + lt_cv_deplibs_check_method=pass_all + ;; - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac + ;; -fi +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac @@ -9074,111 +9114,150 @@ esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -fi -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' + lt_cv_sharedlib_from_linklib_cmd='unknown' + case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; esac - +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO @@ -9187,15 +9266,17 @@ esac if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9204,7 +9285,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9214,28 +9295,32 @@ IFS=$as_save_IFS fi fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9244,7 +9329,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" + ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9254,17 +9339,21 @@ IFS=$as_save_IFS fi fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" else case $cross_compiling:$ac_tool_warned in yes:) @@ -9272,313 +9361,139 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - OBJDUMP=$ac_ct_OBJDUMP + AR=$ac_ct_AR fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" fi -test -z "$OBJDUMP" && OBJDUMP=objdump +: ${AR=ar} +: ${AR_FLAGS=cru} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; -beos*) - lt_cv_deplibs_check_method=pass_all - ;; -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; +done + done +IFS=$as_save_IFS -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9587,7 +9502,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" + ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9597,17 +9512,17 @@ IFS=$as_save_IFS fi fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" + if test "x$ac_ct_STRIP" = x; then + STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -9615,52 +9530,13 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - DLLTOOL=$ac_ct_DLLTOOL + STRIP=$ac_ct_STRIP fi else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - + STRIP="$ac_cv_prog_STRIP" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO +test -z "$STRIP" && STRIP=: @@ -9668,17 +9544,15 @@ test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9687,7 +9561,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9697,32 +9571,28 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$AR" && break - done fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9731,7 +9601,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" + ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9741,21 +9611,17 @@ IFS=$as_save_IFS fi fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -9763,82 +9629,50 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - AR=$ac_ct_AR + RANLIB=$ac_ct_RANLIB fi +else + RANLIB="$ac_cv_prog_RANLIB" fi -: ${AR=ar} -: ${AR_FLAGS=cru} +test -z "$RANLIB" && RANLIB=: +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi @@ -9846,282 +9680,46 @@ fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi -test -z "$STRIP" && STRIP=: -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi -test -z "$RANLIB" && RANLIB=: -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac +# Allow CC to be a program name with arguments. +compiler=$CC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -11702,6 +11300,8 @@ enable_dlopen=yes + enable_win32_dll=no + # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : @@ -21826,2632 +21426,1499 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -## ---------------------------------------------------------------------- -## Check if we should install only statically linked executables. -## This check needs to occur after libtool is initialized because -## we check a libtool cache value and may issue a warning based -## on its result. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should install only statically linked executables" >&5 -$as_echo_n "checking if we should install only statically linked executables... " >&6; } -# Check whether --enable-static_exec was given. -if test "${enable_static_exec+set}" = set; then : - enableval=$enable_static_exec; STATIC_EXEC=$enableval -fi - - -if test "X$STATIC_EXEC" = "Xyes"; then - echo "yes" - ## Issue a warning if -static flag is not supported. - if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then - echo " warning: -static flag not supported on this system; executable won't statically link shared system libraries." - LT_STATIC_EXEC="" - else - LT_STATIC_EXEC="-all-static" - fi -else - echo "no" - LT_STATIC_EXEC="" -fi - if test "X$LT_STATIC_EXEC" = X; then - USE_PLUGINS_CONDITIONAL_TRUE= - USE_PLUGINS_CONDITIONAL_FALSE='#' -else - USE_PLUGINS_CONDITIONAL_TRUE='#' - USE_PLUGINS_CONDITIONAL_FALSE= -fi - - - - -## Fix up the INSTALL macro if it's a relative path. We want the -## full-path to the binary instead. -case "$INSTALL" in - *install-sh*) - INSTALL='\${top_srcdir}/bin/install-sh -c' - ;; -esac - -## ---------------------------------------------------------------------- -## Some users have reported problems with libtool's use of '-Wl,-rpath' to -## link shared libraries in nondefault directories. Allow users to -## disable embedding the rpath information in the executables and to -## instead solely rely on the information in LD_LIBRARY_PATH. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -Wl,-rpath should be used to link shared libs in nondefault directories" >&5 -$as_echo_n "checking if -Wl,-rpath should be used to link shared libs in nondefault directories... " >&6; } -# Check whether --enable-sharedlib-rpath was given. -if test "${enable_sharedlib_rpath+set}" = set; then : - enableval=$enable_sharedlib_rpath; RPATH=$enableval -fi - - -case "X-$RPATH" in - X-no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - runpath_var= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_into_libs=no - ;; - X-|X-yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 -$as_echo "error" >&6; } - as_fn_error $? "\'$enableval\' is not a valid rpath type" "$LINENO" 5 - ;; -esac - -## ---------------------------------------------------------------------- -## Sometimes makes think the `.PATH:' appearing before the first rule -## with an action should override the `all' default target. So we have -## to decide what the proper syntax is. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how make searches directories" >&5 -$as_echo_n "checking how make searches directories... " >&6; } -while true; do #for break - ## The most common method is `VPATH=DIR1 DIR2 ...' - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1 DIR2 ..." >&5 -$as_echo "VPATH=DIR1 DIR2 ..." >&6; } - break - fi - - ## The second most common method is like above except with the - ## directories separated by colons. - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=':' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1:DIR2:..." >&5 -$as_echo "VPATH=DIR1:DIR2:..." >&6; } - break - fi - - ## pmake uses the construct `.PATH: DIR1 DIR2 - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='.PATH: ' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: .PATH: DIR1 DIR2 ..." >&5 -$as_echo ".PATH: DIR1 DIR2 ..." >&6; } - break - fi - - ## No way for make to search directories - SEARCH_RULE='## SEARCH DISABLED: ' - SEARCH_SEP=' ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: it doesn't" >&5 -$as_echo "it doesn't" >&6; } - if test ! -f configure; then - as_fn_error $? "${MAKE-make} requires the build and source directories to be the same" "$LINENO" 5 - fi - break -done -rm maketest - -## ---------------------------------------------------------------------- -## pmake will throw an error if variables are undefined in a Makefile. -## These errors can be changed to warnings using the -V flag. -## - AM_MAKEFLAGS="" - -## Don't run test if MAKE is defined but is the empty string -if test -n "${MAKE-make}"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make will build with undefined variables" >&5 -$as_echo_n "checking whether make will build with undefined variables... " >&6; } - - cat >maketest </dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, setting -V flag" >&5 -$as_echo "no, setting -V flag" >&6; } - AM_MAKEFLAGS="\-V" - fi - - rm maketest -fi - -## ---------------------------------------------------------------------- -## Production flags? Save the value in $CONFIG_MODE so we have it for -## the record. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for production mode" >&5 -$as_echo_n "checking for production mode... " >&6; } -# Check whether --enable-production was given. -if test "${enable_production+set}" = set; then : - enableval=$enable_production; -fi - - -case "X-$enable_production" in - X-yes) - enable_production="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: production" >&5 -$as_echo "production" >&6; } - CONFIG_MODE=production - H5_CFLAGS="$H5_CFLAGS $PROD_CFLAGS" - H5_CPPFLAGS="$H5_CPPFLAGS $PROD_CPPFLAGS" - H5_CXXFLAGS="$H5_CXXFLAGS $PROD_CXXFLAGS" - H5_FCFLAGS="$H5_FCFLAGS $PROD_FCFLAGS" - ;; - X-|X-no) - enable_production="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: development" >&5 -$as_echo "development" >&6; } - CONFIG_MODE=development - H5_CFLAGS="$H5_CFLAGS $DEBUG_CFLAGS" - H5_CPPFLAGS="$H5_CPPFLAGS $DEBUG_CPPFLAGS" - H5_CXXFLAGS="$H5_CXXFLAGS $DEBUG_CXXFLAGS" - H5_FCFLAGS="$H5_FCFLAGS $DEBUG_FCFLAGS" - ;; - X-pg|X-profile) - enable_production="profile" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5 -$as_echo "profile" >&6; } - CONFIG_MODE=profile - H5_CFLAGS="$H5_CFLAGS $PROFILE_CFLAGS" - H5_CPPFLAGS="$H5_CPPFLAGS $PROFILE_CPPFLAGS" - H5_CXXFLAGS="$H5_CXXFLAGS $PROFILE_CXXFLAGS" - H5_FCFLAGS="$H5_FCFLAGS $PROFILE_FCFLAGS" - ;; - *) - enable_production="user-defined" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: user-defined" >&5 -$as_echo "user-defined" >&6; } - CONFIG_MODE="$enableval" - ;; -esac - -## ---------------------------------------------------------------------- -## Check for system libraries. "dl" stands for dynamically loaded library -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 -$as_echo_n "checking for ceil in -lm... " >&6; } -if ${ac_cv_lib_m_ceil+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ceil (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return ceil (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_m_ceil=yes -else - ac_cv_lib_m_ceil=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_ceil" >&5 -$as_echo "$ac_cv_lib_m_ceil" >&6; } -if test "x$ac_cv_lib_m_ceil" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - - LIBS="-ldl $LIBS" - -fi - - -if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then - ## ...for Solaris - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if ${ac_cv_lib_socket_socket+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_socket=yes -else - ac_cv_lib_socket_socket=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test "x$ac_cv_lib_socket_socket" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_int in -lnsl" >&5 -$as_echo_n "checking for xdr_int in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_xdr_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xdr_int (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return xdr_int (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_xdr_int=yes -else - ac_cv_lib_nsl_xdr_int=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_xdr_int" >&5 -$as_echo "$ac_cv_lib_nsl_xdr_int" >&6; } -if test "x$ac_cv_lib_nsl_xdr_int" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -fi - -fi - - -## ---------------------------------------------------------------------- -## Check for system header files. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - -## Unix -for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -for ac_header in sys/socket.h sys/types.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -for ac_header in stddef.h setjmp.h features.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -for ac_header in dirent.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default" -if test "x$ac_cv_header_dirent_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DIRENT_H 1 -_ACEOF - -fi - -done - -for ac_header in stdint.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" -if test "x$ac_cv_header_stdint_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STDINT_H 1 -_ACEOF - C9x=yes -fi - -done - - -## Darwin -for ac_header in mach/mach_time.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" -if test "x$ac_cv_header_mach_mach_time_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MACH_MACH_TIME_H 1 -_ACEOF - -fi - -done - -## Also need to detect Darwin for pubconf -case $host_os in - darwin*) - -$as_echo "#define HAVE_DARWIN 1" >>confdefs.h - - ;; -esac - -## Windows -case "`uname`" in - CYGWIN*) - for ac_header in io.h sys/timeb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - ;; - MINGW*) - for ac_header in io.h winsock2.h sys/timeb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lws2_32" >&5 -$as_echo_n "checking for main in -lws2_32... " >&6; } -if ${ac_cv_lib_ws2_32_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lws2_32 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ws2_32_main=yes -else - ac_cv_lib_ws2_32_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ws2_32_main" >&5 -$as_echo "$ac_cv_lib_ws2_32_main" >&6; } -if test "x$ac_cv_lib_ws2_32_main" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBWS2_32 1 -_ACEOF - - LIBS="-lws2_32 $LIBS" - -fi -ac_cv_lib_ws2_32=ac_cv_lib_ws2_32_main - - ;; - *) - for ac_header in io.h winsock2.h sys/timeb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - ;; -esac - -case "$host" in - alpha*-dec*-osf*) - ## The and are needed on the DEC - ## Alpha to turn off UAC fixing. We do *not* attempt to - ## locate these files on other systems because there are too - ## many problems with including them. - for ac_header in sys/sysinfo.h sys/proc.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - ;; - mips*-sgi*-irix*) - ## The is needed on the SGI machines to turn off - ## denormalized floating-point values going to zero. We do *not* - ## attempt to locate these files on other systems because there - ## may be problems with including them. - for ac_header in sys/fpu.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/fpu.h" "ac_cv_header_sys_fpu_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_fpu_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_FPU_H 1 -_ACEOF - -fi - -done - - for ac_func in get_fpc_csr -do : - ac_fn_c_check_func "$LINENO" "get_fpc_csr" "ac_cv_func_get_fpc_csr" -if test "x$ac_cv_func_get_fpc_csr" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GET_FPC_CSR 1 -_ACEOF - -fi -done - - ;; -esac - -## ---------------------------------------------------------------------- -## Some platforms require that all symbols are resolved when a library -## is linked. We can use the -no-undefined flag to tell libtool that -## it will be able to build shared libraries on these architectures, -## as it will not do so by default. -## -if test "X${enable_shared}" = "Xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool needs -no-undefined flag to build shared libraries" >&5 -$as_echo_n "checking if libtool needs -no-undefined flag to build shared libraries... " >&6; } - case "`uname`" in - CYGWIN*|MINGW*|AIX*) - ## Add in the -no-undefined flag to LDFLAGS for libtool. - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - H5_LDFLAGS="$H5_LDFLAGS -no-undefined" - ;; - *) - ## Don't add in anything. - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - -## ---------------------------------------------------------------------- -## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines -## that might need to be set for largefile support to behave -## correctly. This macro is defined in acsite.m4 and overrides -## the version provided by Autoconf (as of v2.65). The custom -## macro additionally adds the appropriate defines to AM_CPPFLAGS -## so that later configure checks have them visible. - -## Check for _FILE_OFFSET_BITS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF - - AM_CPPFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits $AM_CPPFLAGS";; -esac -rm -rf conftest* - -## Check for _LARGE_FILES -if test "$ac_cv_sys_file_offset_bits" = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF - - AM_CPPFLAGS="-D_LARGE_FILES=$ac_cv_sys_large_files $AM_CPPFLAGS";; -esac -rm -rf conftest* -fi - -## ---------------------------------------------------------------------- -## Add necessary defines for Linux Systems. -## -case "$host_cpu-$host_vendor-$host_os" in - *linux*) - ## Make available various LFS-related routines using the following - ## _LARGEFILE*_SOURCE macros. - AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" - - ## Add POSIX support on Linux systems, so defines - ## __USE_POSIX, which is required to get the prototype for fdopen - ## defined correctly in . - ## - ## This flag was removed from h5cc as of 2009-10-17 when it was found - ## that the flag broke compiling netCDF-4 code with h5cc, but kept in - ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen - ## is used only by H5_debug_mask which is used only when debugging in - ## H5_init_library (all in H5.c). When the flag was removed this was - ## the only compile failure noted. - ## - ## This was originally defined as _POSIX_SOURCE which was updated to - ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX - ## functionality so clock_gettime and CLOCK_MONOTONIC are defined - ## correctly. This was later updated to 200112L so that - ## posix_memalign() is visible for the direct VFD code on Linux - ## systems. - ## - ## POSIX feature information can be found in the gcc manual at: - ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS" - - ## Need to add this so that O_DIRECT is visible for the direct - ## VFD on Linux systems. - H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS" - - ## Also add BSD support on Linux systems, so defines - ## __USE_BSD, which is required to get the prototype for strdup - ## defined correctly in and snprintf & vsnprintf defined - ## correctly in - ## Linking to the bsd-compat library is required as per the gcc manual: - ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - ## however, we do not do this since it breaks the big test on some - ## older platforms. - H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS" - ;; -esac - -## Need to add the AM_ and H5_ into CFLAGS/CPPFLAGS to make them visible -## for configure checks. -## Note: Both will be restored by the end of configure. -CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" -CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -off64_t n = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - for ac_func in lseek64 fseeko64 ftello64 ftruncate64 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&5 -$as_echo "skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -for ac_func in fseeko ftello -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct stat64 sb; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - for ac_func in stat64 fstat64 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for stat64() and fstat64()" >&5 -$as_echo "skipping test for stat64() and fstat64()" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -## ---------------------------------------------------------------------- -## Data types and their sizes. -## -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned long -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define ssize_t long -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t long -_ACEOF - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 -$as_echo_n "checking size of char... " >&6; } -if ${ac_cv_sizeof_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 -$as_echo "$ac_cv_sizeof_char" >&6; } - - + ac_config_commands="$ac_config_commands libtool" -cat >>confdefs.h <<_ACEOF -#define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : +# Only expand once: + + + +## ---------------------------------------------------------------------- +## Check if we should install only statically linked executables. +## This check needs to occur after libtool is initialized because +## we check a libtool cache value and may issue a warning based +## on its result. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should install only statically linked executables" >&5 +$as_echo_n "checking if we should install only statically linked executables... " >&6; } +# Check whether --enable-static_exec was given. +if test "${enable_static_exec+set}" = set; then : + enableval=$enable_static_exec; STATIC_EXEC=$enableval +fi + + +if test "X$STATIC_EXEC" = "Xyes"; then + echo "yes" + ## Issue a warning if -static flag is not supported. + if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then + echo " warning: -static flag not supported on this system; executable won't statically link shared system libraries." + LT_STATIC_EXEC="" + else + LT_STATIC_EXEC="-all-static" + fi else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi + echo "no" + LT_STATIC_EXEC="" +fi + if test "X$LT_STATIC_EXEC" = X; then + USE_PLUGINS_CONDITIONAL_TRUE= + USE_PLUGINS_CONDITIONAL_FALSE='#' +else + USE_PLUGINS_CONDITIONAL_TRUE='#' + USE_PLUGINS_CONDITIONAL_FALSE= fi + + + +## Fix up the INSTALL macro if it's a relative path. We want the +## full-path to the binary instead. +case "$INSTALL" in + *install-sh*) + INSTALL='\${top_srcdir}/bin/install-sh -c' + ;; +esac + +## ---------------------------------------------------------------------- +## Some users have reported problems with libtool's use of '-Wl,-rpath' to +## link shared libraries in nondefault directories. Allow users to +## disable embedding the rpath information in the executables and to +## instead solely rely on the information in LD_LIBRARY_PATH. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -Wl,-rpath should be used to link shared libs in nondefault directories" >&5 +$as_echo_n "checking if -Wl,-rpath should be used to link shared libs in nondefault directories... " >&6; } +# Check whether --enable-sharedlib-rpath was given. +if test "${enable_sharedlib_rpath+set}" = set; then : + enableval=$enable_sharedlib_rpath; RPATH=$enableval fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } +case "X-$RPATH" in + X-no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + runpath_var= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_into_libs=no + ;; + X-|X-yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 +$as_echo "error" >&6; } + as_fn_error $? "\'$enableval\' is not a valid rpath type" "$LINENO" 5 + ;; +esac -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF +## ---------------------------------------------------------------------- +## pmake will throw an error if variables are undefined in a Makefile. +## These errors can be changed to warnings using the -V flag. +## + AM_MAKEFLAGS="" +## Don't run test if MAKE is defined but is the empty string +if test -n "${MAKE-make}"; then -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make will build with undefined variables" >&5 +$as_echo_n "checking whether make will build with undefined variables... " >&6; } -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi + cat >maketest <&5 -$as_echo "$ac_cv_sizeof_int" >&6; } + if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, setting -V flag" >&5 +$as_echo "no, setting -V flag" >&6; } + AM_MAKEFLAGS="\-V" + fi + rm maketest +fi +## ---------------------------------------------------------------------- +## Production flags? Save the value in $CONFIG_MODE so we have it for +## the record. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for production mode" >&5 +$as_echo_n "checking for production mode... " >&6; } +# Check whether --enable-production was given. +if test "${enable_production+set}" = set; then : + enableval=$enable_production; +fi -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF +case "X-$enable_production" in + X-yes) + enable_production="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: production" >&5 +$as_echo "production" >&6; } + CONFIG_MODE=production + H5_CFLAGS="$H5_CFLAGS $PROD_CFLAGS" + H5_CPPFLAGS="$H5_CPPFLAGS $PROD_CPPFLAGS" + H5_CXXFLAGS="$H5_CXXFLAGS $PROD_CXXFLAGS" + H5_FCFLAGS="$H5_FCFLAGS $PROD_FCFLAGS" + ;; + X-|X-no) + enable_production="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: development" >&5 +$as_echo "development" >&6; } + CONFIG_MODE=development + H5_CFLAGS="$H5_CFLAGS $DEBUG_CFLAGS" + H5_CPPFLAGS="$H5_CPPFLAGS $DEBUG_CPPFLAGS" + H5_CXXFLAGS="$H5_CXXFLAGS $DEBUG_CXXFLAGS" + H5_FCFLAGS="$H5_FCFLAGS $DEBUG_FCFLAGS" + ;; + X-pg|X-profile) + enable_production="profile" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5 +$as_echo "profile" >&6; } + CONFIG_MODE=profile + H5_CFLAGS="$H5_CFLAGS $PROFILE_CFLAGS" + H5_CPPFLAGS="$H5_CPPFLAGS $PROFILE_CPPFLAGS" + H5_CXXFLAGS="$H5_CXXFLAGS $PROFILE_CXXFLAGS" + H5_FCFLAGS="$H5_FCFLAGS $PROFILE_FCFLAGS" + ;; + *) + enable_production="user-defined" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: user-defined" >&5 +$as_echo "user-defined" >&6; } + CONFIG_MODE="$enableval" + ;; +esac -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned" >&5 -$as_echo_n "checking size of unsigned... " >&6; } -if ${ac_cv_sizeof_unsigned+:} false; then : +## ---------------------------------------------------------------------- +## Check for system libraries. "dl" stands for dynamically loaded library +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 +$as_echo_n "checking for ceil in -lm... " >&6; } +if ${ac_cv_lib_m_ceil+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned))" "ac_cv_sizeof_unsigned" "$ac_includes_default"; then : + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ceil (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return ceil (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_ceil=yes else - if test "$ac_cv_type_unsigned" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (unsigned) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_unsigned=0 - fi + ac_cv_lib_m_ceil=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned" >&5 -$as_echo "$ac_cv_sizeof_unsigned" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UNSIGNED $ac_cv_sizeof_unsigned +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_ceil" >&5 +$as_echo "$ac_cv_lib_m_ceil" >&6; } +if test "x$ac_cv_lib_m_ceil" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 _ACEOF + LIBS="-lm $LIBS" -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi + ac_cv_lib_dl_dlopen=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + LIBS="-ldl $LIBS" -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : +if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then + ## ...for Solaris + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 +$as_echo_n "checking for socket in -lsocket... " >&6; } +if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_socket=yes else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi + ac_cv_lib_socket_socket=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 +$as_echo "$ac_cv_lib_socket_socket" >&6; } +if test "x$ac_cv_lib_socket_socket" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 _ACEOF + LIBS="-lsocket $LIBS" -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5 -$as_echo_n "checking size of __int64... " >&6; } -if ${ac_cv_sizeof___int64+:} false; then : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_int in -lnsl" >&5 +$as_echo_n "checking for xdr_int in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_xdr_int+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64" "$ac_includes_default"; then : + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -else - if test "$ac_cv_type___int64" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (__int64) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof___int64=0 - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xdr_int (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return xdr_int (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_xdr_int=yes +else + ac_cv_lib_nsl_xdr_int=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5 -$as_echo "$ac_cv_sizeof___int64" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF___INT64 $ac_cv_sizeof___int64 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_xdr_int" >&5 +$as_echo "$ac_cv_lib_nsl_xdr_int" >&6; } +if test "x$ac_cv_lib_nsl_xdr_int" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 _ACEOF + LIBS="-lnsl $LIBS" -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 -$as_echo_n "checking size of float... " >&6; } -if ${ac_cv_sizeof_float+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_float" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (float) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_float=0 - fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 -$as_echo "$ac_cv_sizeof_float" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_FLOAT $ac_cv_sizeof_float -_ACEOF - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 -$as_echo_n "checking size of double... " >&6; } -if ${ac_cv_sizeof_double+:} false; then : +## ---------------------------------------------------------------------- +## Check for system header files. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include -else - if test "$ac_cv_type_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (double) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_double=0 - fi -fi +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -$as_echo "$ac_cv_sizeof_double" >&6; } - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include -cat >>confdefs.h <<_ACEOF -#define SIZEOF_DOUBLE $ac_cv_sizeof_double _ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 -$as_echo_n "checking size of long double... " >&6; } -if ${ac_cv_sizeof_long_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : else - if test "$ac_cv_type_long_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long double) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_double=0 - fi + ac_cv_header_stdc=no fi +rm -f conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 -$as_echo "$ac_cv_sizeof_long_double" >&6; } - +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double _ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no +fi +rm -f conftest* +fi -## Checkpoint the cache -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f confcache -## Posix.1g types (C9x) -cat >>confdefs.h <<\EOF -#include -EOF +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h -if test "X$C9x" = "Xyes"; then - cat >>confdefs.h <<\EOF -#include -EOF fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int8_t" >&5 -$as_echo_n "checking size of int8_t... " >&6; } -if ${ac_cv_sizeof_int8_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int8_t))" "ac_cv_sizeof_int8_t" "$ac_includes_default"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_time=yes else - if test "$ac_cv_type_int8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int8_t=0 - fi + ac_cv_header_time=no fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int8_t" >&5 -$as_echo "$ac_cv_sizeof_int8_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h +fi -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT8_T $ac_cv_sizeof_int8_t + +## Unix +for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint8_t" >&5 -$as_echo_n "checking size of uint8_t... " >&6; } -if ${ac_cv_sizeof_uint8_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint8_t))" "ac_cv_sizeof_uint8_t" "$ac_includes_default"; then : +done -else - if test "$ac_cv_type_uint8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint8_t=0 - fi -fi +for ac_header in sys/socket.h sys/types.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint8_t" >&5 -$as_echo "$ac_cv_sizeof_uint8_t" >&6; } - +done -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT8_T $ac_cv_sizeof_uint8_t +for ac_header in stddef.h setjmp.h features.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least8_t" >&5 -$as_echo_n "checking size of int_least8_t... " >&6; } -if ${ac_cv_sizeof_int_least8_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least8_t))" "ac_cv_sizeof_int_least8_t" "$ac_includes_default"; then : +done -else - if test "$ac_cv_type_int_least8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_least8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_least8_t=0 - fi -fi +for ac_header in dirent.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default" +if test "x$ac_cv_header_dirent_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DIRENT_H 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least8_t" >&5 -$as_echo "$ac_cv_sizeof_int_least8_t" >&6; } - +done -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_LEAST8_T $ac_cv_sizeof_int_least8_t +for ac_header in stdint.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H 1 _ACEOF + C9x=yes +fi +done -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least8_t" >&5 -$as_echo_n "checking size of uint_least8_t... " >&6; } -if ${ac_cv_sizeof_uint_least8_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least8_t))" "ac_cv_sizeof_uint_least8_t" "$ac_includes_default"; then : -else - if test "$ac_cv_type_uint_least8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_least8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_least8_t=0 - fi -fi +## Darwin +for ac_header in mach/mach_time.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" +if test "x$ac_cv_header_mach_mach_time_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MACH_MACH_TIME_H 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least8_t" >&5 -$as_echo "$ac_cv_sizeof_uint_least8_t" >&6; } - +done -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_LEAST8_T $ac_cv_sizeof_uint_least8_t -_ACEOF +## Also need to detect Darwin for pubconf +case $host_os in + darwin*) +$as_echo "#define HAVE_DARWIN 1" >>confdefs.h -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast8_t" >&5 -$as_echo_n "checking size of int_fast8_t... " >&6; } -if ${ac_cv_sizeof_int_fast8_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast8_t))" "ac_cv_sizeof_int_fast8_t" "$ac_includes_default"; then : + ;; +esac -else - if test "$ac_cv_type_int_fast8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_fast8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_fast8_t=0 - fi -fi +## Windows +case "`uname`" in + CYGWIN*) + for ac_header in io.h sys/timeb.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast8_t" >&5 -$as_echo "$ac_cv_sizeof_int_fast8_t" >&6; } - +done -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_FAST8_T $ac_cv_sizeof_int_fast8_t + ;; + MINGW*) + for ac_header in io.h winsock2.h sys/timeb.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast8_t" >&5 -$as_echo_n "checking size of uint_fast8_t... " >&6; } -if ${ac_cv_sizeof_uint_fast8_t+:} false; then : +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lws2_32" >&5 +$as_echo_n "checking for main in -lws2_32... " >&6; } +if ${ac_cv_lib_ws2_32_main+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast8_t))" "ac_cv_sizeof_uint_fast8_t" "$ac_includes_default"; then : + ac_check_lib_save_LIBS=$LIBS +LIBS="-lws2_32 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ws2_32_main=yes else - if test "$ac_cv_type_uint_fast8_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_fast8_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_fast8_t=0 - fi + ac_cv_lib_ws2_32_main=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast8_t" >&5 -$as_echo "$ac_cv_sizeof_uint_fast8_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ws2_32_main" >&5 +$as_echo "$ac_cv_lib_ws2_32_main" >&6; } +if test "x$ac_cv_lib_ws2_32_main" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBWS2_32 1 +_ACEOF + LIBS="-lws2_32 $LIBS" +fi +ac_cv_lib_ws2_32=ac_cv_lib_ws2_32_main -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_FAST8_T $ac_cv_sizeof_uint_fast8_t + ;; + *) + for ac_header in io.h winsock2.h sys/timeb.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF +fi +done -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int16_t" >&5 -$as_echo_n "checking size of int16_t... " >&6; } -if ${ac_cv_sizeof_int16_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int16_t))" "ac_cv_sizeof_int16_t" "$ac_includes_default"; then : + ;; +esac -else - if test "$ac_cv_type_int16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int16_t=0 - fi -fi +case "$host" in + alpha*-dec*-osf*) + ## The and are needed on the DEC + ## Alpha to turn off UAC fixing. We do *not* attempt to + ## locate these files on other systems because there are too + ## many problems with including them. + for ac_header in sys/sysinfo.h sys/proc.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int16_t" >&5 -$as_echo "$ac_cv_sizeof_int16_t" >&6; } - +done -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT16_T $ac_cv_sizeof_int16_t + ;; + mips*-sgi*) + ## The is needed on the SGI machines to turn off + ## denormalized floating-point values going to zero. We do *not* + ## attempt to locate these files on other systems because there + ## may be problems with including them. + for ac_header in sys/fpu.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/fpu.h" "ac_cv_header_sys_fpu_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_fpu_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_FPU_H 1 _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint16_t" >&5 -$as_echo_n "checking size of uint16_t... " >&6; } -if ${ac_cv_sizeof_uint16_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint16_t))" "ac_cv_sizeof_uint16_t" "$ac_includes_default"; then : +done + + for ac_func in get_fpc_csr +do : + ac_fn_c_check_func "$LINENO" "get_fpc_csr" "ac_cv_func_get_fpc_csr" +if test "x$ac_cv_func_get_fpc_csr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GET_FPC_CSR 1 +_ACEOF -else - if test "$ac_cv_type_uint16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint16_t=0 - fi fi +done + + ;; +esac +## ---------------------------------------------------------------------- +## Some platforms require that all symbols are resolved when a library +## is linked. We can use the -no-undefined flag to tell libtool that +## it will be able to build shared libraries on these architectures, +## as it will not do so by default. +## +if test "X${enable_shared}" = "Xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool needs -no-undefined flag to build shared libraries" >&5 +$as_echo_n "checking if libtool needs -no-undefined flag to build shared libraries... " >&6; } + case "`uname`" in + CYGWIN*|MINGW*|AIX*) + ## Add in the -no-undefined flag to LDFLAGS for libtool. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + H5_LDFLAGS="$H5_LDFLAGS -no-undefined" + ;; + *) + ## Don't add in anything. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint16_t" >&5 -$as_echo "$ac_cv_sizeof_uint16_t" >&6; } +## ---------------------------------------------------------------------- +## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines +## that might need to be set for largefile support to behave +## correctly. This macro is defined in acsite.m4 and overrides +## the version provided by Autoconf (as of v2.65). The custom +## macro additionally adds the appropriate defines to AM_CPPFLAGS +## so that later configure checks have them visible. + +## Check for _FILE_OFFSET_BITS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT16_T $ac_cv_sizeof_uint16_t + ; + return 0; +} _ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least16_t" >&5 -$as_echo_n "checking size of int_least16_t... " >&6; } -if ${ac_cv_sizeof_int_least16_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least16_t))" "ac_cv_sizeof_int_least16_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int_least16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_least16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_least16_t=0 - fi +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least16_t" >&5 -$as_echo "$ac_cv_sizeof_int_least16_t" >&6; } - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_LEAST16_T $ac_cv_sizeof_int_least16_t +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF + AM_CPPFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits $AM_CPPFLAGS";; +esac +rm -rf conftest* -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least16_t" >&5 -$as_echo_n "checking size of uint_least16_t... " >&6; } -if ${ac_cv_sizeof_uint_least16_t+:} false; then : +## Check for _LARGE_FILES +if test "$ac_cv_sys_file_offset_bits" = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least16_t))" "ac_cv_sizeof_uint_least16_t" "$ac_includes_default"; then : + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ -else - if test "$ac_cv_type_uint_least16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_least16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_least16_t=0 - fi + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least16_t" >&5 -$as_echo "$ac_cv_sizeof_uint_least16_t" >&6; } - - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_LEAST16_T $ac_cv_sizeof_uint_least16_t +#define _LARGE_FILES $ac_cv_sys_large_files _ACEOF + AM_CPPFLAGS="-D_LARGE_FILES=$ac_cv_sys_large_files $AM_CPPFLAGS";; +esac +rm -rf conftest* +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast16_t" >&5 -$as_echo_n "checking size of int_fast16_t... " >&6; } -if ${ac_cv_sizeof_int_fast16_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast16_t))" "ac_cv_sizeof_int_fast16_t" "$ac_includes_default"; then : +## ---------------------------------------------------------------------- +## Add necessary defines for Linux Systems. +## +case "$host_cpu-$host_vendor-$host_os" in + *linux*) + ## Make available various LFS-related routines using the following + ## _LARGEFILE*_SOURCE macros. + AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" -else - if test "$ac_cv_type_int_fast16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_fast16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_fast16_t=0 - fi -fi + ## Add POSIX support on Linux systems, so defines + ## __USE_POSIX, which is required to get the prototype for fdopen + ## defined correctly in . + ## + ## This flag was removed from h5cc as of 2009-10-17 when it was found + ## that the flag broke compiling netCDF-4 code with h5cc, but kept in + ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen + ## is used only by H5_debug_mask which is used only when debugging in + ## H5_init_library (all in H5.c). When the flag was removed this was + ## the only compile failure noted. + ## + ## This was originally defined as _POSIX_SOURCE which was updated to + ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX + ## functionality so clock_gettime and CLOCK_MONOTONIC are defined + ## correctly. This was later updated to 200112L so that + ## posix_memalign() is visible for the direct VFD code on Linux + ## systems. + ## + ## POSIX feature information can be found in the gcc manual at: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast16_t" >&5 -$as_echo "$ac_cv_sizeof_int_fast16_t" >&6; } + ## Need to add this so that O_DIRECT is visible for the direct + ## VFD on Linux systems. + H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS" + + ## Also add BSD support on Linux systems, so defines + ## __USE_BSD, which is required to get the prototype for strdup + ## defined correctly in and snprintf & vsnprintf defined + ## correctly in + ## Linking to the bsd-compat library is required as per the gcc manual: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + ## however, we do not do this since it breaks the big test on some + ## older platforms. + H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS" + ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE. + ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE, + ## which should work for all versions of glibc. + H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS" + ;; +esac +## Need to add the AM_ and H5_ into CFLAGS/CPPFLAGS to make them visible +## for configure checks. +## Note: Both will be restored by the end of configure. +CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" +CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_FAST16_T $ac_cv_sizeof_int_fast16_t +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +off64_t n = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + for ac_func in lseek64 fseeko64 ftello64 ftruncate64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast16_t" >&5 -$as_echo_n "checking size of uint_fast16_t... " >&6; } -if ${ac_cv_sizeof_uint_fast16_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast16_t))" "ac_cv_sizeof_uint_fast16_t" "$ac_includes_default"; then : +fi +done else - if test "$ac_cv_type_uint_fast16_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_fast16_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_fast16_t=0 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&5 +$as_echo "skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +for ac_func in fseeko ftello +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast16_t" >&5 -$as_echo "$ac_cv_sizeof_uint_fast16_t" >&6; } - +done +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_FAST16_T $ac_cv_sizeof_uint_fast16_t +#include +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +struct stat64 sb; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + for ac_func in stat64 fstat64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int32_t" >&5 -$as_echo_n "checking size of int32_t... " >&6; } -if ${ac_cv_sizeof_int32_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int32_t))" "ac_cv_sizeof_int32_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int32_t=0 - fi fi +done +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for stat64() and fstat64()" >&5 +$as_echo "skipping test for stat64() and fstat64()" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int32_t" >&5 -$as_echo "$ac_cv_sizeof_int32_t" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Data types and their sizes. +## +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = xyes; then : +else cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT32_T $ac_cv_sizeof_int32_t +#define off_t long int _ACEOF - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint32_t" >&5 -$as_echo_n "checking size of uint32_t... " >&6; } -if ${ac_cv_sizeof_uint32_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint32_t))" "ac_cv_sizeof_uint32_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_uint32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint32_t=0 - fi -fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint32_t" >&5 -$as_echo "$ac_cv_sizeof_uint32_t" >&6; } +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : +else cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT32_T $ac_cv_sizeof_uint32_t +#define size_t unsigned long _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least32_t" >&5 -$as_echo_n "checking size of int_least32_t... " >&6; } -if ${ac_cv_sizeof_int_least32_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least32_t))" "ac_cv_sizeof_int_least32_t" "$ac_includes_default"; then : +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = xyes; then : else - if test "$ac_cv_type_int_least32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_least32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_least32_t=0 - fi -fi + +cat >>confdefs.h <<_ACEOF +#define ssize_t long +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least32_t" >&5 -$as_echo "$ac_cv_sizeof_int_least32_t" >&6; } +ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes; then : +else cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_LEAST32_T $ac_cv_sizeof_int_least32_t +#define ptrdiff_t long _ACEOF +fi -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least32_t" >&5 -$as_echo_n "checking size of uint_least32_t... " >&6; } -if ${ac_cv_sizeof_uint_least32_t+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least32_t))" "ac_cv_sizeof_uint_least32_t" "$ac_includes_default"; then : + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; -else - if test "$ac_cv_type_uint_least32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_least32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_least32_t=0 - fi -fi +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least32_t" >&5 -$as_echo "$ac_cv_sizeof_uint_least32_t" >&6; } - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_LEAST32_T $ac_cv_sizeof_uint_least32_t -_ACEOF +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast32_t" >&5 -$as_echo_n "checking size of int_fast32_t... " >&6; } -if ${ac_cv_sizeof_int_fast32_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast32_t))" "ac_cv_sizeof_int_fast32_t" "$ac_includes_default"; then : +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - if test "$ac_cv_type_int_fast32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_fast32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int_fast32_t=0 - fi + ac_cv_c_bigendian=no fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast32_t" >&5 -$as_echo "$ac_cv_sizeof_int_fast32_t" >&6; } - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_FAST32_T $ac_cv_sizeof_int_fast32_t + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast32_t" >&5 -$as_echo_n "checking size of uint_fast32_t... " >&6; } -if ${ac_cv_sizeof_uint_fast32_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast32_t))" "ac_cv_sizeof_uint_fast32_t" "$ac_includes_default"; then : - + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - if test "$ac_cv_type_uint_fast32_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_fast32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_uint_fast32_t=0 - fi + ac_cv_c_bigendian=no fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast32_t" >&5 -$as_echo "$ac_cv_sizeof_uint_fast32_t" >&6; } - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_FAST32_T $ac_cv_sizeof_uint_fast32_t +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} _ACEOF - - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int64_t" >&5 -$as_echo_n "checking size of int64_t... " >&6; } -if ${ac_cv_sizeof_int64_t+:} false; then : - $as_echo_n "(cached) " >&6 +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int64_t))" "ac_cv_sizeof_int64_t" "$ac_includes_default"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no else - if test "$ac_cv_type_int64_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int64_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int64_t=0 - fi + ac_cv_c_bigendian=yes fi - +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int64_t" >&5 -$as_echo "$ac_cv_sizeof_int64_t" >&6; } - + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT64_T $ac_cv_sizeof_int64_t -_ACEOF +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint64_t" >&5 -$as_echo_n "checking size of uint64_t... " >&6; } -if ${ac_cv_sizeof_uint64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 +$as_echo_n "checking size of char... " >&6; } +if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint64_t))" "ac_cv_sizeof_uint64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else - if test "$ac_cv_type_uint64_t" = yes; then + if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint64_t) +as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_uint64_t=0 + ac_cv_sizeof_char=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint64_t" >&5 -$as_echo "$ac_cv_sizeof_uint64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 +$as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT64_T $ac_cv_sizeof_uint64_t +#define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF @@ -24459,32 +22926,32 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least64_t" >&5 -$as_echo_n "checking size of int_least64_t... " >&6; } -if ${ac_cv_sizeof_int_least64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least64_t))" "ac_cv_sizeof_int_least64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else - if test "$ac_cv_type_int_least64_t" = yes; then + if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_least64_t) +as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_int_least64_t=0 + ac_cv_sizeof_short=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least64_t" >&5 -$as_echo "$ac_cv_sizeof_int_least64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_LEAST64_T $ac_cv_sizeof_int_least64_t +#define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF @@ -24492,32 +22959,32 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least64_t" >&5 -$as_echo_n "checking size of uint_least64_t... " >&6; } -if ${ac_cv_sizeof_uint_least64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least64_t))" "ac_cv_sizeof_uint_least64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else - if test "$ac_cv_type_uint_least64_t" = yes; then + if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_least64_t) +as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_uint_least64_t=0 + ac_cv_sizeof_int=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least64_t" >&5 -$as_echo "$ac_cv_sizeof_uint_least64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_LEAST64_T $ac_cv_sizeof_uint_least64_t +#define SIZEOF_INT $ac_cv_sizeof_int _ACEOF @@ -24525,32 +22992,32 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast64_t" >&5 -$as_echo_n "checking size of int_fast64_t... " >&6; } -if ${ac_cv_sizeof_int_fast64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned" >&5 +$as_echo_n "checking size of unsigned... " >&6; } +if ${ac_cv_sizeof_unsigned+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast64_t))" "ac_cv_sizeof_int_fast64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned))" "ac_cv_sizeof_unsigned" "$ac_includes_default"; then : else - if test "$ac_cv_type_int_fast64_t" = yes; then + if test "$ac_cv_type_unsigned" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int_fast64_t) +as_fn_error 77 "cannot compute sizeof (unsigned) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_int_fast64_t=0 + ac_cv_sizeof_unsigned=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast64_t" >&5 -$as_echo "$ac_cv_sizeof_int_fast64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned" >&5 +$as_echo "$ac_cv_sizeof_unsigned" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT_FAST64_T $ac_cv_sizeof_int_fast64_t +#define SIZEOF_UNSIGNED $ac_cv_sizeof_unsigned _ACEOF @@ -24558,66 +23025,65 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast64_t" >&5 -$as_echo_n "checking size of uint_fast64_t... " >&6; } -if ${ac_cv_sizeof_uint_fast64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast64_t))" "ac_cv_sizeof_uint_fast64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else - if test "$ac_cv_type_uint_fast64_t" = yes; then + if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (uint_fast64_t) +as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_uint_fast64_t=0 + ac_cv_sizeof_long=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast64_t" >&5 -$as_echo "$ac_cv_sizeof_uint_fast64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINT_FAST64_T $ac_cv_sizeof_uint_fast64_t +#define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF - # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -$as_echo_n "checking size of size_t... " >&6; } -if ${ac_cv_sizeof_size_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } +if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : else - if test "$ac_cv_type_size_t" = yes; then + if test "$ac_cv_type_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (size_t) +as_fn_error 77 "cannot compute sizeof (long long) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_size_t=0 + ac_cv_sizeof_long_long=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -$as_echo "$ac_cv_sizeof_size_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF @@ -24625,32 +23091,32 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5 -$as_echo_n "checking size of ssize_t... " >&6; } -if ${ac_cv_sizeof_ssize_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5 +$as_echo_n "checking size of __int64... " >&6; } +if ${ac_cv_sizeof___int64+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64" "$ac_includes_default"; then : else - if test "$ac_cv_type_ssize_t" = yes; then + if test "$ac_cv_type___int64" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (ssize_t) +as_fn_error 77 "cannot compute sizeof (__int64) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_ssize_t=0 + ac_cv_sizeof___int64=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ssize_t" >&5 -$as_echo "$ac_cv_sizeof_ssize_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5 +$as_echo "$ac_cv_sizeof___int64" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t +#define SIZEOF___INT64 $ac_cv_sizeof___int64 _ACEOF @@ -24658,69 +23124,65 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ptrdiff_t" >&5 -$as_echo_n "checking size of ptrdiff_t... " >&6; } -if ${ac_cv_sizeof_ptrdiff_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 +$as_echo_n "checking size of float... " >&6; } +if ${ac_cv_sizeof_float+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ptrdiff_t))" "ac_cv_sizeof_ptrdiff_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default"; then : else - if test "$ac_cv_type_ptrdiff_t" = yes; then + if test "$ac_cv_type_float" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (ptrdiff_t) +as_fn_error 77 "cannot compute sizeof (float) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_ptrdiff_t=0 + ac_cv_sizeof_float=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ptrdiff_t" >&5 -$as_echo "$ac_cv_sizeof_ptrdiff_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 +$as_echo "$ac_cv_sizeof_float" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_PTRDIFF_T $ac_cv_sizeof_ptrdiff_t +#define SIZEOF_FLOAT $ac_cv_sizeof_float _ACEOF - -cat >>confdefs.h <<\EOF -#include /*for off_t definition*/ -EOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if ${ac_cv_sizeof_off_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 +$as_echo_n "checking size of double... " >&6; } +if ${ac_cv_sizeof_double+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : else - if test "$ac_cv_type_off_t" = yes; then + if test "$ac_cv_type_double" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (off_t) +as_fn_error 77 "cannot compute sizeof (double) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_off_t=0 + ac_cv_sizeof_double=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 +$as_echo "$ac_cv_sizeof_double" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t +#define SIZEOF_DOUBLE $ac_cv_sizeof_double _ACEOF @@ -24728,32 +23190,32 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off64_t" >&5 -$as_echo_n "checking size of off64_t... " >&6; } -if ${ac_cv_sizeof_off64_t+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 +$as_echo_n "checking size of long double... " >&6; } +if ${ac_cv_sizeof_long_double+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off64_t))" "ac_cv_sizeof_off64_t" "$ac_includes_default"; then : + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : else - if test "$ac_cv_type_off64_t" = yes; then + if test "$ac_cv_type_long_double" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (off64_t) +as_fn_error 77 "cannot compute sizeof (long double) See \`config.log' for more details" "$LINENO" 5; } else - ac_cv_sizeof_off64_t=0 + ac_cv_sizeof_long_double=0 fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off64_t" >&5 -$as_echo "$ac_cv_sizeof_off64_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 +$as_echo "$ac_cv_sizeof_long_double" >&6; } cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF64_T $ac_cv_sizeof_off64_t +#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double _ACEOF @@ -24838,1289 +23300,1088 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} esac fi fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -## ---------------------------------------------------------------------- -## Check if the dev_t type is a scalar type (must come after the check for -## sys/types.h) -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dev_t is scalar" >&5 -$as_echo_n "checking if dev_t is scalar... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef HAVE_SYS_TYPES_H -#include -#endif - -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -dev_t d1, d2; if(d1==d2) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define DEV_T_IS_SCALAR 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f confcache -## ---------------------------------------------------------------------- -## Fake --with-xxx option to allow us to create a help message for the -## following --with-xxx options which can take either a =DIR or =INC,LIB -## specifier. -## +## Posix.1g types (C9x) +cat >>confdefs.h <<\EOF +#include +EOF -# Check whether --with-fnord was given. -if test "${with_fnord+set}" = set; then : - withval=$with_fnord; +if test "X$C9x" = "Xyes"; then + cat >>confdefs.h <<\EOF +#include +EOF fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int8_t" >&5 +$as_echo_n "checking size of int8_t... " >&6; } +if ${ac_cv_sizeof_int8_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int8_t))" "ac_cv_sizeof_int8_t" "$ac_includes_default"; then : -## ---------------------------------------------------------------------- -## Is the dmalloc present? It has a header file `dmalloc.h' and a library -## `-ldmalloc' and their locations might be specified with the `--with-dmalloc' -## command-line switch. The value is an include path and/or a library path. -## If the library path is specified then it must be preceded by a comma. -## - -# Check whether --with-dmalloc was given. -if test "${with_dmalloc+set}" = set; then : - withval=$with_dmalloc; else - withval=no + if test "$ac_cv_type_int8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int8_t=0 + fi fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int8_t" >&5 +$as_echo "$ac_cv_sizeof_int8_t" >&6; } -case $withval in - yes) - HAVE_DMALLOC="yes" - for ac_header in dmalloc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dmalloc.h" "ac_cv_header_dmalloc_h" "$ac_includes_default" -if test "x$ac_cv_header_dmalloc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DMALLOC_H 1 -_ACEOF -else - unset HAVE_DMALLOC -fi -done +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT8_T $ac_cv_sizeof_int8_t +_ACEOF - if test "x$HAVE_DMALLOC" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc_shutdown in -ldmalloc" >&5 -$as_echo_n "checking for dmalloc_shutdown in -ldmalloc... " >&6; } -if ${ac_cv_lib_dmalloc_dmalloc_shutdown+:} false; then : + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint8_t" >&5 +$as_echo_n "checking size of uint8_t... " >&6; } +if ${ac_cv_sizeof_uint8_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldmalloc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint8_t))" "ac_cv_sizeof_uint8_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dmalloc_shutdown (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return dmalloc_shutdown (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dmalloc_dmalloc_shutdown=yes else - ac_cv_lib_dmalloc_dmalloc_shutdown=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + if test "$ac_cv_type_uint8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint8_t=0 + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_shutdown" >&5 -$as_echo "$ac_cv_lib_dmalloc_dmalloc_shutdown" >&6; } -if test "x$ac_cv_lib_dmalloc_dmalloc_shutdown" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDMALLOC 1 -_ACEOF - LIBS="-ldmalloc $LIBS" - -else - unset HAVE_DMALLOC fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint8_t" >&5 +$as_echo "$ac_cv_sizeof_uint8_t" >&6; } - fi - if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find dmalloc library" "$LINENO" 5 - fi - ;; - no) - HAVE_DMALLOC="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc library" >&5 -$as_echo_n "checking for dmalloc library... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } - ;; - *) - HAVE_DMALLOC="yes" - case "$withval" in - *,*) - dmalloc_inc="`echo $withval |cut -f1 -d,`" - dmalloc_lib="`echo $withval |cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - dmalloc_inc="$withval/include" - dmalloc_lib="$withval/lib" - fi - ;; - esac - - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$dmalloc_inc" = "X/usr/include"; then - dmalloc_inc="" - fi - if test "X$dmalloc_lib" = "X/usr/lib"; then - dmalloc_lib="" - fi - - saved_CPPFLAGS="$CPPFLAGS" - saved_AM_CPPFLAGS="$AM_CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - saved_AM_LDFLAGS="$AM_LDFLAGS" - if test -n "$dmalloc_inc"; then - CPPFLAGS="$CPPFLAGS -I$dmalloc_inc" - AM_CPPFLAGS="$AM_CPPFLAGS -I$dmalloc_inc" - fi - for ac_header in dmalloc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dmalloc.h" "ac_cv_header_dmalloc_h" "$ac_includes_default" -if test "x$ac_cv_header_dmalloc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DMALLOC_H 1 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT8_T $ac_cv_sizeof_uint8_t _ACEOF -else - CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_DMALLOC -fi - -done - - - if test "x$HAVE_DMALLOC" = "xyes"; then - if test -n "$dmalloc_lib"; then - LDFLAGS="$LDFLAGS -L$dmalloc_lib" - AM_LDFLAGS="$AM_LDFLAGS -L$dmalloc_lib" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc_shutdown in -ldmalloc" >&5 -$as_echo_n "checking for dmalloc_shutdown in -ldmalloc... " >&6; } -if ${ac_cv_lib_dmalloc_dmalloc_shutdown+:} false; then : +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least8_t" >&5 +$as_echo_n "checking size of int_least8_t... " >&6; } +if ${ac_cv_sizeof_int_least8_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldmalloc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least8_t))" "ac_cv_sizeof_int_least8_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dmalloc_shutdown (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return dmalloc_shutdown (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dmalloc_dmalloc_shutdown=yes else - ac_cv_lib_dmalloc_dmalloc_shutdown=no + if test "$ac_cv_type_int_least8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_least8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_least8_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_shutdown" >&5 -$as_echo "$ac_cv_lib_dmalloc_dmalloc_shutdown" >&6; } -if test "x$ac_cv_lib_dmalloc_dmalloc_shutdown" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDMALLOC 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least8_t" >&5 +$as_echo "$ac_cv_sizeof_int_least8_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_LEAST8_T $ac_cv_sizeof_int_least8_t _ACEOF - LIBS="-ldmalloc $LIBS" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least8_t" >&5 +$as_echo_n "checking size of uint_least8_t... " >&6; } +if ${ac_cv_sizeof_uint_least8_t+:} false; then : + $as_echo_n "(cached) " >&6 else - LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_DMALLOC + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least8_t))" "ac_cv_sizeof_uint_least8_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint_least8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_least8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_least8_t=0 + fi fi - fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least8_t" >&5 +$as_echo "$ac_cv_sizeof_uint_least8_t" >&6; } - if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find dmalloc library" "$LINENO" 5 - fi - ;; -esac -## ---------------------------------------------------------------------- -## Is the GNU zlib present? It has a header file `zlib.h' and a library -## `-lz' and their locations might be specified with the `--with-zlib' -## command-line switch. The value is an include path and/or a library path. -## If the library path is specified then it must be preceded by a comma. -## - USE_FILTER_DEFLATE="no" -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_LEAST8_T $ac_cv_sizeof_uint_least8_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast8_t" >&5 +$as_echo_n "checking size of int_fast8_t... " >&6; } +if ${ac_cv_sizeof_int_fast8_t+:} false; then : + $as_echo_n "(cached) " >&6 else - withval=yes + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast8_t))" "ac_cv_sizeof_int_fast8_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int_fast8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_fast8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_fast8_t=0 + fi fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast8_t" >&5 +$as_echo "$ac_cv_sizeof_int_fast8_t" >&6; } -case $withval in - yes) - HAVE_ZLIB="yes" - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_FAST8_T $ac_cv_sizeof_int_fast8_t _ACEOF - HAVE_ZLIB_H="yes" -else - unset HAVE_ZLIB -fi -done - if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 -$as_echo_n "checking for compress2 in -lz... " >&6; } -if ${ac_cv_lib_z_compress2+:} false; then : +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast8_t" >&5 +$as_echo_n "checking size of uint_fast8_t... " >&6; } +if ${ac_cv_sizeof_uint_fast8_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast8_t))" "ac_cv_sizeof_uint_fast8_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char compress2 (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return compress2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_compress2=yes else - ac_cv_lib_z_compress2=no + if test "$ac_cv_type_uint_fast8_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_fast8_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_fast8_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 -$as_echo "$ac_cv_lib_z_compress2" >&6; } -if test "x$ac_cv_lib_z_compress2" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast8_t" >&5 +$as_echo "$ac_cv_sizeof_uint_fast8_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_FAST8_T $ac_cv_sizeof_uint_fast8_t _ACEOF - LIBS="-lz $LIBS" + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int16_t" >&5 +$as_echo_n "checking size of int16_t... " >&6; } +if ${ac_cv_sizeof_int16_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int16_t))" "ac_cv_sizeof_int16_t" "$ac_includes_default"; then : else - unset HAVE_ZLIB + if test "$ac_cv_type_int16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int16_t=0 + fi fi - fi - if test -z "$HAVE_ZLIB"; then - if test -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find zlib library" "$LINENO" 5 - fi - else - ac_fn_c_check_func "$LINENO" "compress2" "ac_cv_func_compress2" -if test "x$ac_cv_func_compress2" = xyes; then : - HAVE_COMPRESS2="yes" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int16_t" >&5 +$as_echo "$ac_cv_sizeof_int16_t" >&6; } - fi - ;; - no) - HAVE_ZLIB="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU zlib" >&5 -$as_echo_n "checking for GNU zlib... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } - ;; - *) - HAVE_ZLIB="yes" - case "$withval" in - *,*) - zlib_inc="`echo $withval | cut -f1 -d,`" - zlib_lib="`echo $withval | cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - zlib_inc="$withval/include" - zlib_lib="$withval/lib" - fi - ;; - esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$zlib_inc" = "X/usr/include"; then - zlib_inc="" - fi - if test "X$zlib_lib" = "X/usr/lib"; then - zlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" - saved_AM_CPPFLAGS="$AM_CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - saved_AM_LDFLAGS="$AM_LDFLAGS" +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT16_T $ac_cv_sizeof_int16_t +_ACEOF - if test -n "$zlib_inc"; then - CPPFLAGS="$CPPFLAGS -I$zlib_inc" - AM_CPPFLAGS="$AM_CPPFLAGS -I$zlib_inc" - fi - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF - HAVE_ZLIB_H="yes" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint16_t" >&5 +$as_echo_n "checking size of uint16_t... " >&6; } +if ${ac_cv_sizeof_uint16_t+:} false; then : + $as_echo_n "(cached) " >&6 else - CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_ZLIB + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint16_t))" "ac_cv_sizeof_uint16_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint16_t=0 + fi fi -done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint16_t" >&5 +$as_echo "$ac_cv_sizeof_uint16_t" >&6; } + - if test -n "$zlib_lib"; then - LDFLAGS="$LDFLAGS -L$zlib_lib" - AM_LDFLAGS="$AM_LDFLAGS -L$zlib_lib" - fi +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT16_T $ac_cv_sizeof_uint16_t +_ACEOF - if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 -$as_echo_n "checking for compress2 in -lz... " >&6; } -if ${ac_cv_lib_z_compress2+:} false; then : + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least16_t" >&5 +$as_echo_n "checking size of int_least16_t... " >&6; } +if ${ac_cv_sizeof_int_least16_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least16_t))" "ac_cv_sizeof_int_least16_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char compress2 (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return compress2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_compress2=yes else - ac_cv_lib_z_compress2=no + if test "$ac_cv_type_int_least16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_least16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_least16_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 -$as_echo "$ac_cv_lib_z_compress2" >&6; } -if test "x$ac_cv_lib_z_compress2" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least16_t" >&5 +$as_echo "$ac_cv_sizeof_int_least16_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_LEAST16_T $ac_cv_sizeof_int_least16_t _ACEOF - LIBS="-lz $LIBS" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least16_t" >&5 +$as_echo_n "checking size of uint_least16_t... " >&6; } +if ${ac_cv_sizeof_uint_least16_t+:} false; then : + $as_echo_n "(cached) " >&6 else - LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_ZLIB -fi + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least16_t))" "ac_cv_sizeof_uint_least16_t" "$ac_includes_default"; then : - fi +else + if test "$ac_cv_type_uint_least16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_least16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_least16_t=0 + fi +fi - if test -z "$HAVE_ZLIB"; then - if test -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find zlib library" "$LINENO" 5 - fi - else - ac_fn_c_check_func "$LINENO" "compress2" "ac_cv_func_compress2" -if test "x$ac_cv_func_compress2" = xyes; then : - HAVE_COMPRESS2="yes" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least16_t" >&5 +$as_echo "$ac_cv_sizeof_uint_least16_t" >&6; } - fi - ;; -esac -if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" = "xyes"; then -$as_echo "#define HAVE_FILTER_DEFLATE 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_LEAST16_T $ac_cv_sizeof_uint_least16_t +_ACEOF - USE_FILTER_DEFLATE="yes" - ## Add "deflate" to external filter list - if test "X$EXTERNAL_FILTERS" != "X"; then - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," - fi - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}deflate(zlib)" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast16_t" >&5 +$as_echo_n "checking size of int_fast16_t... " >&6; } +if ${ac_cv_sizeof_int_fast16_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast16_t))" "ac_cv_sizeof_int_fast16_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int_fast16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_fast16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_fast16_t=0 + fi +fi + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast16_t" >&5 +$as_echo "$ac_cv_sizeof_int_fast16_t" >&6; } -## ---------------------------------------------------------------------- -## Is the szlib present? It has a header file `szlib.h' and a library -## `-lsz' and their locations might be specified with the `--with-szlib' -## command-line switch. The value is an include path and/or a library path. -## If the library path is specified then it must be preceded by a comma. -## - USE_FILTER_SZIP="no" -# Check whether --with-szlib was given. -if test "${with_szlib+set}" = set; then : - withval=$with_szlib; +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_FAST16_T $ac_cv_sizeof_int_fast16_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast16_t" >&5 +$as_echo_n "checking size of uint_fast16_t... " >&6; } +if ${ac_cv_sizeof_uint_fast16_t+:} false; then : + $as_echo_n "(cached) " >&6 else - withval=no + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast16_t))" "ac_cv_sizeof_uint_fast16_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint_fast16_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_fast16_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_fast16_t=0 + fi fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast16_t" >&5 +$as_echo "$ac_cv_sizeof_uint_fast16_t" >&6; } -case $withval in - yes) - HAVE_SZLIB="yes" - for ac_header in szlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "szlib.h" "ac_cv_header_szlib_h" "$ac_includes_default" -if test "x$ac_cv_header_szlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SZLIB_H 1 + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_FAST16_T $ac_cv_sizeof_uint_fast16_t _ACEOF - HAVE_SZLIB_H="yes" -else - unset HAVE_SZLIB -fi -done - if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SZ_BufftoBuffCompress in -lsz" >&5 -$as_echo_n "checking for SZ_BufftoBuffCompress in -lsz... " >&6; } -if ${ac_cv_lib_sz_SZ_BufftoBuffCompress+:} false; then : + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int32_t" >&5 +$as_echo_n "checking size of int32_t... " >&6; } +if ${ac_cv_sizeof_int32_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int32_t))" "ac_cv_sizeof_int32_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char SZ_BufftoBuffCompress (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return SZ_BufftoBuffCompress (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sz_SZ_BufftoBuffCompress=yes else - ac_cv_lib_sz_SZ_BufftoBuffCompress=no + if test "$ac_cv_type_int32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int32_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 -$as_echo "$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } -if test "x$ac_cv_lib_sz_SZ_BufftoBuffCompress" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSZ 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int32_t" >&5 +$as_echo "$ac_cv_sizeof_int32_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT32_T $ac_cv_sizeof_int32_t _ACEOF - LIBS="-lsz $LIBS" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint32_t" >&5 +$as_echo_n "checking size of uint32_t... " >&6; } +if ${ac_cv_sizeof_uint32_t+:} false; then : + $as_echo_n "(cached) " >&6 else - unset HAVE_SZLIB -fi + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint32_t))" "ac_cv_sizeof_uint32_t" "$ac_includes_default"; then : - fi - if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find szlib library" "$LINENO" 5 - fi - ;; - no) - HAVE_SZLIB="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib" >&5 -$as_echo_n "checking for szlib... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } - ;; - *) - HAVE_SZLIB="yes" - case "$withval" in - *,*) - szlib_inc="`echo $withval |cut -f1 -d,`" - szlib_lib="`echo $withval |cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - szlib_inc="$withval/include" - szlib_lib="$withval/lib" - fi - ;; - esac +else + if test "$ac_cv_type_uint32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint32_t=0 + fi +fi - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$szlib_inc" = "X/usr/include"; then - szlib_inc="" - fi - if test "X$szlib_lib" = "X/usr/lib"; then - szlib_lib="" - fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint32_t" >&5 +$as_echo "$ac_cv_sizeof_uint32_t" >&6; } - saved_CPPFLAGS="$CPPFLAGS" - saved_AM_CPPFLAGS="$AM_CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - saved_AM_LDFLAGS="$AM_LDFLAGS" - if test -n "$szlib_inc"; then - CPPFLAGS="$CPPFLAGS -I$szlib_inc" - AM_CPPFLAGS="$AM_CPPFLAGS -I$szlib_inc" - fi - for ac_header in szlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "szlib.h" "ac_cv_header_szlib_h" "$ac_includes_default" -if test "x$ac_cv_header_szlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SZLIB_H 1 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT32_T $ac_cv_sizeof_uint32_t _ACEOF - HAVE_SZLIB_H="yes" + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least32_t" >&5 +$as_echo_n "checking size of int_least32_t... " >&6; } +if ${ac_cv_sizeof_int_least32_t+:} false; then : + $as_echo_n "(cached) " >&6 else - CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_SZLIB + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least32_t))" "ac_cv_sizeof_int_least32_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int_least32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_least32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_least32_t=0 + fi fi -done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least32_t" >&5 +$as_echo "$ac_cv_sizeof_int_least32_t" >&6; } - if test -n "$szlib_lib"; then - LDFLAGS="$LDFLAGS -L$szlib_lib" - AM_LDFLAGS="$AM_LDFLAGS -L$szlib_lib" - fi - if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SZ_BufftoBuffCompress in -lsz" >&5 -$as_echo_n "checking for SZ_BufftoBuffCompress in -lsz... " >&6; } -if ${ac_cv_lib_sz_SZ_BufftoBuffCompress+:} false; then : +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_LEAST32_T $ac_cv_sizeof_int_least32_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least32_t" >&5 +$as_echo_n "checking size of uint_least32_t... " >&6; } +if ${ac_cv_sizeof_uint_least32_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least32_t))" "ac_cv_sizeof_uint_least32_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char SZ_BufftoBuffCompress (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return SZ_BufftoBuffCompress (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sz_SZ_BufftoBuffCompress=yes else - ac_cv_lib_sz_SZ_BufftoBuffCompress=no + if test "$ac_cv_type_uint_least32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_least32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_least32_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 -$as_echo "$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } -if test "x$ac_cv_lib_sz_SZ_BufftoBuffCompress" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSZ 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least32_t" >&5 +$as_echo "$ac_cv_sizeof_uint_least32_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_LEAST32_T $ac_cv_sizeof_uint_least32_t _ACEOF - LIBS="-lsz $LIBS" + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast32_t" >&5 +$as_echo_n "checking size of int_fast32_t... " >&6; } +if ${ac_cv_sizeof_int_fast32_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast32_t))" "ac_cv_sizeof_int_fast32_t" "$ac_includes_default"; then : else - LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_SZLIB + if test "$ac_cv_type_int_fast32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_fast32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_fast32_t=0 + fi fi - fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast32_t" >&5 +$as_echo "$ac_cv_sizeof_int_fast32_t" >&6; } - if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then - as_fn_error $? "couldn't find szlib library" "$LINENO" 5 - fi - ;; -esac -if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - ## SZLIB library is available. Check if it can encode - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 -$as_echo_n "checking for szlib encoder... " >&6; } - ## Set LD_LIBRARY_PATH so encoder test can find the library and run. - ## Also add LL_PATH substitution to Makefiles so they can use the - ## path as well, for testing examples. - if test -z "$LD_LIBRARY_PATH"; then - export LD_LIBRARY_PATH="$szlib_lib" - else - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$szlib_lib" - fi +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_FAST32_T $ac_cv_sizeof_int_fast32_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast32_t" >&5 +$as_echo_n "checking size of uint_fast32_t... " >&6; } +if ${ac_cv_sizeof_uint_fast32_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast32_t))" "ac_cv_sizeof_uint_fast32_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint_fast32_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_fast32_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_fast32_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast32_t" >&5 +$as_echo "$ac_cv_sizeof_uint_fast32_t" >&6; } - LL_PATH="$LD_LIBRARY_PATH" - if ${hdf5_cv_szlib_can_encode+:} false; then : + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_FAST32_T $ac_cv_sizeof_uint_fast32_t +_ACEOF + + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int64_t" >&5 +$as_echo_n "checking size of int64_t... " >&6; } +if ${ac_cv_sizeof_int64_t+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int64_t))" "ac_cv_sizeof_int64_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling +as_fn_error 77 "cannot compute sizeof (int64_t) See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + else + ac_cv_sizeof_int64_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int64_t" >&5 +$as_echo "$ac_cv_sizeof_int64_t" >&6; } - #include - int main(void) - { - /* SZ_encoder_enabled returns 1 if encoder is present */ - if(SZ_encoder_enabled() == 1) - exit(0); - else - exit(1); - } +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT64_T $ac_cv_sizeof_int64_t _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_szlib_can_encode=yes + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint64_t" >&5 +$as_echo_n "checking size of uint64_t... " >&6; } +if ${ac_cv_sizeof_uint64_t+:} false; then : + $as_echo_n "(cached) " >&6 else - hdf5_cv_szlib_can_encode=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint64_t))" "ac_cv_sizeof_uint64_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint64_t=0 + fi fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint64_t" >&5 +$as_echo "$ac_cv_sizeof_uint64_t" >&6; } -$as_echo "#define HAVE_FILTER_SZIP 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT64_T $ac_cv_sizeof_uint64_t +_ACEOF - USE_FILTER_SZIP="yes" - if test ${hdf5_cv_szlib_can_encode} = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - if test ${hdf5_cv_szlib_can_encode} = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_least64_t" >&5 +$as_echo_n "checking size of int_least64_t... " >&6; } +if ${ac_cv_sizeof_int_least64_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_least64_t))" "ac_cv_sizeof_int_least64_t" "$ac_includes_default"; then : - ## Add "szip" to external filter list - if test ${hdf5_cv_szlib_can_encode} = "yes"; then - if test "X$EXTERNAL_FILTERS" != "X"; then - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," - fi - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(encoder)" - fi - if test ${hdf5_cv_szlib_can_encode} = "no"; then - if test "X$EXTERNAL_FILTERS" != "X"; then - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," - fi - EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(no encoder)" - fi +else + if test "$ac_cv_type_int_least64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_least64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_least64_t=0 + fi fi - if test "X$USE_FILTER_SZIP" = "Xyes" && test "X$LL_PATH" != "X"; then - BUILD_SHARED_SZIP_CONDITIONAL_TRUE= - BUILD_SHARED_SZIP_CONDITIONAL_FALSE='#' -else - BUILD_SHARED_SZIP_CONDITIONAL_TRUE='#' - BUILD_SHARED_SZIP_CONDITIONAL_FALSE= fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_least64_t" >&5 +$as_echo "$ac_cv_sizeof_int_least64_t" >&6; } -## Checkpoint the cache -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_LEAST64_T $ac_cv_sizeof_int_least64_t _ACEOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_least64_t" >&5 +$as_echo_n "checking size of uint_least64_t... " >&6; } +if ${ac_cv_sizeof_uint_least64_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_least64_t))" "ac_cv_sizeof_uint_least64_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_uint_least64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_least64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_least64_t=0 + fi fi -rm -f confcache -## ---------------------------------------------------------------------- -## Enable thread-safe version of library. It requires Pthreads support -## on POSIX systems. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread safe support" >&5 -$as_echo_n "checking for thread safe support... " >&6; } -# Check whether --enable-threadsafe was given. -if test "${enable_threadsafe+set}" = set; then : - enableval=$enable_threadsafe; THREADSAFE=$enableval fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_least64_t" >&5 +$as_echo "$ac_cv_sizeof_uint_least64_t" >&6; } -## NOTE: The high-level, C++, and Fortran interfaces are not compatible -## with the thread-safety option because the lock is not hoisted -## into the higher-level API calls. -## The --enable-threadsafe flag is not compatible with --enable-cxx. -## If the user tried to specify both flags, throw an error, unless -## they also provided the --enable-unsupported flag. -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - if test "X${HDF_CXX}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then - as_fn_error $? "--enable-cxx and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 - fi +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_LEAST64_T $ac_cv_sizeof_uint_least64_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int_fast64_t" >&5 +$as_echo_n "checking size of int_fast64_t... " >&6; } +if ${ac_cv_sizeof_int_fast64_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int_fast64_t))" "ac_cv_sizeof_int_fast64_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int_fast64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int_fast64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_fast64_t=0 + fi fi -## --enable-threadsafe is also incompatible with --enable-fortran unless -## --enable-unsupported has been specified on the configure line. -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then - as_fn_error $? "--enable-fortran and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 - fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_fast64_t" >&5 +$as_echo "$ac_cv_sizeof_int_fast64_t" >&6; } -case "X-$THREADSAFE" in - X-|X-no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - X-yes) - THREADSAFE=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 -$as_echo "error" >&6; } - as_fn_error $? "\'$enableval\' is not a valid threadsafe type" "$LINENO" 5 - ;; -esac - -if test "X$THREADSAFE" = "Xyes"; then -$as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_FAST64_T $ac_cv_sizeof_int_fast64_t +_ACEOF - ## ---------------------------------------------------------------------- - ## Is the Pthreads library present? It has a header file `pthread.h' and - ## a library `-lpthread' and their locations might be specified with the - ## `--with-pthread' command-line switch. The value is an include path - ## and/or a library path. If the library path is specified then it must - ## be preceded by a comma. - ## - ## Thread-safety in HDF5 only uses Pthreads via configure, so the - ## default is "check", though this only has an effect when - ## --enable-threadsafe is specified. - HAVE_PTHREAD=yes +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint_fast64_t" >&5 +$as_echo_n "checking size of uint_fast64_t... " >&6; } +if ${ac_cv_sizeof_uint_fast64_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint_fast64_t))" "ac_cv_sizeof_uint_fast64_t" "$ac_includes_default"; then : -# Check whether --with-pthread was given. -if test "${with_pthread+set}" = set; then : - withval=$with_pthread; else - withval=check + if test "$ac_cv_type_uint_fast64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (uint_fast64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_uint_fast64_t=0 + fi fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint_fast64_t" >&5 +$as_echo "$ac_cv_sizeof_uint_fast64_t" >&6; } - case "$withval" in - check | yes) - for ac_header in pthread.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_H 1 + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINT_FAST64_T $ac_cv_sizeof_uint_fast64_t _ACEOF -else - unset HAVE_PTHREAD -fi -done - if test "x$HAVE_PTHREAD" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 -$as_echo_n "checking for pthread_self in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_self+:} false; then : +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +$as_echo_n "checking size of size_t... " >&6; } +if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_self (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return pthread_self (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_self=yes else - ac_cv_lib_pthread_pthread_self=no + if test "$ac_cv_type_size_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_size_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } -if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +$as_echo "$ac_cv_sizeof_size_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t _ACEOF - LIBS="-lpthread $LIBS" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5 +$as_echo_n "checking size of ssize_t... " >&6; } +if ${ac_cv_sizeof_ssize_t+:} false; then : + $as_echo_n "(cached) " >&6 else - unset HAVE_PTHREAD + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_ssize_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (ssize_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_ssize_t=0 + fi fi - fi - ;; - no) - as_fn_error $? "Must use Pthreads with thread safety" "$LINENO" 5 - ;; - *) - case "$withval" in - *,*) - pthread_inc="`echo $withval | cut -f1 -d,`" - pthread_lib="`echo $withval | cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - pthread_inc="$withval/include" - pthread_lib="$withval/lib" - fi - ;; - esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ssize_t" >&5 +$as_echo "$ac_cv_sizeof_ssize_t" >&6; } - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$pthread_inc" = "X/usr/include"; then - pthread_inc="" - fi - if test "X$pthread_lib" = "X/usr/lib"; then - pthread_lib="" - fi - if test -n "$pthread_inc"; then - saved_CPPFLAGS="$CPPFLAGS" - saved_AM_CPPFLAGS="$AM_CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$pthread_inc" - AM_CPPFLAGS="$AM_CPPFLAGS -I$pthread_inc" - for ac_header in pthread.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_H 1 + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t _ACEOF + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ptrdiff_t" >&5 +$as_echo_n "checking size of ptrdiff_t... " >&6; } +if ${ac_cv_sizeof_ptrdiff_t+:} false; then : + $as_echo_n "(cached) " >&6 else - CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS"; unset HAVE_PTHREAD + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ptrdiff_t))" "ac_cv_sizeof_ptrdiff_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_ptrdiff_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (ptrdiff_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_ptrdiff_t=0 + fi fi -done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ptrdiff_t" >&5 +$as_echo "$ac_cv_sizeof_ptrdiff_t" >&6; } - else - for ac_header in pthread.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_H 1 -_ACEOF -else - unset HAVE_PTHREAD -fi -done +cat >>confdefs.h <<_ACEOF +#define SIZEOF_PTRDIFF_T $ac_cv_sizeof_ptrdiff_t +_ACEOF - fi - if test "x$HAVE_PTHREAD" = "xyes"; then - if test -n "$pthread_lib"; then - saved_LDFLAGS="$LDFLAGS" - saved_AM_LDFLAGS="$AM_LDFLAGS" - LDFLAGS="$LDFLAGS -L$pthread_lib" - AM_LDFLAGS="$AM_LDFLAGS -L$pthread_lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 -$as_echo_n "checking for pthread_self in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_self+:} false; then : + +cat >>confdefs.h <<\EOF +#include /*for off_t definition*/ +EOF +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 +$as_echo_n "checking size of off_t... " >&6; } +if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_self (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return pthread_self (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_self=yes else - ac_cv_lib_pthread_pthread_self=no + if test "$ac_cv_type_off_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (off_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_off_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } -if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 +$as_echo "$ac_cv_sizeof_off_t" >&6; } - LIBS="-lpthread $LIBS" -else - LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_PTHREAD -fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 -$as_echo_n "checking for pthread_self in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_self+:} false; then : +cat >>confdefs.h <<_ACEOF +#define SIZEOF_OFF_T $ac_cv_sizeof_off_t +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off64_t" >&5 +$as_echo_n "checking size of off64_t... " >&6; } +if ${ac_cv_sizeof_off64_t+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off64_t))" "ac_cv_sizeof_off64_t" "$ac_includes_default"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_self (); -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -return pthread_self (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_self=yes else - ac_cv_lib_pthread_pthread_self=no + if test "$ac_cv_type_off64_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (off64_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_off64_t=0 + fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } -if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off64_t" >&5 +$as_echo "$ac_cv_sizeof_off64_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_OFF64_T $ac_cv_sizeof_off64_t _ACEOF - LIBS="-lpthread $LIBS" -else - unset HAVE_PTHREAD -fi - fi - fi - ;; +## Checkpoint the cache +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; esac + done - ## ---------------------------------------------------------------------- - ## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) - ## is supported on this system - ## - ## Unfortunately, this probably needs to be an AC_RUN_IFELSE since - ## it's impossible to determine if PTHREAD_SCOPE_SYSTEM is - ## supported a priori. POSIX.1-2001 requires that a conformant - ## system need only support one of SYSTEM or PROCESS scopes. - ## - ## For cross-compiling, we've added a pessimistic 'no'. You can - ## hand-hack the config file if you know otherwise. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Pthreads supports system scope" >&5 -$as_echo_n "checking Pthreads supports system scope... " >&6; } - if ${hdf5_cv_system_scope_threads+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - hdf5_cv_system_scope_threads=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +## ---------------------------------------------------------------------- +## Check if the dev_t type is a scalar type (must come after the check for +## sys/types.h) +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dev_t is scalar" >&5 +$as_echo_n "checking if dev_t is scalar... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #if STDC_HEADERS - #include - #include - #endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 @@ -26133,117 +24394,86 @@ else int main () { - - int main(void) - { - pthread_attr_t attribute; - int ret; - - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); - } - +dev_t d1, d2; if(d1==d2) return 0; ; return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_system_scope_threads=yes -else - hdf5_cv_system_scope_threads=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - - if test ${hdf5_cv_system_scope_threads} = "yes"; then +if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define SYSTEM_SCOPE_THREADS 1" >>confdefs.h +$as_echo "#define DEV_T_IS_SCALAR 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&5 -$as_echo "$as_me: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&6;} - fi + fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ## ---------------------------------------------------------------------- -## Check for MONOTONIC_TIMER support (used in clock_gettime). This has -## to be done after any POSIX/BSD defines to ensure that the test gets -## the correct POSIX level on linux. -ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include -" -if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then : - have_clock_monotonic="yes" -else - have_clock_monotonic="no" +## Fake --with-xxx option to allow us to create a help message for the +## following --with-xxx options which can take either a =DIR or =INC,LIB +## specifier. +## + +# Check whether --with-fnord was given. +if test "${with_fnord+set}" = set; then : + withval=$with_fnord; fi ## ---------------------------------------------------------------------- -## How does one figure out the local time zone? Anyone know of a -## Posix way to do this? +## Is the dmalloc present? It has a header file `dmalloc.h' and a library +## `-ldmalloc' and their locations might be specified with the `--with-dmalloc' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. ## -## First check if `struct tm' has a `tm_gmtoff' member. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tm_gmtoff in struct tm" >&5 -$as_echo_n "checking for tm_gmtoff in struct tm... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +# Check whether --with-dmalloc was given. +if test "${with_dmalloc+set}" = set; then : + withval=$with_dmalloc; +else + withval=no +fi - #include - #include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct tm tm; tm.tm_gmtoff=0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h +case $withval in + yes) + HAVE_DMALLOC="yes" + for ac_header in dmalloc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dmalloc.h" "ac_cv_header_dmalloc_h" "$ac_includes_default" +if test "x$ac_cv_header_dmalloc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DMALLOC_H 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + unset HAVE_DMALLOC fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -## Check whether the global variable `timezone' is defined. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5 -$as_echo_n "checking for global timezone variable... " >&6; } +done -case "`uname`" in - CYGWIN*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled in CYGWIN" >&5 -$as_echo "disabled in CYGWIN" >&6; } - ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "x$HAVE_DMALLOC" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc_shutdown in -ldmalloc" >&5 +$as_echo_n "checking for dmalloc_shutdown in -ldmalloc... " >&6; } +if ${ac_cv_lib_dmalloc_dmalloc_shutdown+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldmalloc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dmalloc_shutdown (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26255,36 +24485,108 @@ $as_echo "disabled in CYGWIN" >&6; } int main () { -timezone=0; +return dmalloc_shutdown (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - -$as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ac_cv_lib_dmalloc_dmalloc_shutdown=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_lib_dmalloc_dmalloc_shutdown=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_shutdown" >&5 +$as_echo "$ac_cv_lib_dmalloc_dmalloc_shutdown" >&6; } +if test "x$ac_cv_lib_dmalloc_dmalloc_shutdown" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDMALLOC 1 +_ACEOF + + LIBS="-ldmalloc $LIBS" + +else + unset HAVE_DMALLOC +fi + + fi + if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find dmalloc library" "$LINENO" 5 + fi ;; -esac + no) + HAVE_DMALLOC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc library" >&5 +$as_echo_n "checking for dmalloc library... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 +$as_echo "suppressed" >&6; } + ;; + *) + HAVE_DMALLOC="yes" + case "$withval" in + *,*) + dmalloc_inc="`echo $withval |cut -f1 -d,`" + dmalloc_lib="`echo $withval |cut -f2 -d, -s`" + ;; + *) + if test -n "$withval"; then + dmalloc_inc="$withval/include" + dmalloc_lib="$withval/lib" + fi + ;; + esac + saved_CPPFLAGS="$CPPFLAGS" + saved_AM_CPPFLAGS="$AM_CPPFLAGS" + saved_LDFLAGS="$LDFLAGS" + saved_AM_LDFLAGS="$AM_LDFLAGS" -## ---------------------------------------------------------------------- -## Does the struct stat have the st_blocks field? This field is not Posix. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blocks in struct stat" >&5 -$as_echo_n "checking for st_blocks in struct stat... " >&6; } + if test -n "$dmalloc_inc"; then + CPPFLAGS="$CPPFLAGS -I$dmalloc_inc" + AM_CPPFLAGS="$AM_CPPFLAGS -I$dmalloc_inc" + fi + + for ac_header in dmalloc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dmalloc.h" "ac_cv_header_dmalloc_h" "$ac_includes_default" +if test "x$ac_cv_header_dmalloc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DMALLOC_H 1 +_ACEOF + +else + CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_DMALLOC +fi + +done + + + if test "x$HAVE_DMALLOC" = "xyes"; then + if test -n "$dmalloc_lib"; then + LDFLAGS="$LDFLAGS -L$dmalloc_lib" + AM_LDFLAGS="$AM_LDFLAGS -L$dmalloc_lib" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmalloc_shutdown in -ldmalloc" >&5 +$as_echo_n "checking for dmalloc_shutdown in -ldmalloc... " >&6; } +if ${ac_cv_lib_dmalloc_dmalloc_shutdown+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldmalloc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dmalloc_shutdown (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26296,73 +24598,92 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext int main () { -struct stat sb; sb.st_blocks=0; +return dmalloc_shutdown (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_STAT_ST_BLOCKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dmalloc_dmalloc_shutdown=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_lib_dmalloc_dmalloc_shutdown=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -## ---------------------------------------------------------------------- -## How do we figure out the width of a tty in characters? -## -for ac_func in _getvideoconfig gettextinfo -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_shutdown" >&5 +$as_echo "$ac_cv_lib_dmalloc_dmalloc_shutdown" >&6; } +if test "x$ac_cv_lib_dmalloc_dmalloc_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBDMALLOC 1 _ACEOF + LIBS="-ldmalloc $LIBS" + +else + LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_DMALLOC fi -done -case "`uname`" in - CYGWIN*) + fi + + if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find dmalloc library" "$LINENO" 5 + fi ;; - *) - for ac_func in GetConsoleScreenBufferInfo -do : - ac_fn_c_check_func "$LINENO" "GetConsoleScreenBufferInfo" "ac_cv_func_GetConsoleScreenBufferInfo" -if test "x$ac_cv_func_GetConsoleScreenBufferInfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETCONSOLESCREENBUFFERINFO 1 -_ACEOF +esac + +## ---------------------------------------------------------------------- +## Is the GNU zlib present? It has a header file `zlib.h' and a library +## `-lz' and their locations might be specified with the `--with-zlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## + USE_FILTER_DEFLATE="no" +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; +else + withval=yes fi -done - ;; -esac -for ac_func in _scrsize ioctl + +case $withval in + yes) + HAVE_ZLIB="yes" + for ac_header in zlib.h do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_ZLIB_H 1 _ACEOF - + HAVE_ZLIB_H="yes" +else + unset HAVE_ZLIB fi -done +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct videoconfig" >&5 -$as_echo_n "checking for struct videoconfig... " >&6; } + if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 +$as_echo_n "checking for compress2 in -lz... " >&6; } +if ${ac_cv_lib_z_compress2+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26374,94 +24695,116 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext int main () { -struct videoconfig w; w.numtextcols=0; +return compress2 (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_compress2=yes +else + ac_cv_lib_z_compress2=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 +$as_echo "$ac_cv_lib_z_compress2" >&6; } +if test "x$ac_cv_lib_z_compress2" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF -$as_echo "#define HAVE_STRUCT_VIDEOCONFIG 1" >>confdefs.h + LIBS="-lz $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + unset HAVE_ZLIB fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct text_info" >&5 -$as_echo_n "checking for struct text_info... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + fi + if test -z "$HAVE_ZLIB"; then + if test -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find zlib library" "$LINENO" 5 + fi + else + ac_fn_c_check_func "$LINENO" "compress2" "ac_cv_func_compress2" +if test "x$ac_cv_func_compress2" = xyes; then : + HAVE_COMPRESS2="yes" +fi -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct text_info w; w.screenwidth=0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + fi + ;; + no) + HAVE_ZLIB="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib" >&5 +$as_echo_n "checking for zlib... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 +$as_echo "suppressed" >&6; } + ;; + *) + HAVE_ZLIB="yes" + case "$withval" in + *,*) + zlib_inc="`echo $withval | cut -f1 -d,`" + zlib_lib="`echo $withval | cut -f2 -d, -s`" + ;; + *) + if test -n "$withval"; then + zlib_inc="$withval/include" + zlib_lib="$withval/lib" + fi + ;; + esac -$as_echo "#define HAVE_STRUCT_TEXT_INFO 1" >>confdefs.h + saved_CPPFLAGS="$CPPFLAGS" + saved_AM_CPPFLAGS="$AM_CPPFLAGS" + saved_LDFLAGS="$LDFLAGS" + saved_AM_LDFLAGS="$AM_LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test -n "$zlib_inc"; then + CPPFLAGS="$CPPFLAGS -I$zlib_inc" + AM_CPPFLAGS="$AM_CPPFLAGS -I$zlib_inc" + fi + + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + HAVE_ZLIB_H="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_ZLIB fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCGWINSZ" >&5 -$as_echo_n "checking for TIOCGWINSZ... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -int w=TIOCGWINSZ; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +done -$as_echo "#define HAVE_TIOCGWINSZ 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test -n "$zlib_lib"; then + LDFLAGS="$LDFLAGS -L$zlib_lib" + AM_LDFLAGS="$AM_LDFLAGS -L$zlib_lib" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCGETD" >&5 -$as_echo_n "checking for TIOCGETD... " >&6; } + if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 +$as_echo_n "checking for compress2 in -lz... " >&6; } +if ${ac_cv_lib_z_compress2+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26473,35 +24816,104 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext int main () { -int w=TIOCGETD; +return compress2 (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_compress2=yes +else + ac_cv_lib_z_compress2=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 +$as_echo "$ac_cv_lib_z_compress2" >&6; } +if test "x$ac_cv_lib_z_compress2" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF -$as_echo "#define HAVE_TIOCGETD 1" >>confdefs.h + LIBS="-lz $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_ZLIB +fi + + fi + + if test -z "$HAVE_ZLIB"; then + if test -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find zlib library" "$LINENO" 5 + fi + else + ac_fn_c_check_func "$LINENO" "compress2" "ac_cv_func_compress2" +if test "x$ac_cv_func_compress2" = xyes; then : + HAVE_COMPRESS2="yes" +fi + + fi + ;; +esac + +if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" = "xyes"; then + +$as_echo "#define HAVE_FILTER_DEFLATE 1" >>confdefs.h + + USE_FILTER_DEFLATE="yes" + + ## Add "deflate" to external filter list + if test "X$EXTERNAL_FILTERS" != "X"; then + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," + fi + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}deflate(zlib)" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ## ---------------------------------------------------------------------- -## Check for functions. +## Is the szlib present? It has a header file `szlib.h' and a library +## `-lsz' and their locations might be specified with the `--with-szlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. ## -## NOTE: clock_gettime may require linking to the rt or posix4 library -## so we'll search for it before calling AC_CHECK_FUNCS. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 -$as_echo_n "checking for library containing clock_gettime... " >&6; } -if ${ac_cv_search_clock_gettime+:} false; then : + USE_FILTER_SZIP="no" + +# Check whether --with-szlib was given. +if test "${with_szlib+set}" = set; then : + withval=$with_szlib; +else + withval=no +fi + + +case $withval in + yes) + HAVE_SZLIB="yes" + for ac_header in szlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "szlib.h" "ac_cv_header_szlib_h" "$ac_includes_default" +if test "x$ac_cv_header_szlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SZLIB_H 1 +_ACEOF + HAVE_SZLIB_H="yes" +else + unset HAVE_SZLIB +fi + +done + + if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SZ_BufftoBuffCompress in -lsz" >&5 +$as_echo_n "checking for SZ_BufftoBuffCompress in -lsz... " >&6; } +if ${ac_cv_lib_sz_SZ_BufftoBuffCompress+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26511,7 +24923,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char clock_gettime (); +char SZ_BufftoBuffCompress (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26523,141 +24935,171 @@ char clock_gettime (); int main () { -return clock_gettime (); +return SZ_BufftoBuffCompress (); ; return 0; } _ACEOF -for ac_lib in '' rt posix4; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_clock_gettime=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sz_SZ_BufftoBuffCompress=yes +else + ac_cv_lib_sz_SZ_BufftoBuffCompress=no fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_clock_gettime+:} false; then : - break + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done -if ${ac_cv_search_clock_gettime+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 +$as_echo "$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } +if test "x$ac_cv_lib_sz_SZ_BufftoBuffCompress" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSZ 1 +_ACEOF + + LIBS="-lsz $LIBS" else - ac_cv_search_clock_gettime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + unset HAVE_SZLIB fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 -$as_echo "$ac_cv_search_clock_gettime" >&6; } -ac_res=$ac_cv_search_clock_gettime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -fi + fi + if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find szlib library" "$LINENO" 5 + fi + ;; + no) + HAVE_SZLIB="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib" >&5 +$as_echo_n "checking for szlib... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 +$as_echo "suppressed" >&6; } + ;; + *) + HAVE_SZLIB="yes" + case "$withval" in + *,*) + szlib_inc="`echo $withval |cut -f1 -d,`" + szlib_lib="`echo $withval |cut -f2 -d, -s`" + ;; + *) + if test -n "$withval"; then + szlib_inc="$withval/include" + szlib_lib="$withval/lib" + fi + ;; + esac -for ac_func in alarm clock_gettime difftime fork frexpf frexpl -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF + saved_CPPFLAGS="$CPPFLAGS" + saved_AM_CPPFLAGS="$AM_CPPFLAGS" + saved_LDFLAGS="$LDFLAGS" + saved_AM_LDFLAGS="$AM_LDFLAGS" -fi -done + if test -n "$szlib_inc"; then + CPPFLAGS="$CPPFLAGS -I$szlib_inc" + AM_CPPFLAGS="$AM_CPPFLAGS -I$szlib_inc" + fi -for ac_func in gethostname getpwuid getrusage gettimeofday + for ac_header in szlib.h do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "szlib.h" "ac_cv_header_szlib_h" "$ac_includes_default" +if test "x$ac_cv_header_szlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_SZLIB_H 1 _ACEOF - + HAVE_SZLIB_H="yes" +else + CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS" unset HAVE_SZLIB fi + done -for ac_func in lstat rand_r random setsysinfo -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + + if test -n "$szlib_lib"; then + LDFLAGS="$LDFLAGS -L$szlib_lib" + AM_LDFLAGS="$AM_LDFLAGS -L$szlib_lib" + fi + + if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SZ_BufftoBuffCompress in -lsz" >&5 +$as_echo_n "checking for SZ_BufftoBuffCompress in -lsz... " >&6; } +if ${ac_cv_lib_sz_SZ_BufftoBuffCompress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SZ_BufftoBuffCompress (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return SZ_BufftoBuffCompress (); + ; + return 0; +} _ACEOF - +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sz_SZ_BufftoBuffCompress=yes +else + ac_cv_lib_sz_SZ_BufftoBuffCompress=no fi -done - -for ac_func in signal longjmp setjmp siglongjmp sigsetjmp sigprocmask -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 +$as_echo "$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } +if test "x$ac_cv_lib_sz_SZ_BufftoBuffCompress" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBSZ 1 _ACEOF + LIBS="-lsz $LIBS" + +else + LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_SZLIB fi -done -for ac_func in snprintf srandom strdup symlink system -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF + fi -fi -done + if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then + as_fn_error $? "couldn't find szlib library" "$LINENO" 5 + fi + ;; +esac -for ac_func in tmpfile asprintf vasprintf waitpid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then + ## SZLIB library is available. Check if it can encode + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 +$as_echo_n "checking for szlib encoder... " >&6; } -fi -done + ## Set LD_LIBRARY_PATH so encoder test can find the library and run. + ## Also add LL_PATH substitution to Makefiles so they can use the + ## path as well, for testing examples. + if test -z "$LD_LIBRARY_PATH"; then + export LD_LIBRARY_PATH="$szlib_lib" + else + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$szlib_lib" + fi + LL_PATH="$LD_LIBRARY_PATH" -## Check for vsnprintf() separately, so we can detect situations where it -## doesn't return the correct size for formatted strings that are too large -## for the buffer provided -for ac_func in vsnprintf -do : - ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" -if test "x$ac_cv_func_vsnprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VSNPRINTF 1 -_ACEOF - ## Check if vsnprintf() returns correct size for strings that don't fit - ## into the size allowed. If vsnprintf() works correctly on this platform, - ## it should return a value of 42 for the test below - ## - ## Note that vsnprintf fails in two different ways: - ## - In IRIX64, calls to vnsprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return the size of the buffer minus one. - ## - In HP/UX, calls to vsnprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return (-1) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 -$as_echo_n "checking if vsnprintf returns correct value... " >&6; } - - if ${hdf5_cv_vsnprintf_works+:} false; then : + if ${hdf5_cv_szlib_can_encode+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -26669,99 +25111,279 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include + #include "szlib.h" -int test_vsnprintf(const char *fmt,...) +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () { - va_list ap; - char *s = malloc(16); - int ret; - va_start(ap, fmt); - ret=vsnprintf(s,16,"%s",ap); - va_end(ap); - - return(ret!=42 ? 1 : 0); -} + /* SZ_encoder_enabled returns 1 if encoder is present */ + if(SZ_encoder_enabled() == 1) + exit(0); + else + exit(1); -int main(void) -{ - exit(test_vsnprintf("%s","A string that is longer than 16 characters")); + ; + return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_vsnprintf_works=yes + hdf5_cv_szlib_can_encode=yes else - hdf5_cv_vsnprintf_works=no + hdf5_cv_szlib_can_encode=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + +fi + + + +$as_echo "#define HAVE_FILTER_SZIP 1" >>confdefs.h + + USE_FILTER_SZIP="yes" + + if test ${hdf5_cv_szlib_can_encode} = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + if test ${hdf5_cv_szlib_can_encode} = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + ## Add "szip" to external filter list + if test ${hdf5_cv_szlib_can_encode} = "yes"; then + if test "X$EXTERNAL_FILTERS" != "X"; then + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," + fi + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(encoder)" + fi + if test ${hdf5_cv_szlib_can_encode} = "no"; then + if test "X$EXTERNAL_FILTERS" != "X"; then + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," + fi + EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(no encoder)" + fi +fi + + if test "X$USE_FILTER_SZIP" = "Xyes" && test "X$LL_PATH" != "X"; then + BUILD_SHARED_SZIP_CONDITIONAL_TRUE= + BUILD_SHARED_SZIP_CONDITIONAL_FALSE='#' +else + BUILD_SHARED_SZIP_CONDITIONAL_TRUE='#' + BUILD_SHARED_SZIP_CONDITIONAL_FALSE= +fi + + +## Checkpoint the cache +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +## ---------------------------------------------------------------------- +## Enable thread-safe version of library. It requires Pthreads support +## on POSIX systems. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread safe support" >&5 +$as_echo_n "checking for thread safe support... " >&6; } +# Check whether --enable-threadsafe was given. +if test "${enable_threadsafe+set}" = set; then : + enableval=$enable_threadsafe; THREADSAFE=$enableval +fi + + +## NOTE: The high-level, C++, and Fortran interfaces are not compatible +## with the thread-safety option because the lock is not hoisted +## into the higher-level API calls. + +## The --enable-threadsafe flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_CXX}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + as_fn_error $? "--enable-cxx and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi +fi + +## --enable-threadsafe is also incompatible with --enable-fortran unless +## --enable-unsupported has been specified on the configure line. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + as_fn_error $? "--enable-fortran and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi fi - if test ${hdf5_cv_vsnprintf_works} = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +case "X-$THREADSAFE" in + X-|X-no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + X-yes) + THREADSAFE=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 +$as_echo "error" >&6; } + as_fn_error $? "\'$enableval\' is not a valid threadsafe type" "$LINENO" 5 + ;; +esac -$as_echo "#define VSNPRINTF_WORKS 1" >>confdefs.h +if test "X$THREADSAFE" = "Xyes"; then - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi +$as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h -fi -done + ## ---------------------------------------------------------------------- + ## Is the Pthreads library present? It has a header file `pthread.h' and + ## a library `-lpthread' and their locations might be specified with the + ## `--with-pthread' command-line switch. The value is an include path + ## and/or a library path. If the library path is specified then it must + ## be preceded by a comma. + ## + ## Thread-safety in HDF5 only uses Pthreads via configure, so the + ## default is "check", though this only has an effect when + ## --enable-threadsafe is specified. + HAVE_PTHREAD=yes -## ---------------------------------------------------------------------- -## Check that a lone colon can be used as an argument -## This is not true on Cray X1, which interprets a lone colon as a -## system command. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if lone colon can be used as an argument" >&5 -$as_echo_n "checking if lone colon can be used as an argument... " >&6; } -if ${hdf5_cv_lone_colon+:} false; then : - $as_echo_n "(cached) " >&6 +# Check whether --with-pthread was given. +if test "${with_pthread+set}" = set; then : + withval=$with_pthread; else + withval=check +fi - echo "int main(int argc, char * argv) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh - chmod 700 conftest.sh - - ./conftest.sh 2> conftest.out - rm -f a.out - TEST_OUTPUT=`cat conftest.out` - if test "X$TEST_OUTPUT" = "X"; then - hdf5_cv_lone_colon=yes - else - hdf5_cv_lone_colon=no - fi + case "$withval" in + check | yes) + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 +_ACEOF +else + unset HAVE_PTHREAD fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hdf5_cv_lone_colon" >&5 -$as_echo "$hdf5_cv_lone_colon" >&6; } - H5_LONE_COLON="$hdf5_cv_lone_colon" +done -## ---------------------------------------------------------------------- -## Check compiler characteristics -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : + if test "x$HAVE_PTHREAD" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 +$as_echo_n "checking for pthread_self in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_self+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_self (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26773,157 +25395,111 @@ else int main () { - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - +return pthread_self (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_self=yes else - ac_cv_c_const=no + ac_cv_lib_pthread_pthread_self=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } +if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF -$as_echo "#define const /**/" >>confdefs.h + LIBS="-lpthread $LIBS" +else + unset HAVE_PTHREAD fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif + fi + ;; + no) + as_fn_error $? "Must use Pthreads with thread safety" "$LINENO" 5 + ;; + *) + case "$withval" in + *,*) + pthread_inc="`echo $withval | cut -f1 -d,`" + pthread_lib="`echo $withval | cut -f2 -d, -s`" + ;; + *) + if test -n "$withval"; then + pthread_inc="$withval/include" + pthread_lib="$withval/lib" + fi + ;; + esac + if test -n "$pthread_inc"; then + saved_CPPFLAGS="$CPPFLAGS" + saved_AM_CPPFLAGS="$AM_CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$pthread_inc" + AM_CPPFLAGS="$AM_CPPFLAGS -I$pthread_inc" + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done +else + CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS"; unset HAVE_PTHREAD fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac +done + else + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ extension" >&5 -$as_echo_n "checking for __attribute__ extension... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +else + unset HAVE_PTHREAD +fi -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -int __attribute__((unused)) x - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +done -$as_echo "#define HAVE_ATTRIBUTE 1" >>confdefs.h + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "x$HAVE_PTHREAD" = "xyes"; then + if test -n "$pthread_lib"; then + saved_LDFLAGS="$LDFLAGS" + saved_AM_LDFLAGS="$AM_LDFLAGS" + LDFLAGS="$LDFLAGS -L$pthread_lib" + AM_LDFLAGS="$AM_LDFLAGS -L$pthread_lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 +$as_echo_n "checking for pthread_self in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_self+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __func__ extension" >&5 -$as_echo_n "checking for __func__ extension... " >&6; } + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_self (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26935,27 +25511,51 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext int main () { - const char *fname = __func__; +return pthread_self (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_self=yes +else + ac_cv_lib_pthread_pthread_self=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } +if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF -$as_echo "#define HAVE_C99_FUNC 1" >>confdefs.h + LIBS="-lpthread $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_PTHREAD fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __FUNCTION__ extension" >&5 -$as_echo_n "checking for __FUNCTION__ extension... " >&6; } + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5 +$as_echo_n "checking for pthread_self in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_self (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26967,27 +25567,65 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext int main () { - const char *fname = __FUNCTION__; +return pthread_self (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_self=yes +else + ac_cv_lib_pthread_pthread_self=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; } +if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF -$as_echo "#define HAVE_FUNCTION 1" >>confdefs.h + LIBS="-lpthread $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + unset HAVE_PTHREAD fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initialization support" >&5 -$as_echo_n "checking for C99 designated initialization support... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + fi + fi + ;; + esac + + ## ---------------------------------------------------------------------- + ## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) + ## is supported on this system + ## + ## Unfortunately, this probably needs to be an AC_RUN_IFELSE since + ## it's impossible to determine if PTHREAD_SCOPE_SYSTEM is + ## supported a priori. POSIX.1-2001 requires that a conformant + ## system need only support one of SYSTEM or PROCESS scopes. + ## + ## For cross-compiling, we've added a pessimistic 'no'. You can + ## hand-hack the config file if you know otherwise. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Pthreads supports system scope" >&5 +$as_echo_n "checking Pthreads supports system scope... " >&6; } + if ${hdf5_cv_system_scope_threads+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + hdf5_cv_system_scope_threads=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #if STDC_HEADERS + #include + #include + #endif + #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26998,463 +25636,333 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int main () -{ - - typedef struct { - int x; - union { - int i; - double d; - } u; - } di_struct_t; - di_struct_t x = {0, { .d = 0.0}}; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_C99_DESIGNATED_INITIALIZER 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -## ---------------------------------------------------------------------- -## Try to figure out how to print `long long'. Some machines use `%lld' -## and others use `%qd'. There may be more! The final `l' is a -## default in case none of the others work. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print long long" >&5 -$as_echo_n "checking how to print long long... " >&6; } -if ${hdf5_cv_printf_ll+:} false; then : - $as_echo_n "(cached) " >&6 -else - - -for hdf5_cv_printf_ll in l ll L q unknown; do - if test "$cross_compiling" = yes; then : - continue -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #include - - int main(void) - { - char *s = malloc(128); - long long x = (long long)1048576 * (long long)1048576; - sprintf(s,"%${hdf5_cv_printf_ll}d",x); - exit(strcmp(s,"1099511627776")); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - break -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -done -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: %${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&5 -$as_echo "%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&6; } - -cat >>confdefs.h <<_ACEOF -#define PRINTF_LL_WIDTH "$hdf5_cv_printf_ll" -_ACEOF - - - -## ---------------------------------------------------------------------- -## Turn on debugging by setting compiler flags -## This must come after the enable-production since it depends on production. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for debug flags" >&5 -$as_echo_n "checking for debug flags... " >&6; } -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; DEBUG_PKG=$enableval -fi - - -## Default to no if producton is enabled -if test "X-$DEBUG_PKG" = X- ; then - if test "$enable_production" = yes ; then - DEBUG_PKG=no - else - DEBUG_PKG=yes - fi -fi - - -all_packages="ac,b,b2,d,e,f,g,hg,hl,i,mf,mm,o,p,s,t,v,z" -case "X-$DEBUG_PKG" in - X-yes) - DEBUG_PKG="d,e,f,g,hg,i,mm,o,p,s,t,v,z" - H5_CPPFLAGS="$H5_CPPFLAGS -UNDEBUG" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default ($DEBUG_PKG)" >&5 -$as_echo "default ($DEBUG_PKG)" >&6; } - ;; - X-all) - DEBUG_PKG=$all_packages - H5_CPPFLAGS="$H5_CPPFLAGS -UNDEBUG" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: all ($DEBUG_PKG)" >&5 -$as_echo "all ($DEBUG_PKG)" >&6; } - ;; - X-no|X-none) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } - DEBUG_PKG= - H5_CPPFLAGS="$H5_CPPFLAGS -DNDEBUG" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEBUG_PKG" >&5 -$as_echo "$DEBUG_PKG" >&6; } - ;; -esac - -if test -n "$DEBUG_PKG"; then - for pkg in `echo $DEBUG_PKG | ${TR} ${as_cr_letters}"," ${as_cr_LETTERS}" "`; do - H5_CPPFLAGS="$H5_CPPFLAGS -DH5${pkg}_DEBUG" - done -fi - -## ---------------------------------------------------------------------- -## Check if they would like the function stack support compiled in -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether function stack tracking is enabled" >&5 -$as_echo_n "checking whether function stack tracking is enabled... " >&6; } -# Check whether --enable-codestack was given. -if test "${enable_codestack+set}" = set; then : - enableval=$enable_codestack; CODESTACK=$enableval -fi +{ + pthread_attr_t attribute; + int ret; -case "X-$CODESTACK" in - X-yes) - CODESTACK=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); -$as_echo "#define HAVE_CODESTACK 1" >>confdefs.h + ; + return 0; +} - ;; - *) - CODESTACK=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + hdf5_cv_system_scope_threads=yes +else + hdf5_cv_system_scope_threads=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -## ---------------------------------------------------------------------- -## Check if they would like the metadata trace file code compiled in -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether metadata trace file code is enabled" >&5 -$as_echo_n "checking whether metadata trace file code is enabled... " >&6; } -# Check whether --enable-metadata-trace-file was given. -if test "${enable_metadata_trace_file+set}" = set; then : - enableval=$enable_metadata_trace_file; METADATATRACEFILE=$enableval fi -case "X-$METADATATRACEFILE" in - X-yes) - METADATATRACEFILE=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test ${hdf5_cv_system_scope_threads} = "yes"; then -$as_echo "#define METADATA_TRACE_FILE 1" >>confdefs.h +$as_echo "#define SYSTEM_SCOPE_THREADS 1" >>confdefs.h - ;; - *) - METADATATRACEFILE=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - ;; -esac - -## ---------------------------------------------------------------------- -## Enable tracing of the API -## This must come after the enable-debug since it depends on debug. -## - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for API tracing" >&5 -$as_echo_n "checking for API tracing... " >&6; }; -# Check whether --enable-trace was given. -if test "${enable_trace+set}" = set; then : - enableval=$enable_trace; TRACE=$enableval + { $as_echo "$as_me:${as_lineno-$LINENO}: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&5 +$as_echo "$as_me: Always 'no' if cross-compiling. Edit the config file if your platform supports pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM)." >&6;} + fi fi - -## Default to no if debug is disabled -if test "X-$TRACE" = X- ; then - if test -z "$DEBUG_PKG" ; then - TRACE=no - else - TRACE=yes - fi +## ---------------------------------------------------------------------- +## Check for MONOTONIC_TIMER support (used in clock_gettime). This has +## to be done after any POSIX/BSD defines to ensure that the test gets +## the correct POSIX level on linux. +ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include +" +if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then : + have_clock_monotonic="yes" +else + have_clock_monotonic="no" fi -case "X-$TRACE" in - X-yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - TRACE_API=yes - H5_CPPFLAGS="$H5_CPPFLAGS -DH5_DEBUG_API" - ;; - X-no|*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - TRACE_API=no - H5_CPPFLAGS="$H5_CPPFLAGS -UH5_DEBUG_API" - ;; -esac ## ---------------------------------------------------------------------- -## Enable instrumenting of the library's internal operations -## This must come after the enable-debug since it depends on debug. +## How does one figure out the local time zone? Anyone know of a +## Posix way to do this? ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for instrumented library" >&5 -$as_echo_n "checking for instrumented library... " >&6; }; -# Check whether --enable-instrument was given. -if test "${enable_instrument+set}" = set; then : - enableval=$enable_instrument; INSTRUMENT=$enableval -fi +## First check if `struct tm' has a `tm_gmtoff' member. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tm_gmtoff in struct tm" >&5 +$as_echo_n "checking for tm_gmtoff in struct tm... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + #include + #include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +struct tm tm; tm.tm_gmtoff=0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -## Default to no if debug is disabled -if test "X-$INSTRUMENT" = X- ; then - if test -z "$DEBUG_PKG" ; then - INSTRUMENT=no - else - INSTRUMENT=yes - fi -fi +$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h -case "X-$INSTRUMENT" in - X-yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - INSTRUMENT_LIBRARY=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -$as_echo "#define HAVE_INSTRUMENTED_LIBRARY 1" >>confdefs.h +## Check whether the global variable `timezone' is defined. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5 +$as_echo_n "checking for global timezone variable... " >&6; } +case "`uname`" in + CYGWIN*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled in CYGWIN" >&5 +$as_echo "disabled in CYGWIN" >&6; } ;; - X-no|*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - INSTRUMENT_LIBRARY=no - ;; -esac - -## ---------------------------------------------------------------------- -## Check if they would like to securely clear file buffers before they are -## written. -## + *) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to clear file buffers" >&5 -$as_echo_n "checking whether to clear file buffers... " >&6; } -# Check whether --enable-clear-file-buffers was given. -if test "${enable_clear_file_buffers+set}" = set; then : - enableval=$enable_clear_file_buffers; CLEARFILEBUF=$enableval -fi + #include + #include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +timezone=0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : +$as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h -case "X-$CLEARFILEBUF" in - *) - CLEARFILEBUF=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - -$as_echo "#define CLEAR_MEMORY 1" >>confdefs.h - - ;; - X-no) - CLEARFILEBUF=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext ;; esac + ## ---------------------------------------------------------------------- -## Check if they would like to use a memory checking tool (like valgrind's -## 'memcheck' tool, or Rational Purify, etc) and the library should be -## more scrupulous with it's memory operations. Enabling this also -## disables the library's free space manager code. +## Does the struct stat have the st_blocks field? This field is not Posix. ## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blocks in struct stat" >&5 +$as_echo_n "checking for st_blocks in struct stat... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a memory checking tool will be used" >&5 -$as_echo_n "checking whether a memory checking tool will be used... " >&6; } -# Check whether --enable-using-memchecker was given. -if test "${enable_using_memchecker+set}" = set; then : - enableval=$enable_using_memchecker; USINGMEMCHECKER=$enableval + #include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +struct stat sb; sb.st_blocks=0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_STAT_ST_BLOCKS 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## How do we figure out the width of a tty in characters? +## +for ac_func in _getvideoconfig gettextinfo +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -case "X-$USINGMEMCHECKER" in - X-yes) - USINGMEMCHECKER=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define USING_MEMCHECKER 1" >>confdefs.h +fi +done +case "`uname`" in + CYGWIN*) ;; *) - USINGMEMCHECKER=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + for ac_func in GetConsoleScreenBufferInfo +do : + ac_fn_c_check_func "$LINENO" "GetConsoleScreenBufferInfo" "ac_cv_func_GetConsoleScreenBufferInfo" +if test "x$ac_cv_func_GetConsoleScreenBufferInfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETCONSOLESCREENBUFFERINFO 1 +_ACEOF + +fi +done + ;; esac +for ac_func in _scrsize ioctl +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -## Checkpoint the cache -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. +fi +done + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct videoconfig" >&5 +$as_echo_n "checking for struct videoconfig... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +struct videoconfig w; w.numtextcols=0; + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done +$as_echo "#define HAVE_STRUCT_VIDEOCONFIG 1" >>confdefs.h - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f confcache +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -## What header files and libraries do we have to look for for parallel -## support? For the most part, search paths are already specified with -## CPPFLAGS and LDFLAGS or are known to the compiler. -## -# Check whether --enable-parallel was given. -if test "${enable_parallel+set}" = set; then : - enableval=$enable_parallel; -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct text_info" >&5 +$as_echo_n "checking for struct text_info... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +struct text_info w; w.screenwidth=0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -## The --enable-parallel flag is not compatible with --enable-cxx. -## If the user tried to specify both flags, throw an error, unless -## they also provided the --enable-unsupported flag. -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - if test "X${HDF_CXX}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then - as_fn_error $? "--enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 - fi -fi +$as_echo "#define HAVE_STRUCT_TEXT_INFO 1" >>confdefs.h -## --enable-parallel is also incompatible with --enable-threadsafe, unless -## --enable-unsupported has been specified on the configure line. -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - if test "X${THREADSAFE}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then - as_fn_error $? "--enable-threadsafe and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for parallel support files" >&5 -$as_echo_n "checking for parallel support files... " >&6; } -case "X-$enable_parallel" in - X-|X-no|X-none) - ## We are not compiling for parallel. - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 -$as_echo "skipped" >&6; } - ;; +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCGWINSZ" >&5 +$as_echo_n "checking for TIOCGWINSZ... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +int w=TIOCGWINSZ; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - X-yes) - ## We want to compile a parallel library with a compiler that - ## may already know how to link with MPI and MPI-IO. - { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 -$as_echo "provided by compiler" >&6; } - PARALLEL=yes +$as_echo "#define HAVE_TIOCGWINSZ 1" >>confdefs.h - ## Try link a simple MPI program. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO C program can be linked" >&5 -$as_echo_n "checking whether a simple MPI-IO C program can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCGETD" >&5 +$as_echo_n "checking for TIOCGETD... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -27466,159 +25974,306 @@ $as_echo_n "checking whether a simple MPI-IO C program can be linked... " >&6; } int main () { - MPI_Init(0, (void *)0); - MPI_File_open(0, (void *)0, 0, 0, (void *)0); +int w=TIOCGETD; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_TIOCGETD 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "unable to link a simple MPI-IO C program" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "X$HDF_FORTRAN" = "Xyes"; then +## ---------------------------------------------------------------------- +## Check for functions. +## +## NOTE: clock_gettime may require linking to the rt or posix4 library +## so we'll search for it before calling AC_CHECK_FUNCS. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if ${ac_cv_search_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_clock_gettime+:} false; then : + break +fi +done +if ${ac_cv_search_clock_gettime+:} false; then : +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO Fortran program can be linked" >&5 -$as_echo_n "checking whether a simple MPI-IO Fortran program can be linked... " >&6; } - cat > conftest.$ac_ext <<_ACEOF +fi - PROGRAM main - INCLUDE 'mpif.h' - INTEGER :: comm, amode, info, fh, ierror - CHARACTER(LEN=1) :: filename - CALL MPI_File_open( comm, filename, amode, info, fh, ierror) - END +for ac_func in alarm clock_gettime difftime fork frexpf frexpl +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "unable to link a simple MPI-IO Fortran program" "$LINENO" 5 + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +done - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +for ac_func in gethostname getpwuid getrusage gettimeofday +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done - fi +for ac_func in lstat rand_r random setsysinfo +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF - ## Set RUNPARALLEL to mpiexec if not set yet. - if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" - fi - ;; +fi +done - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 -$as_echo "error" >&6; } - as_fn_error $? "\'$enable_parallel\' is not a valid parallel search type" "$LINENO" 5 - ;; -esac +for ac_func in signal longjmp setjmp siglongjmp sigsetjmp sigprocmask +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -## ---------------------------------------------------------------------- -## Print some other parallel information and do some sanity checks. -## - ADD_PARALLEL_FILES="no" +fi +done -if test -n "$PARALLEL"; then - ## The 'testpar' directory should participate in the build - TESTPARALLEL=testpar +for ac_func in snprintf srandom strdup symlink system +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF - ## We are building a parallel library +fi +done -$as_echo "#define HAVE_PARALLEL 1" >>confdefs.h +for ac_func in tmpfile asprintf vasprintf vsnprintf waitpid +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done - ## Display what we found about running programs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 -$as_echo_n "checking prefix for running on one processor... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNSERIAL" >&5 -$as_echo "$RUNSERIAL" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running in parallel" >&5 -$as_echo_n "checking prefix for running in parallel... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNPARALLEL" >&5 -$as_echo "$RUNPARALLEL" >&6; } - ## There *must* be some way to run in parallel even if it's just the - ## word `none'. - if test -z "$RUNPARALLEL"; then - as_fn_error $? "no way to run a parallel program" "$LINENO" 5 - fi +## ---------------------------------------------------------------------- +## Check compiler characteristics +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with - ## the empty string. This means that no launch commands were requested, - ## so we will not use any launch commands. - if test "X$RUNSERIAL" = "Xnone"; then - RUNSERIAL="" - fi - if test "X$RUNPARALLEL" = "Xnone"; then - RUNPARALLEL="" - fi +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - if test "X$HDF_FORTRAN" = "Xyes"; then - ADD_PARALLEL_FILES="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Comm_c2f and MPI_Comm_f2c functions" >&5 -$as_echo_n "checking for MPI_Comm_c2f and MPI_Comm_f2c functions... " >&6; } +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; #endif -int -main () -{ -MPI_Comm c_comm; MPI_Comm_c2f(c_comm) + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then -$as_echo "#define HAVE_MPI_MULTI_LANG_Comm 1" >>confdefs.h +$as_echo "#define const /**/" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Info_c2f and MPI_Info_f2c functions" >&5 -$as_echo_n "checking for MPI_Info_c2f and MPI_Info_f2c functions... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ extension" >&5 +$as_echo_n "checking for __attribute__ extension... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -27630,82 +26285,28 @@ $as_echo_n "checking for MPI_Info_c2f and MPI_Info_f2c functions... " >&6; } int main () { -MPI_Info c_info; MPI_Info_c2f(c_info) +int __attribute__((unused)) x ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define HAVE_MPI_MULTI_LANG_Info 1" >>confdefs.h +$as_echo "#define HAVE_ATTRIBUTE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - - ## -------------------------------------------------------------------- - ## Do we want MPE instrumentation feature on? - ## - ## This must be done after enable-parallel is checked since it depends - ## on a mpich compiler. - ## - MPE=yes - -# Check whether --with-mpe was given. -if test "${with_mpe+set}" = set; then : - withval=$with_mpe; -else - withval=no -fi - - - case "X-$withval" in - X-|X-no|X-none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE" >&5 -$as_echo_n "checking for MPE... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 -$as_echo "suppressed" >&6; } - unset MPE - ;; - X-yes) - for ac_header in mpe.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" -if test "x$ac_cv_header_mpe_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MPE_H 1 -_ACEOF - -else - unset MPE fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 -$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } -if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpe $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __func__ extension" >&5 +$as_echo_n "checking for __func__ extension... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPE_Init_log (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -27717,115 +26318,59 @@ char MPE_Init_log (); int main () { -return MPE_Init_log (); + const char *fname = __func__; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpe_MPE_Init_log=yes -else - ac_cv_lib_mpe_MPE_Init_log=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 -$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } -if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBMPE 1 -_ACEOF - - LIBS="-lmpe $LIBS" - -else - unset MPE -fi - - ;; - *) - case "$withval" in - *,*) - mpe_inc="`echo $withval | cut -f1 -d,`" - mpe_lib="`echo $withval | cut -f2 -d, -s`" - ;; - *) - if test -n "$withval"; then - mpe_inc="$withval/include" - mpe_lib="$withval/lib" - fi - ;; - esac - - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$mpe_inc" = "X/usr/include"; then - mpe_inc="" - fi - if test "X$mpe_lib" = "X/usr/lib"; then - mpe_lib="" - fi - - if test -n "$mpe_inc"; then - saved_CPPFLAGS="$CPPFLAGS" - saved_AM_CPPFLAGS="$AM_CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$mpe_inc" - AM_CPPFLAGS="$AM_CPPFLAGS -I$mpe_inc" - for ac_header in mpe.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" -if test "x$ac_cv_header_mpe_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MPE_H 1 -_ACEOF - -else - CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS"; unset MPE -fi - -done +if ac_fn_c_try_compile "$LINENO"; then : - else - for ac_header in mpe.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" -if test "x$ac_cv_header_mpe_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MPE_H 1 -_ACEOF +$as_echo "#define HAVE_C99_FUNC 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - unset MPE + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __FUNCTION__ extension" >&5 +$as_echo_n "checking for __FUNCTION__ extension... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -done +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + const char *fname = __FUNCTION__; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - fi +$as_echo "#define HAVE_FUNCTION 1" >>confdefs.h - if test -n "$mpe_lib"; then - saved_LDFLAGS="$LDFLAGS" - saved_AM_LDFLAGS="$AM_LDFLAGS" - LDFLAGS="$LDFLAGS -L$mpe_lib" - AM_LDFLAGS="$AM_LDFLAGS -L$mpe_lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 -$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } -if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : - $as_echo_n "(cached) " >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpe $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initialization support" >&5 +$as_echo_n "checking for C99 designated initialization support... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPE_Init_log (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -27837,51 +26382,54 @@ char MPE_Init_log (); int main () { -return MPE_Init_log (); + + typedef struct { + int x; + union { + int i; + double d; + } u; + } di_struct_t; + di_struct_t x = {0, { .d = 0.0}}; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpe_MPE_Init_log=yes -else - ac_cv_lib_mpe_MPE_Init_log=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 -$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } -if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBMPE 1 -_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - LIBS="-lmpe $LIBS" +$as_echo "#define HAVE_C99_DESIGNATED_INITIALIZER 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 -$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } -if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : +## ---------------------------------------------------------------------- +## Try to figure out how to print `long long'. Some machines use `%lld' +## and others use `%qd'. There may be more! The final `l' is a +## default in case none of the others work. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print long long" >&5 +$as_echo_n "checking how to print long long... " >&6; } +if ${hdf5_cv_printf_ll+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpe $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + +for hdf5_cv_printf_ll in l ll L q unknown; do + if test "$cross_compiling" = yes; then : + continue +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPE_Init_log (); + #include + #include + #include + #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -27893,1034 +26441,1036 @@ char MPE_Init_log (); int main () { -return MPE_Init_log (); + + char *s = malloc(128); + long long x = (long long)1048576 * (long long)1048576; + sprintf(s,"%${hdf5_cv_printf_ll}d",x); + exit(strcmp(s,"1099511627776")); + ; return 0; } + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpe_MPE_Init_log=yes -else - ac_cv_lib_mpe_MPE_Init_log=no +if ac_fn_c_try_run "$LINENO"; then : + break fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 -$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } -if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBMPE 1 + +done +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: %${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&5 +$as_echo "%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&6; } + +cat >>confdefs.h <<_ACEOF +#define PRINTF_LL_WIDTH "$hdf5_cv_printf_ll" _ACEOF - LIBS="-lmpe $LIBS" -else - unset MPE + +## ---------------------------------------------------------------------- +## Turn on debugging by setting compiler flags +## This must come after the enable-production since it depends on production. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for debug flags" >&5 +$as_echo_n "checking for debug flags... " >&6; } +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; DEBUG_PKG=$enableval +fi + + +## Default to no if producton is enabled +if test "X-$DEBUG_PKG" = X- ; then + if test "$enable_production" = yes ; then + DEBUG_PKG=no + else + DEBUG_PKG=yes + fi +fi + + +all_packages="ac,b,b2,d,e,f,g,hg,hl,i,mf,mm,o,p,s,t,v,z" +case "X-$DEBUG_PKG" in + X-yes) + DEBUG_PKG="d,e,f,g,hg,i,mm,o,p,s,t,v,z" + H5_CPPFLAGS="$H5_CPPFLAGS -UNDEBUG" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default ($DEBUG_PKG)" >&5 +$as_echo "default ($DEBUG_PKG)" >&6; } + ;; + X-all) + DEBUG_PKG=$all_packages + H5_CPPFLAGS="$H5_CPPFLAGS -UNDEBUG" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: all ($DEBUG_PKG)" >&5 +$as_echo "all ($DEBUG_PKG)" >&6; } + ;; + X-no|X-none) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } + DEBUG_PKG= + H5_CPPFLAGS="$H5_CPPFLAGS -DNDEBUG" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEBUG_PKG" >&5 +$as_echo "$DEBUG_PKG" >&6; } + ;; +esac + +if test -n "$DEBUG_PKG"; then + for pkg in `echo $DEBUG_PKG | ${TR} ${as_cr_letters}"," ${as_cr_LETTERS}" "`; do + H5_CPPFLAGS="$H5_CPPFLAGS -DH5${pkg}_DEBUG" + done +fi + +## ---------------------------------------------------------------------- +## Check if they would like the function stack support compiled in +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether function stack tracking is enabled" >&5 +$as_echo_n "checking whether function stack tracking is enabled... " >&6; } +# Check whether --enable-codestack was given. +if test "${enable_codestack+set}" = set; then : + enableval=$enable_codestack; CODESTACK=$enableval +fi + + +case "X-$CODESTACK" in + X-yes) + CODESTACK=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_CODESTACK 1" >>confdefs.h + + ;; + *) + CODESTACK=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; +esac + +## ---------------------------------------------------------------------- +## Check if they would like the metadata trace file code compiled in +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether metadata trace file code is enabled" >&5 +$as_echo_n "checking whether metadata trace file code is enabled... " >&6; } +# Check whether --enable-metadata-trace-file was given. +if test "${enable_metadata_trace_file+set}" = set; then : + enableval=$enable_metadata_trace_file; METADATATRACEFILE=$enableval fi - fi - ;; - esac - if test "X-$MPE" = "X-yes"; then +case "X-$METADATATRACEFILE" in + X-yes) + METADATATRACEFILE=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define METADATA_TRACE_FILE 1" >>confdefs.h + + ;; + *) + METADATATRACEFILE=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; +esac + +## ---------------------------------------------------------------------- +## Enable tracing of the API +## This must come after the enable-debug since it depends on debug. +## + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for API tracing" >&5 +$as_echo_n "checking for API tracing... " >&6; }; +# Check whether --enable-trace was given. +if test "${enable_trace+set}" = set; then : + enableval=$enable_trace; TRACE=$enableval +fi -$as_echo "#define HAVE_MPE 1" >>confdefs.h +## Default to no if debug is disabled +if test "X-$TRACE" = X- ; then + if test -z "$DEBUG_PKG" ; then + TRACE=no + else + TRACE=yes fi fi +case "X-$TRACE" in + X-yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + TRACE_API=yes + H5_CPPFLAGS="$H5_CPPFLAGS -DH5_DEBUG_API" + ;; + X-no|*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + TRACE_API=no + H5_CPPFLAGS="$H5_CPPFLAGS -UH5_DEBUG_API" + ;; +esac + ## ---------------------------------------------------------------------- -## Check if Direct I/O driver is enabled by --enable-direct-vfd +## Enable instrumenting of the library's internal operations +## This must come after the enable-debug since it depends on debug. ## -## Check these regardless. If the checks are moved inside the main -## direct VFD block, the output is nested. - -if ${hdf5_cv_direct_io+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_decl "$LINENO" "O_DIRECT" "ac_cv_have_decl_O_DIRECT" "#include -" -if test "x$ac_cv_have_decl_O_DIRECT" = xyes; then : - hdf5_cv_direct_io=yes -else - hdf5_cv_direct_io=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for instrumented library" >&5 +$as_echo_n "checking for instrumented library... " >&6; }; +# Check whether --enable-instrument was given. +if test "${enable_instrument+set}" = set; then : + enableval=$enable_instrument; INSTRUMENT=$enableval fi -fi -if ${hdf5_cv_posix_memalign+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign" -if test "x$ac_cv_func_posix_memalign" = xyes; then : - hdf5_cv_posix_memalign=yes -else - hdf5_cv_posix_memalign=no +## Default to no if debug is disabled +if test "X-$INSTRUMENT" = X- ; then + if test -z "$DEBUG_PKG" ; then + INSTRUMENT=no + else + INSTRUMENT=yes + fi fi -fi +case "X-$INSTRUMENT" in + X-yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + INSTRUMENT_LIBRARY=yes +$as_echo "#define HAVE_INSTRUMENTED_LIBRARY 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the direct I/O virtual file driver (VFD) is enabled" >&5 -$as_echo_n "checking if the direct I/O virtual file driver (VFD) is enabled... " >&6; } + ;; + X-no|*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + INSTRUMENT_LIBRARY=no + ;; +esac -# Check whether --enable-direct-vfd was given. -if test "${enable_direct_vfd+set}" = set; then : - enableval=$enable_direct_vfd; DIRECT_VFD=$enableval -else - DIRECT_VFD=no +## ---------------------------------------------------------------------- +## Check if they would like to securely clear file buffers before they are +## written. +## + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to clear file buffers" >&5 +$as_echo_n "checking whether to clear file buffers... " >&6; } +# Check whether --enable-clear-file-buffers was given. +if test "${enable_clear_file_buffers+set}" = set; then : + enableval=$enable_clear_file_buffers; CLEARFILEBUF=$enableval fi -if test "X$DIRECT_VFD" = "Xyes"; then - if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +case "X-$CLEARFILEBUF" in + *) + CLEARFILEBUF=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DIRECT 1" >>confdefs.h +$as_echo "#define CLEAR_MEMORY 1" >>confdefs.h - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - DIRECT_VFD=no - as_fn_error $? "The direct VFD was requested but cannot be built. This is either - due to O_DIRECT not being found in fcntl.h or a lack of - posix_memalign() on your system. Please re-configure without - specifying --enable-direct-vfd." "$LINENO" 5 - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + X-no) + CLEARFILEBUF=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi - - if test "X$DIRECT_VFD" = "Xyes"; then - DIRECT_VFD_CONDITIONAL_TRUE= - DIRECT_VFD_CONDITIONAL_FALSE='#' -else - DIRECT_VFD_CONDITIONAL_TRUE='#' - DIRECT_VFD_CONDITIONAL_FALSE= -fi - + ;; +esac ## ---------------------------------------------------------------------- -## Enable custom plugin default path for library. It requires SHARED support. +## Check if they would like to use a memory checking tool (like valgrind's +## 'memcheck' tool, or Rational Purify, etc) and the library should be +## more scrupulous with it's memory operations. Enabling this also +## disables the library's free space manager code. ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for custom plugin default path definition" >&5 -$as_echo_n "checking for custom plugin default path definition... " >&6; } -# Check whether --with-default-plugindir was given. -if test "${with_default_plugindir+set}" = set; then : - withval=$with_default_plugindir; -else - withval="/usr/local/hdf5/lib/plugin" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a memory checking tool will be used" >&5 +$as_echo_n "checking whether a memory checking tool will be used... " >&6; } +# Check whether --enable-using-memchecker was given. +if test "${enable_using_memchecker+set}" = set; then : + enableval=$enable_using_memchecker; USINGMEMCHECKER=$enableval fi -if test "X$withval" = "X"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5 -$as_echo "default" >&6; } - default_plugindir="/usr/local/hdf5/lib/plugin" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } - default_plugindir=$withval +case "X-$USINGMEMCHECKER" in + X-yes) + USINGMEMCHECKER=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define USING_MEMCHECKER 1" >>confdefs.h + + ;; + *) + USINGMEMCHECKER=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; +esac + +## Checkpoint the cache +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi fi +rm -f confcache - -cat >>confdefs.h <<_ACEOF -#define DEFAULT_PLUGINDIR "$default_plugindir" -_ACEOF - - -## ---------------------------------------------------------------------- -## Decide whether the presence of user's exception handling functions is -## checked and data conversion exceptions are returned. This is mainly -## for the speed optimization of hard conversions. Soft conversions can -## actually benefit little. +## What header files and libraries do we have to look for for parallel +## support? For the most part, search paths are already specified with +## CPPFLAGS and LDFLAGS or are known to the compiler. ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether exception handling functions is checked during data conversions" >&5 -$as_echo_n "checking whether exception handling functions is checked during data conversions... " >&6; } -# Check whether --enable-dconv-exception was given. -if test "${enable_dconv_exception+set}" = set; then : - enableval=$enable_dconv_exception; DCONV_EXCEPTION=$enableval -else - DCONV_EXCEPTION=yes +# Check whether --enable-parallel was given. +if test "${enable_parallel+set}" = set; then : + enableval=$enable_parallel; fi -if test "$DCONV_EXCEPTION" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define WANT_DCONV_EXCEPTION 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +## The --enable-parallel flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_CXX}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then + as_fn_error $? "--enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi fi -## ---------------------------------------------------------------------- -## Decide whether the data accuracy has higher priority during data -## conversions. If not, some hard conversions will still be prefered even -## though the data may be wrong (for example, some compilers don't -## support denormalized floating values) to maximize speed. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether data accuracy is guaranteed during data conversions" >&5 -$as_echo_n "checking whether data accuracy is guaranteed during data conversions... " >&6; } -# Check whether --enable-dconv-accuracy was given. -if test "${enable_dconv_accuracy+set}" = set; then : - enableval=$enable_dconv_accuracy; DATA_ACCURACY=$enableval -else - DATA_ACCURACY=yes +## --enable-parallel is also incompatible with --enable-threadsafe, unless +## --enable-unsupported has been specified on the configure line. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${THREADSAFE}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then + as_fn_error $? "--enable-threadsafe and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for parallel support files" >&5 +$as_echo_n "checking for parallel support files... " >&6; } +case "X-$enable_parallel" in + X-|X-no|X-none) + ## We are not compiling for parallel. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 +$as_echo "skipped" >&6; } + ;; + + X-yes) + ## We want to compile a parallel library with a compiler that + ## may already know how to link with MPI and MPI-IO. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 +$as_echo "provided by compiler" >&6; } + PARALLEL=yes -if test "$DATA_ACCURACY" = "yes"; then + ## Try link a simple MPI program. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO C program can be linked" >&5 +$as_echo_n "checking whether a simple MPI-IO C program can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ + MPI_Init(0, (void *)0); + MPI_File_open(0, (void *)0, 0, 0, (void *)0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - -$as_echo "#define WANT_DATA_ACCURACY 1" >>confdefs.h - else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + as_fn_error $? "unable to link a simple MPI-IO C program" "$LINENO" 5 fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## denormalized floating-point values. -## (This flag should be set for all machines, except for the Crays, where -## the cache value is set in it's config file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting denormalized floating-point values is possible" >&5 -$as_echo_n "checking if converting denormalized floating-point values is possible... " >&6; } -if ${hdf5_cv_convert_denormal_float+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_convert_denormal_float=yes -fi + if test "X$HDF_FORTRAN" = "Xyes"; then -if test ${hdf5_cv_convert_denormal_float} = "yes"; then + ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu + -$as_echo "#define CONVERT_DENORMAL_FLOAT 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO Fortran program can be linked" >&5 +$as_echo_n "checking whether a simple MPI-IO Fortran program can be linked... " >&6; } + cat > conftest.$ac_ext <<_ACEOF + PROGRAM main + INCLUDE 'mpif.h' + INTEGER :: comm, amode, info, fh, ierror + CHARACTER(LEN=1) :: filename + CALL MPI_File_open( comm, filename, amode, info, fh, ierror) + END +_ACEOF +if ac_fn_fc_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + as_fn_error $? "unable to link a simple MPI-IO Fortran program" "$LINENO" 5 fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## floating-point to long long values. -## (This flag should be _unset_ for all machines, except for Windows, where -## it's set in the custom Windows H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting floating-point values to long long is not working" >&5 -$as_echo_n "checking if converting floating-point values to long long is not working... " >&6; } -if ${hdf5_cv_convert_float_llong_not_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_convert_float_llong_not_works=no -fi - - -if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then - -$as_echo "#define HW_FP_TO_LLONG_NOT_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: true" >&5 -$as_echo "true" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: false" >&5 -$as_echo "false" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine has window style pathname, -## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). -## (This flag should be _unset_ for all machines, except for Windows, where -## it's set in the custom Windows H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the machine has window style path name" >&5 -$as_echo_n "checking if the machine has window style path name... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -case "`uname`" in - MINGW*) -$as_echo "#define HAVE_WINDOW_PATH 1" >>confdefs.h + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ## Set RUNPARALLEL to mpiexec if not set yet. + if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then + RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" + fi ;; + *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: error" >&5 +$as_echo "error" >&6; } + as_fn_error $? "\'$enable_parallel\' is not a valid parallel search type" "$LINENO" 5 ;; esac -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## long double to integers accurately. This flag should be set "yes" for -## all machines except all SGIs. For SGIs, some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x. +## ---------------------------------------------------------------------- +## Print some other parallel information and do some sanity checks. ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5 -$as_echo_n "checking if converting from long double to integers is accurate... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - if ${hdf5_cv_ldouble_to_integer_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ldouble_to_integer_accurate=yes -fi - -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - -$as_echo "#define LDOUBLE_TO_INTEGER_ACCURATE 1" >>confdefs.h + ADD_PARALLEL_FILES="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +if test -n "$PARALLEL"; then + ## The 'testpar' directory should participate in the build + TESTPARALLEL=testpar -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can do conversion from -## long double to integers regardless of accuracy. This flag should be -## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -## compiler has 'floating exception' when converting 'long double' to all -## integers except 'unsigned long long'. Other HP-UX systems are unknown -## yet. (1/8/05 - SLU) + ## We are building a parallel library -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers works" >&5 -$as_echo_n "checking if converting from long double to integers works... " >&6; } +$as_echo "#define HAVE_PARALLEL 1" >>confdefs.h -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no} -else - if ${hdf5_cv_ldouble_to_integer_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - int main(void) - { - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - - done: - exit(ret); - } + ## Display what we found about running programs + { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 +$as_echo_n "checking prefix for running on one processor... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNSERIAL" >&5 +$as_echo "$RUNSERIAL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running in parallel" >&5 +$as_echo_n "checking prefix for running in parallel... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNPARALLEL" >&5 +$as_echo "$RUNPARALLEL" >&6; } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_integer_works=yes -else - hdf5_cv_ldouble_to_integer_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi + ## There *must* be some way to run in parallel even if it's just the + ## word `none'. + if test -z "$RUNPARALLEL"; then + as_fn_error $? "no way to run a parallel program" "$LINENO" 5 + fi -fi + ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with + ## the empty string. This means that no launch commands were requested, + ## so we will not use any launch commands. + if test "X$RUNSERIAL" = "Xnone"; then + RUNSERIAL="" + fi + if test "X$RUNPARALLEL" = "Xnone"; then + RUNPARALLEL="" + fi -fi + if test "X$HDF_FORTRAN" = "Xyes"; then + ADD_PARALLEL_FILES="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Comm_c2f and MPI_Comm_f2c functions" >&5 +$as_echo_n "checking for MPI_Comm_c2f and MPI_Comm_f2c functions... " >&6; } -if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +MPI_Comm c_comm; MPI_Comm_c2f(c_comm) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : -$as_echo "#define LDOUBLE_TO_INTEGER_WORKS 1" >>confdefs.h +$as_echo "#define HAVE_MPI_MULTI_LANG_Comm 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## integers to long double. (This flag should be set "yes" for all -## machines except all SGIs, where some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting from integers to long double" >&5 -$as_echo_n "checking if accurately converting from integers to long double... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no} -else - if ${hdf5_cv_integer_to_ldouble_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_integer_to_ldouble_accurate=yes -fi fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Info_c2f and MPI_Info_f2c functions" >&5 +$as_echo_n "checking for MPI_Info_c2f and MPI_Info_f2c functions... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +MPI_Info c_info; MPI_Info_c2f(c_info) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : -$as_echo "#define INTEGER_TO_LDOUBLE_ACCURATE 1" >>confdefs.h +$as_echo "#define HAVE_MPI_MULTI_LANG_Info 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned long' to 'float' values. -## (This flag should be set for all machines, except for Pathscale compiler -## on Sandia's Linux machine where the compiler interprets 'unsigned long' -## values as negative when the first bit of 'unsigned long' is on during -## the conversion to float.) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5 -$as_echo_n "checking if accurately converting unsigned long to float values... " >&6; } - -if ${hdf5_cv_ulong_to_float_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi -done: - exit(ret); - } + ## -------------------------------------------------------------------- + ## Do we want MPE instrumentation feature on? + ## + ## This must be done after enable-parallel is checked since it depends + ## on a mpich compiler. + ## + MPE=yes -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ulong_to_float_accurate=yes +# Check whether --with-mpe was given. +if test "${with_mpe+set}" = set; then : + withval=$with_mpe; else - hdf5_cv_ulong_to_float_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - + withval=no fi -if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then - -$as_echo "#define ULONG_TO_FLOAT_ACCURATE 1" >>confdefs.h + case "X-$withval" in + X-|X-no|X-none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE" >&5 +$as_echo_n "checking for MPE... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5 +$as_echo "suppressed" >&6; } + unset MPE + ;; + X-yes) + for ac_header in mpe.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" +if test "x$ac_cv_header_mpe_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MPE_H 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + unset MPE fi +done -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned (long) long' values to 'float' and 'double' values. -## (This flag should be set for all machines, except for the SGIs, where -## the cache value is set in the config/irix6.x config file) and Solaris -## 64-bit machines, where the short program below tests if round-up is -## correctly handled. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5 -$as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; } - -if test ${host_os_novers} = "solaris2.x"; then - if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 +$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } +if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmpe $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); - } - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MPE_Init_log (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return MPE_Init_log (); + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mpe_MPE_Init_log=yes else - hdf5_cv_ulong_to_fp_bottom_bit_accurate=no + ac_cv_lib_mpe_MPE_Init_log=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 +$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } +if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMPE 1 +_ACEOF -fi + LIBS="-lmpe $LIBS" else - if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes + unset MPE fi + ;; + *) + case "$withval" in + *,*) + mpe_inc="`echo $withval | cut -f1 -d,`" + mpe_lib="`echo $withval | cut -f2 -d, -s`" + ;; + *) + if test -n "$withval"; then + mpe_inc="$withval/include" + mpe_lib="$withval/lib" + fi + ;; + esac + + if test -n "$mpe_inc"; then + saved_CPPFLAGS="$CPPFLAGS" + saved_AM_CPPFLAGS="$AM_CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$mpe_inc" + AM_CPPFLAGS="$AM_CPPFLAGS -I$mpe_inc" + for ac_header in mpe.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" +if test "x$ac_cv_header_mpe_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MPE_H 1 +_ACEOF + +else + CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS"; unset MPE fi -if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then +done -$as_echo "#define ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1" >>confdefs.h + else + for ac_header in mpe.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mpe.h" "ac_cv_header_mpe_h" "$ac_includes_default" +if test "x$ac_cv_header_mpe_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MPE_H 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + unset MPE fi -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float' or 'double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for PGI compiler -## where round-up happens when the fraction of float-point value is greater -## than 0.5. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately roundup converting floating-point to unsigned long long values" >&5 -$as_echo_n "checking if accurately roundup converting floating-point to unsigned long long values... " >&6; } +done + + fi -if ${hdf5_cv_fp_to_ullong_accurate+:} false; then : + if test -n "$mpe_lib"; then + saved_LDFLAGS="$LDFLAGS" + saved_AM_LDFLAGS="$AM_LDFLAGS" + LDFLAGS="$LDFLAGS -L$mpe_lib" + AM_LDFLAGS="$AM_LDFLAGS -L$mpe_lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 +$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } +if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmpe $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); - } - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MPE_Init_log (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return MPE_Init_log (); + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_ullong_accurate=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mpe_MPE_Init_log=yes else - hdf5_cv_fp_to_ullong_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_lib_mpe_MPE_Init_log=no fi - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 +$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } +if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMPE 1 +_ACEOF + LIBS="-lmpe $LIBS" -if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then - -$as_echo "#define FP_TO_ULLONG_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE fi -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float', 'double' or 'long double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for HP-UX machines -## where the maximal number for unsigned long long is 0x7fffffffffffffff -## during conversion. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if right maximum converting floating-point to unsigned long long values" >&5 -$as_echo_n "checking if right maximum converting floating-point to unsigned long long values... " >&6; } - -if ${hdf5_cv_fp_to_ullong_right_maximum+:} false; then : + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5 +$as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; } +if ${ac_cv_lib_mpe_MPE_Init_log+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmpe $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); - } - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MPE_Init_log (); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ +return MPE_Init_log (); + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_ullong_right_maximum=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mpe_MPE_Init_log=yes else - hdf5_cv_fp_to_ullong_right_maximum=no + ac_cv_lib_mpe_MPE_Init_log=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpe_MPE_Init_log" >&5 +$as_echo "$ac_cv_lib_mpe_MPE_Init_log" >&6; } +if test "x$ac_cv_lib_mpe_MPE_Init_log" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMPE 1 +_ACEOF + LIBS="-lmpe $LIBS" + +else + unset MPE fi + fi + ;; + esac -if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then + if test "X-$MPE" = "X-yes"; then -$as_echo "#define FP_TO_ULLONG_RIGHT_MAXIMUM 1" >>confdefs.h +$as_echo "#define HAVE_MPE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + fi fi ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to 'unsigned int' values. (This flag should be set for -## all machines, except for some Intel compilers on some Linux.) +## Check if Direct I/O driver is enabled by --enable-direct-vfd ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to unsigned int values" >&5 -$as_echo_n "checking if correctly converting long double to unsigned int values... " >&6; } -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no} -else - if ${hdf5_cv_ldouble_to_uint_accurate+:} false; then : +## Check these regardless. If the checks are moved inside the main +## direct VFD block, the output is nested. + +if ${hdf5_cv_direct_io+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; - - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_uint_accurate=yes + ac_fn_c_check_decl "$LINENO" "O_DIRECT" "ac_cv_have_decl_O_DIRECT" "#include +" +if test "x$ac_cv_have_decl_O_DIRECT" = xyes; then : + hdf5_cv_direct_io=yes else - hdf5_cv_ldouble_to_uint_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + hdf5_cv_direct_io=no fi fi +if ${hdf5_cv_posix_memalign+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign" +if test "x$ac_cv_func_posix_memalign" = xyes; then : + hdf5_cv_posix_memalign=yes +else + hdf5_cv_posix_memalign=no fi -if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then +fi -$as_echo "#define LDOUBLE_TO_UINT_ACCURATE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the direct I/O virtual file driver (VFD) is enabled" >&5 +$as_echo_n "checking if the direct I/O virtual file driver (VFD) is enabled... " >&6; } -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'unsigned long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling unsigned long long to floating-point typecasts work" >&5 -$as_echo_n "checking if compiling unsigned long long to floating-point typecasts work... " >&6; } -if ${hdf5_cv_ullong_to_fp_cast_works+:} false; then : - $as_echo_n "(cached) " >&6 +# Check whether --enable-direct-vfd was given. +if test "${enable_direct_vfd+set}" = set; then : + enableval=$enable_direct_vfd; DIRECT_VFD=$enableval else - hdf5_cv_ullong_to_fp_cast_works=yes + DIRECT_VFD=no fi -if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then +if test "X$DIRECT_VFD" = "Xyes"; then + if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define ULLONG_TO_FP_CAST_WORKS 1" >>confdefs.h +$as_echo "#define HAVE_DIRECT 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + DIRECT_VFD=no + as_fn_error $? "The direct VFD was requested but cannot be built. This is either + due to O_DIRECT not being found in fcntl.h or a lack of + posix_memalign() on your system. Please re-configure without + specifying --enable-direct-vfd." "$LINENO" 5 + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5 -$as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; } -if ${hdf5_cv_llong_to_fp_cast_works+:} false; then : - $as_echo_n "(cached) " >&6 + if test "X$DIRECT_VFD" = "Xyes"; then + DIRECT_VFD_CONDITIONAL_TRUE= + DIRECT_VFD_CONDITIONAL_FALSE='#' else - hdf5_cv_llong_to_fp_cast_works=yes + DIRECT_VFD_CONDITIONAL_TRUE='#' + DIRECT_VFD_CONDITIONAL_FALSE= fi -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - -$as_echo "#define LLONG_TO_FP_CAST_WORKS 1" >>confdefs.h +## ---------------------------------------------------------------------- +## Enable custom plugin default path for library. It requires SHARED support. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for custom plugin default path definition" >&5 +$as_echo_n "checking for custom plugin default path definition... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Check whether --with-default-plugindir was given. +if test "${with_default_plugindir+set}" = set; then : + withval=$with_default_plugindir; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + withval="/usr/local/hdf5/lib/plugin" fi -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can convert from -## 'unsigned long long' to 'long double' without precision loss. -## (This flag should be set for all machines, except for FreeBSD(sleipnir) -## where the last 2 bytes of mantissa are lost when compiler tries to do -## the conversion, and Cygwin where compiler doesn't do rounding correctly.) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting unsigned long long to long double with precision" >&5 -$as_echo_n "checking if converting unsigned long long to long double with precision... " >&6; } -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no} -else - if ${hdf5_cv_ullong_to_ldouble_precision+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } +if test "X$withval" = "X"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5 +$as_echo "default" >&6; } + default_plugindir="/usr/local/hdf5/lib/plugin" else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } + default_plugindir=$withval +fi - int main(void) - { - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - - done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); - } +cat >>confdefs.h <<_ACEOF +#define DEFAULT_PLUGINDIR "$default_plugindir" _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ullong_to_ldouble_precision=yes -else - hdf5_cv_ullong_to_ldouble_precision=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi +## ---------------------------------------------------------------------- +## Decide whether the presence of user's exception handling functions is +## checked and data conversion exceptions are returned. This is mainly +## for the speed optimization of hard conversions. Soft conversions can +## actually benefit little. +## +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether exception handling functions is checked during data conversions" >&5 +$as_echo_n "checking whether exception handling functions is checked during data conversions... " >&6; } +# Check whether --enable-dconv-exception was given. +if test "${enable_dconv_exception+set}" = set; then : + enableval=$enable_dconv_exception; DCONV_EXCEPTION=$enableval +else + DCONV_EXCEPTION=yes fi -if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then - -$as_echo "#define ULLONG_TO_LDOUBLE_PRECISION 1" >>confdefs.h +if test "$DCONV_EXCEPTION" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + +$as_echo "#define WANT_DCONV_EXCEPTION 1" >>confdefs.h + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle overflow converting -## all floating-point to all integer types. -## (This flag should be set for all machines, except for Cray X1 where -## floating exception is generated when the floating-point value is greater -## than the maximal integer value). +## Set the flag to indicate that the machine has window style pathname, +## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) ## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if overflows normally converting floating-point to integer values" >&5 -$as_echo_n "checking if overflows normally converting floating-point to integer values... " >&6; } - -if ${hdf5_cv_fp_to_integer_overflow_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(void) - { - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_fp_to_integer_overflow_works=yes -else - hdf5_cv_fp_to_integer_overflow_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the machine has window style path name" >&5 +$as_echo_n "checking if the machine has window style path name... " >&6; } -if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then +case "`uname`" in + MINGW*) -$as_echo "#define FP_TO_INTEGER_OVERFLOW_WORKS 1" >>confdefs.h +$as_echo "#define HAVE_WINDOW_PATH 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi + ;; +esac ## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine is using a special algorithm to convert @@ -28949,59 +27499,72 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - long double ld = 20041683600089727.779961L; - long ll; - unsigned long ull; - unsigned char s[16]; - unsigned char s2[8]; - int ret = 1; - - if(sizeof(long double) == 16 && sizeof(long) == 8) { - /*make sure the long double type has 16 bytes in size and - * 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /* Assign the hexadecimal value of long double type. */ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - - ll = (long)ld; - memcpy(s2, &ll, 8); - - /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 - * and gets wrong value 20041683600089730 on the IBM Power6 Linux. - * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f - * and gets the correct value 20041683600089727. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; + #include - ull = (unsigned long)ld; - memcpy(s2, &ull, 8); +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - /* The unsigned long is the same as signed long. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; + long double ld = 20041683600089727.779961L; + long ll; + unsigned long ull; + unsigned char s[16]; + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } } - } + exit(ret); - done: - exit(ret); - } + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -29054,248 +27617,81 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(void) - { - long double ld; - long ll; - unsigned long ull; - unsigned char s[16]; - int flag=0, ret=1; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long)==8) { - ll = 0x003fffffffffffffL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /* The library converts the value to 0x434fffffffffffff8000000000000000. - * In decimal it is 18014398509481982.000000, one value short of the original. - * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - if(flag==1 && sizeof(unsigned long)==8) { - ull = 0xffffffffffffffffUL; - ld = (long double)ull; - memcpy(s, &ld, 16); - /* Use a different value from signed long to test. The problem is the same - * for both long and unsigned long. The value is 18446744073709551615. - * The library converts the value to 0x43effffffffffffffe000000000000000. - * In decimal it's 18446744073709548544.000000, very different from the original. - * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_long_to_ldouble_special=yes -else - hdf5_cv_long_to_ldouble_special=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then - -$as_echo "#define LONG_TO_LDOUBLE_SPECIAL 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to '(unsigned) long long' values. (This flag should be set for -## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -## start to go wrong on these two machines. Adjusting it higher to -## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -## values wildly wrong. This test detects this wrong behavior and disable the test. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5 -$as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; } + #include -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_llong_accurate=${hdf5_cv_ldouble_to_llong_accurate=no} -else - if ${hdf5_cv_ldouble_to_llong_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +#ifdef FC_DUMMY_MAIN +#ifndef FC_DUMMY_MAIN_EQ_F77 +# ifdef __cplusplus + extern "C" +# endif + int FC_DUMMY_MAIN() { return 1; } +#endif +#endif +int +main () +{ - int main(void) - { - long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; + long double ld; + long ll; + unsigned long ull; + unsigned char s[16]; + int flag=0, ret=1; + + /*Determine if long double has 16 byte in size, 11 bit exponent, and + *the bias is 0x3ff */ + if(sizeof(long double) == 16) { + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; } - } - done: - exit(ret); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_ldouble_to_llong_accurate=yes -else - hdf5_cv_ldouble_to_llong_accurate=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -fi - -if test ${hdf5_cv_ldouble_to_llong_accurate} = "yes"; then - -$as_echo "#define LDOUBLE_TO_LLONG_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## '(unsigned) long long' to 'long double' values. (This flag should be set for -## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -## as big as they should be. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5 -$as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; } -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_llong_to_ldouble_correct=${hdf5_cv_llong_to_ldouble_correct=no} -else - if ${hdf5_cv_llong_to_ldouble_correct+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + exit(ret); - int main(void) - { - long double ld; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int flag=0, ret=0; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - done: - exit(ret); - } + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : - hdf5_cv_llong_to_ldouble_correct=yes + hdf5_cv_long_to_ldouble_special=yes else - hdf5_cv_llong_to_ldouble_correct=no + hdf5_cv_long_to_ldouble_special=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -29305,35 +27701,9 @@ fi fi -if test ${hdf5_cv_llong_to_ldouble_correct} = "yes"; then - -$as_echo "#define LLONG_TO_LDOUBLE_CORRECT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine generates bad code -## for the H5VM_log2_gen() routine in src/H5VMprivate.h -## (This flag should be set to no for all machines, except for SGI IRIX64, -## where the cache value is set to yes in it's config file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bad code for log2 routine is generated" >&5 -$as_echo_n "checking if bad code for log2 routine is generated... " >&6; } -if ${hdf5_cv_bad_log2_code_generated+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_bad_log2_code_generated=no -fi - - -if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then +if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then -$as_echo "#define BAD_LOG2_CODE_GENERATED 1" >>confdefs.h +$as_echo "#define LONG_TO_LDOUBLE_SPECIAL 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -29344,7 +27714,7 @@ fi ## ---------------------------------------------------------------------- ## Set some variables for general configuration information to be saved -## and installed with the libraries. +## and installed with the libraries (used to generate libhdf5.settings). ## ## HDF5 version from the first line of the README.txt file. @@ -29455,53 +27825,6 @@ fi ROOT="`$pwd`" ## ---------------------------------------------------------------------- -## Move any compiler-specific libraries into the main LIBS varaible. -## -LIBS="$DEFAULT_LIBS $LIBS" - -## ---------------------------------------------------------------------- -## Determine the runtime libraries we may need to include in the -## libtools command so that executables will find the correct dynamic -## libraries. -## - DYNAMIC_DIRS="" - -if test -n "$AM_LDFLAGS $LDFLAGS"; then - for d in $AM_LDFLAGS $LDFLAGS ; do - case "$d" in - -L*) - d="`echo $d | sed -e 's/-L//g'`" - case "$d" in - .*) - ## If the path isn't absolute, make it so by - ## prepending the ROOT directory to it. - d=${ROOT}/$d - ;; - esac - DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" - ;; - esac - done -fi - -if test -n "$AM_CPPFLAGS"; then - TEMP_CPPFLAGS="" - for d in $AM_CPPFLAGS ; do - case "$d" in - -I.*) - ## If the path isn't absolute, make it so by prepending - ## the ROOT directory to it. - d="`echo $d | sed -e 's/-I//g'`" - d="-I${ROOT}/${d}" - ;; - esac - TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS" - done - AM_CPPFLAGS=$TEMP_CPPFLAGS -fi - - -## ---------------------------------------------------------------------- ## Some programs shouldn't be built by default (e.g., programs to generate ## data files used by tests, some optional tests). ## Check if they want such programs built anyway. @@ -29805,18 +28128,8 @@ fi ## The directory search list SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' -cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' -SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH -## We don't need to say when we're entering directories if we're using -## GNU make because make does it for us. -if test "X$GMAKE" = "Xyes"; then - SETX=":" -else - SETX="set -x" -fi - ## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod @@ -30249,7 +28562,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.216-swmr0 +HDF5 config.lt 1.9.217-swmr0 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -30292,9 +28605,6 @@ cat >>"$CONFIG_LT" <<_LTEOF sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' @@ -30328,10 +28638,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' @@ -30539,10 +28851,7 @@ _LTECHO_EOF' } # Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ +for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ @@ -30555,10 +28864,12 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ +DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ @@ -30805,15 +29116,6 @@ available_tags="CXX FC " # ### BEGIN LIBTOOL CONFIG -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision @@ -30894,6 +29196,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -30906,6 +29211,9 @@ file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd @@ -31936,10 +30244,6 @@ if test -z "${FORTRAN_SHARED_CONDITIONAL_TRUE}" && test -z "${FORTRAN_SHARED_CON as_fn_error $? "conditional \"FORTRAN_SHARED_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${CXX_SHARED_CONDITIONAL_TRUE}" && test -z "${CXX_SHARED_CONDITIONAL_FALSE}"; then - as_fn_error $? "conditional \"CXX_SHARED_CONDITIONAL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_PLUGINS_CONDITIONAL_TRUE}" && test -z "${USE_PLUGINS_CONDITIONAL_FALSE}"; then as_fn_error $? "conditional \"USE_PLUGINS_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -32374,7 +30678,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.216-swmr0, which was +This file was extended by HDF5 $as_me 1.9.217-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -32440,7 +30744,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.216-swmr0 +HDF5 config.status 1.9.217-swmr0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -32569,9 +30873,6 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' @@ -32605,10 +30906,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' @@ -32816,10 +31119,7 @@ _LTECHO_EOF' } # Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ +for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ @@ -32832,10 +31132,12 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ +DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ @@ -33878,15 +32180,6 @@ available_tags="CXX FC " # ### BEGIN LIBTOOL CONFIG -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision @@ -33967,6 +32260,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -33979,6 +32275,9 @@ file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd diff --git a/configure.ac b/configure.ac index 1982f4c..7d173e0 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.216-swmr0], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.217-swmr0], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) @@ -110,7 +110,7 @@ AC_SUBST([AM_CXXFLAGS]) AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_LDFLAGS]) -## Make sure flags are set to something (otherwise macros may set them later). +## Make sure flags are initialized. AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -131,12 +131,6 @@ saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" -## Different compilers may need default libraries. They are specified in -## the config/* files, so we put this statement here so that it'll be -## set by the code which follows... -## -DEFAULT_LIBS="" - ## Support F9X variable to define Fortran compiler if FC variable is ## not used. This should be deprecated in the future. if test "x" = "x$FC"; then @@ -193,15 +187,9 @@ AC_SUBST([UNAME_INFO]) UNAME_INFO=`uname -a` ## ---------------------------------------------------------------------- ## Some platforms have broken basename, and/or xargs programs. Check ## that it actually does what it's supposed to do. Catch this early -## since configure relies upon them heavily and there's no use continuing -## if it's broken. +## since configure and scripts relies upon them heavily and there's +## no use continuing if it's broken. ## - -## Avoid depending upon Character Ranges. -## These are defined by autoconf. -## as_cr_letters='abcdefghijklmnopqrstuvwxyz' -## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' - AC_MSG_CHECKING([if basename works]) BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`" if test $BASENAME_TEST != "basename_works"; then @@ -210,6 +198,7 @@ else AC_MSG_RESULT([yes]) fi +## xargs basename used in configure to get the CC_BASENAME value AC_MSG_CHECKING([if xargs works]) XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`" if test $XARGS_TEST != "xargs_works"; then @@ -255,12 +244,6 @@ case $host_os in freebsd*) host_os_novers=freebsd ;; - irix5.*) - host_os_novers=irix5.x - ;; - irix6.*) - host_os_novers=irix6.x - ;; osf4.*) host_os_novers=osf4.x ;; @@ -587,6 +570,7 @@ AC_PROG_INSTALL ## ---------------------------------------------------------------------- ## Set up ${TR} which is used to process DEBUG_PKG. + AC_PATH_PROG([TR], [tr]) @@ -694,80 +678,14 @@ fi AM_CONDITIONAL([FORTRAN_SHARED_CONDITIONAL], [test "X$H5_FORTRAN_SHARED" = "Xyes"]) ## ---------------------------------------------------------------------- -## Disable C++ shared libraries if +DD64 flag is detected. -## -AC_SUBST([H5_CXX_SHARED]) -H5_CXX_SHARED="no" -if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then - AC_MSG_CHECKING([if shared C++ libraries are supported]) - H5_CXX_SHARED="yes" - - ## Disable C++ shared libraries if DD64 flag is being used. - - if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then - H5_CXX_SHARED="no" - CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." - fi - - ## Report results of check(s) - - if test "X${H5_CXX_SHARED}" = "Xno"; then - AC_MSG_RESULT([no]) - AC_MSG_WARN([$CHECK_WARN]) - if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - AC_MSG_WARN([Disabling shared C++ libraries.]) - AC_MSG_WARN([To override this behavior, please use --enable-unsupported configure option.]) - if test "X${enable_static}" = "Xno"; then - AC_MSG_ERROR([both static and shared C++ libraries are disabled]) - fi - else - AC_MSG_WARN([Allowing unsupported C++ shared librares due to use of --enable-unsupported flag]) - fi - else - AC_MSG_RESULT([yes]) - fi -fi - -AM_CONDITIONAL([CXX_SHARED_CONDITIONAL], [test "X$H5_CXX_SHARED" = "Xyes"]) - -## ---------------------------------------------------------------------- -## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect -## these versions and add option "-Mx,28,0x8" to the compiler to avoid -## the problem if optimization is enabled. -## - -if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then - echo 'adding compiler flag to avoid optimization problem in pgcc' - CC="${CC-cc} -Mx,28,0x8" -fi - -## ---------------------------------------------------------------------- -## Shared libraries are not currently supported under Cygwin, so configure -## disables them unless --enable-unsupported has been supplied by the user. - -if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - case "`uname`" in - CYGWIN*) - if test "X${enable_shared}" = "Xyes"; then - echo ' warning: shared libraries are not supported on Cygwin!' - echo ' disabling shared libraries' - echo ' use --enable-unsupported to override this warning and keep shared libraries enabled' - fi - enable_shared="no" - ;; - esac -fi - -## ---------------------------------------------------------------------- -## Windows won't create DLLs without the following macro. -## -AC_LIBTOOL_WIN32_DLL - -## ---------------------------------------------------------------------- ## Create libtool. If shared/static libraries are going to be enabled ## or disabled, it should happen before these macros. LT_PREREQ([2.2]) -LT_INIT([dlopen]) + +## ---------------------------------------------------------------------- +## dlopen - This will use an improved version of libtool +## win32-dll - This will build clean dlls on win32 platforms. +LT_INIT([dlopen,win32-dll]) ## ---------------------------------------------------------------------- ## Check if we should install only statically linked executables. @@ -835,79 +753,6 @@ case "X-$RPATH" in esac ## ---------------------------------------------------------------------- -## Sometimes makes think the `.PATH:' appearing before the first rule -## with an action should override the `all' default target. So we have -## to decide what the proper syntax is. -## -AC_MSG_CHECKING([how make searches directories]) -while true; do #for break - ## The most common method is `VPATH=DIR1 DIR2 ...' - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=' ' - AC_MSG_RESULT([VPATH=DIR1 DIR2 ...]) - break - fi - - ## The second most common method is like above except with the - ## directories separated by colons. - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='VPATH=' - SEARCH_SEP=':' - AC_MSG_RESULT([VPATH=DIR1:DIR2:...]) - break - fi - - ## pmake uses the construct `.PATH: DIR1 DIR2 - cat >maketest </dev/null 2>&1; then - SEARCH_RULE='.PATH: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([.PATH: DIR1 DIR2 ...]) - break - fi - - ## No way for make to search directories - SEARCH_RULE='## SEARCH DISABLED: ' - SEARCH_SEP=' ' - AC_MSG_RESULT([it doesn't]) - if test ! -f configure; then - AC_MSG_ERROR([${MAKE-make} requires the build and source directories to be the same]) - fi - break -done -rm maketest - -## ---------------------------------------------------------------------- ## pmake will throw an error if variables are undefined in a Makefile. ## These errors can be changed to warnings using the -V flag. ## @@ -989,8 +834,6 @@ if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then AC_CHECK_LIB([nsl], [xdr_int]) fi -dnl AC_CHECK_LIB([coug], [main]) ## ...for ASCI/Red - ## ---------------------------------------------------------------------- ## Check for system header files. ## @@ -1035,7 +878,7 @@ case "$host" in ## many problems with including them. AC_CHECK_HEADERS([sys/sysinfo.h sys/proc.h]) ;; - mips*-sgi*-irix*) + mips*-sgi*) ## The is needed on the SGI machines to turn off ## denormalized floating-point values going to zero. We do *not* ## attempt to locate these files on other systems because there @@ -1132,6 +975,11 @@ case "$host_cpu-$host_vendor-$host_os" in ## however, we do not do this since it breaks the big test on some ## older platforms. H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS" + + ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE. + ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE, + ## which should work for all versions of glibc. + H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS" ;; esac @@ -1307,15 +1155,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$dmalloc_inc" = "X/usr/include"; then - dmalloc_inc="" - fi - if test "X$dmalloc_lib" = "X/usr/lib"; then - dmalloc_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1373,7 +1212,7 @@ case $withval in ;; no) HAVE_ZLIB="no" - AC_MSG_CHECKING([for GNU zlib]) + AC_MSG_CHECKING([for zlib]) AC_MSG_RESULT([suppressed]) ;; *) @@ -1391,15 +1230,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$zlib_inc" = "X/usr/include"; then - zlib_inc="" - fi - if test "X$zlib_lib" = "X/usr/lib"; then - zlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1490,15 +1320,6 @@ case $withval in ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$szlib_inc" = "X/usr/include"; then - szlib_inc="" - fi - if test "X$szlib_lib" = "X/usr/lib"; then - szlib_lib="" - fi - saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" saved_LDFLAGS="$LDFLAGS" @@ -1545,18 +1366,18 @@ if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then AC_SUBST([LL_PATH]) LL_PATH="$LD_LIBRARY_PATH" AC_CACHE_VAL([hdf5_cv_szlib_can_encode], - [AC_TRY_RUN([ - #include - - int main(void) - { + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include "szlib.h" + ],[[ /* SZ_encoder_enabled returns 1 if encoder is present */ - if(SZ_encoder_enabled() == 1) - exit(0); - else - exit(1); - } - ], [hdf5_cv_szlib_can_encode=yes], [hdf5_cv_szlib_can_encode=no],)]) + if(SZ_encoder_enabled() == 1) + exit(0); + else + exit(1); + ]])] + , [hdf5_cv_szlib_can_encode=yes], [hdf5_cv_szlib_can_encode=no],)] + ) AC_DEFINE([HAVE_FILTER_SZIP], [1], [Define if support for szip filter is enabled]) @@ -1681,15 +1502,6 @@ if test "X$THREADSAFE" = "Xyes"; then ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$pthread_inc" = "X/usr/include"; then - pthread_inc="" - fi - if test "X$pthread_lib" = "X/usr/lib"; then - pthread_lib="" - fi - if test -n "$pthread_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -1735,15 +1547,12 @@ if test "X$THREADSAFE" = "Xyes"; then #include #endif ],[ - int main(void) - { pthread_attr_t attribute; int ret; pthread_attr_init(&attribute); ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); exit(ret==0 ? 0 : 1); - } ])] , [hdf5_cv_system_scope_threads=yes], [hdf5_cv_system_scope_threads=no], [hdf5_cv_system_scope_threads=no])]) @@ -1861,85 +1670,7 @@ AC_CHECK_FUNCS([gethostname getpwuid getrusage gettimeofday]) AC_CHECK_FUNCS([lstat rand_r random setsysinfo]) AC_CHECK_FUNCS([signal longjmp setjmp siglongjmp sigsetjmp sigprocmask]) AC_CHECK_FUNCS([snprintf srandom strdup symlink system]) -AC_CHECK_FUNCS([tmpfile asprintf vasprintf waitpid]) - -## Check for vsnprintf() separately, so we can detect situations where it -## doesn't return the correct size for formatted strings that are too large -## for the buffer provided -AC_CHECK_FUNCS([vsnprintf], - - ## Check if vsnprintf() returns correct size for strings that don't fit - ## into the size allowed. If vsnprintf() works correctly on this platform, - ## it should return a value of 42 for the test below - ## - ## Note that vsnprintf fails in two different ways: - ## - In IRIX64, calls to vnsprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return the size of the buffer minus one. - ## - In HP/UX, calls to vsnprintf() with a formatted string that - ## is larger than the buffer size allowed incorrectly - ## return (-1) - AC_MSG_CHECKING([if vsnprintf returns correct value]) - - AC_CACHE_VAL([hdf5_cv_vsnprintf_works], - AC_TRY_RUN([ -#include -#include -#include - -int test_vsnprintf(const char *fmt,...) -{ - va_list ap; - char *s = malloc(16); - int ret; - - va_start(ap, fmt); - ret=vsnprintf(s,16,"%s",ap); - va_end(ap); - - return(ret!=42 ? 1 : 0); -} - -int main(void) -{ - exit(test_vsnprintf("%s","A string that is longer than 16 characters")); -} - ],[hdf5_cv_vsnprintf_works=yes],[hdf5_cv_vsnprintf_works=no],)) - - if test ${hdf5_cv_vsnprintf_works} = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([VSNPRINTF_WORKS], [1], - [Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed]) - else - AC_MSG_RESULT([no]) - fi - ,) - -## ---------------------------------------------------------------------- -## Check that a lone colon can be used as an argument -## This is not true on Cray X1, which interprets a lone colon as a -## system command. -## -AC_CACHE_CHECK([if lone colon can be used as an argument], - [hdf5_cv_lone_colon], - [ - echo "int main(int argc, char * argv[]) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh - chmod 700 conftest.sh - - ./conftest.sh 2> conftest.out - rm -f a.out - TEST_OUTPUT=`cat conftest.out` - - if test "X$TEST_OUTPUT" = "X"; then - hdf5_cv_lone_colon=yes - else - hdf5_cv_lone_colon=no - fi - ]) - -AC_SUBST([H5_LONE_COLON]) H5_LONE_COLON="$hdf5_cv_lone_colon" +AC_CHECK_FUNCS([tmpfile asprintf vasprintf vsnprintf waitpid]) ## ---------------------------------------------------------------------- ## Check compiler characteristics @@ -1990,19 +1721,18 @@ AC_MSG_CHECKING([how to print long long]) AC_CACHE_VAL([hdf5_cv_printf_ll], [ for hdf5_cv_printf_ll in l ll L q unknown; do - AC_TRY_RUN([ - #include - #include - #include - - int main(void) - { - char *s = malloc(128); - long long x = (long long)1048576 * (long long)1048576; - sprintf(s,"%${hdf5_cv_printf_ll}d",x); - exit(strcmp(s,"1099511627776")); - } - ], [break],,[continue]) + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include + #include + #include + ],[[ + char *s = malloc(128); + long long x = (long long)1048576 * (long long)1048576; + sprintf(s,"%${hdf5_cv_printf_ll}d",x); + exit(strcmp(s,"1099511627776")); + ]])] + , [break],,[continue]) done]) AC_MSG_RESULT([%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u]) @@ -2392,15 +2122,6 @@ if test -n "$PARALLEL"; then ;; esac - ## Trying to include -I/usr/include and -L/usr/lib is redundant and - ## can mess some compilers up. - if test "X$mpe_inc" = "X/usr/include"; then - mpe_inc="" - fi - if test "X$mpe_lib" = "X/usr/lib"; then - mpe_lib="" - fi - if test -n "$mpe_inc"; then saved_CPPFLAGS="$CPPFLAGS" saved_AM_CPPFLAGS="$AM_CPPFLAGS" @@ -2513,61 +2234,6 @@ else fi ## ---------------------------------------------------------------------- -## Decide whether the data accuracy has higher priority during data -## conversions. If not, some hard conversions will still be prefered even -## though the data may be wrong (for example, some compilers don't -## support denormalized floating values) to maximize speed. -## -AC_MSG_CHECKING([whether data accuracy is guaranteed during data conversions]) -AC_ARG_ENABLE([dconv-accuracy], - [AS_HELP_STRING([--enable-dconv-accuracy], - [if data accuracy is guaranteed during - data conversions [default=yes]])], - [DATA_ACCURACY=$enableval], [DATA_ACCURACY=yes]) - -if test "$DATA_ACCURACY" = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE([WANT_DATA_ACCURACY], [1], - [Data accuracy is prefered to speed during data conversions]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## denormalized floating-point values. -## (This flag should be set for all machines, except for the Crays, where -## the cache value is set in it's config file) -## -AC_MSG_CHECKING([if converting denormalized floating-point values is possible]) -AC_CACHE_VAL([hdf5_cv_convert_denormal_float], [hdf5_cv_convert_denormal_float=yes]) - -if test ${hdf5_cv_convert_denormal_float} = "yes"; then - AC_DEFINE([CONVERT_DENORMAL_FLOAT], [1], - [Define if your system can handle converting denormalized floating-point values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle converting -## floating-point to long long values. -## (This flag should be _unset_ for all machines, except for Windows, where -## it's set in the custom Windows H5pubconf.h file) -## -AC_MSG_CHECKING([if converting floating-point values to long long is not working]) -AC_CACHE_VAL([hdf5_cv_convert_float_llong_not_works], [hdf5_cv_convert_float_llong_not_works=no]) - -if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then - AC_DEFINE([HW_FP_TO_LLONG_NOT_WORKS], [1], - [Define if your system can't handle converting floating-point values to long long.]) - AC_MSG_RESULT([true]) -else - AC_MSG_RESULT([false]) -fi - -## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine has window style pathname, ## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). ## (This flag should be _unset_ for all machines, except for Windows, where @@ -2586,515 +2252,6 @@ case "`uname`" in ;; esac -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## long double to integers accurately. This flag should be set "yes" for -## all machines except all SGIs. For SGIs, some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x. -## -AC_MSG_CHECKING([if converting from long double to integers is accurate]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_accurate], [hdf5_cv_ldouble_to_integer_accurate=yes]) -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_ACCURATE], [1], - [Define if your system can convert long double to integers accurately.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can do conversion from -## long double to integers regardless of accuracy. This flag should be -## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -## compiler has 'floating exception' when converting 'long double' to all -## integers except 'unsigned long long'. Other HP-UX systems are unknown -## yet. (1/8/05 - SLU) - -AC_MSG_CHECKING([if converting from long double to integers works]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_works], - [AC_TRY_RUN([ - int main(void) - { - void *align; - long double ld= 9701917572145405952.00L; - unsigned char v1; - short v2; - unsigned int v3; - int ret = 0; - - align = (void*)malloc(sizeof(long double)); - memcpy(align, &ld, sizeof(long double)); - - /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting - *from 'long double' to integers*/ - v1=(unsigned char)(*((long double*)align)); - v2=(short)(*((long double*)align)); - v3=(unsigned int)(*((long double*)align)); - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_integer_works=yes], [hdf5_cv_ldouble_to_integer_works=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_WORKS], [1], - [Define if your system can convert from long double to integer values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## integers to long double. (This flag should be set "yes" for all -## machines except all SGIs, where some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x) -## -AC_MSG_CHECKING([if accurately converting from integers to long double]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_integer_to_ldouble_accurate], [hdf5_cv_integer_to_ldouble_accurate=yes]) -fi - -if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then - AC_DEFINE([INTEGER_TO_LDOUBLE_ACCURATE], [1], - [Define if your system can accurately convert from integers to long double values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned long' to 'float' values. -## (This flag should be set for all machines, except for Pathscale compiler -## on Sandia's Linux machine where the compiler interprets 'unsigned long' -## values as negative when the first bit of 'unsigned long' is on during -## the conversion to float.) -## -AC_MSG_CHECKING([if accurately converting unsigned long to float values]) - -AC_CACHE_VAL([hdf5_cv_ulong_to_float_accurate], - [AC_TRY_RUN([ - int main(void) - { - int ret = 0; - unsigned long l1; - unsigned long l2; - unsigned long l3; - float f1; - float f2; - float f3; - - - if(sizeof(unsigned long)==8) { - l1 = 0xffffffffffffffffUL; - l2 = 0xffffffffffff0000UL; - l3 = 0xf000000000000000UL; - - f1 = (float)l1; - f2 = (float)l2; - f3 = (float)l3; - - if((f1 < 0) || (f2 < 0) || (f3 < 0)) - ret = 1; - } - -done: - exit(ret); - } - ], [hdf5_cv_ulong_to_float_accurate=yes], [hdf5_cv_ulong_to_float_accurate=no],)]) - -if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then - AC_DEFINE([ULONG_TO_FLOAT_ACCURATE], [1], - [Define if your system accurately converting unsigned long to float values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'unsigned (long) long' values to 'float' and 'double' values. -## (This flag should be set for all machines, except for the SGIs, where -## the cache value is set in the config/irix6.x config file) and Solaris -## 64-bit machines, where the short program below tests if round-up is -## correctly handled. -## -AC_MSG_CHECKING([if accurately converting unsigned long long to floating-point values]) - -if test ${host_os_novers} = "solaris2.x"; then - AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate], - [AC_TRY_RUN([ - int main(void) - { - unsigned long l1; - unsigned long l2; - unsigned long l3; - unsigned long l4; - unsigned long long ld1; - unsigned long long ld2; - unsigned long long ld3; - unsigned long long ld4; - double d1, d2, d3, d4; - unsigned char s[8]; - int ret = 0; - - if(sizeof(unsigned long)==8) { - l1 = 0xf000000000000b00UL; /*Round-down case*/ - l2 = 0xf000000000000401UL; /*Round-up case*/ - l3 = 0xf000000000000400UL; /*Round-down case*/ - l4 = 0xf000000000000c00UL; /*Round-up case*/ - - d1 = (double)l1; - d2 = (double)l2; - d3 = (double)l3; - d4 = (double)l4; - } else if(sizeof(unsigned long long)==8) { - ld1 = 0xf000000000000b00ULL; /*Round-down case*/ - ld2 = 0xf000000000000401ULL; /*Round-up case*/ - ld3 = 0xf000000000000400ULL; /*Round-down case*/ - ld4 = 0xf000000000000c00ULL; /*Round-up case*/ - - d1 = (double)ld1; - d2 = (double)ld2; - d3 = (double)ld3; - d4 = (double)ld4; - } else { - ret = 1; - goto done; - } - - memcpy(s, &d1, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d2, 8); - if(s[7]!=1) - ret = 1; - - memcpy(s, &d3, 8); - if(s[7]!=0) - ret = 1; - - memcpy(s, &d4, 8); - if(s[7]!=2) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=no],)]) -else - AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes]) -fi - -if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then - AC_DEFINE([ULONG_TO_FP_BOTTOM_BIT_ACCURATE], [1], - [Define if your system can accurately convert unsigned (long) long values to floating-point values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float' or 'double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for PGI compiler -## where round-up happens when the fraction of float-point value is greater -## than 0.5. -## -AC_MSG_CHECKING([if accurately roundup converting floating-point to unsigned long long values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_ullong_accurate], - [AC_TRY_RUN([ - int main(void) - { - float f = 111.60f; - double d = 222.55L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d; - int ret = 0; - - if(l1 == 112) - ret = 1; - if(l2 == 223) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_fp_to_ullong_accurate=yes], [hdf5_cv_fp_to_ullong_accurate=no],)]) - -if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then - AC_DEFINE([FP_TO_ULLONG_ACCURATE], [1], - [Define if your system roundup accurately converting floating-point to unsigned long long values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'float', 'double' or 'long double' to 'unsigned long long' values. -## (This flag should be set for all machines, except for HP-UX machines -## where the maximal number for unsigned long long is 0x7fffffffffffffff -## during conversion. -## -AC_MSG_CHECKING([if right maximum converting floating-point to unsigned long long values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_ullong_right_maximum], - [AC_TRY_RUN([ - int main(void) - { - float f = 9701917572145405952.00f; - double d1 = 9701917572145405952.00L; - long double d2 = 9701917572145405952.00L; - double d3 = 2e40L; - unsigned long long l1 = (unsigned long long)f; - unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3 = (unsigned long long)d2; - unsigned long long l4; - unsigned long long l5 = 0x7fffffffffffffffULL; - int ret = 0; - - if(l1 <= l5 || l2 <= l5 || l3 <= l5) - ret = 1; - - l4 = (unsigned long long)d3; - if(l4 <= l5) - ret = 1; - -done: - exit(ret); - } - ], [hdf5_cv_fp_to_ullong_right_maximum=yes], [hdf5_cv_fp_to_ullong_right_maximum=no],)]) - -if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then - AC_DEFINE([FP_TO_ULLONG_RIGHT_MAXIMUM], [1], - [Define if your system has right maximum convert floating-point to unsigned long long values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to 'unsigned int' values. (This flag should be set for -## all machines, except for some Intel compilers on some Linux.) -## -AC_MSG_CHECKING([if correctly converting long double to unsigned int values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_uint_accurate], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 2733248032.9183987530L; - unsigned int i; - int ret = 0; - - i = (unsigned int)ld; - if(i!=2733248032 && i!=2733248031 && i!=2733248033) - ret = 1; - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_uint_accurate=yes], [hdf5_cv_ldouble_to_uint_accurate=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then - AC_DEFINE([LDOUBLE_TO_UINT_ACCURATE], [1], - [Define if your system can convert long double to unsigned int values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'unsigned long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -AC_MSG_CHECKING([if compiling unsigned long long to floating-point typecasts work]) -AC_CACHE_VAL([hdf5_cv_ullong_to_fp_cast_works], [hdf5_cv_ullong_to_fp_cast_works=yes]) - -if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then - AC_DEFINE([ULLONG_TO_FP_CAST_WORKS], [1], - [Define if your system can compile unsigned long long to floating-point casts.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -AC_MSG_CHECKING([if compiling long long to floating-point typecasts work]) -AC_CACHE_VAL([hdf5_cv_llong_to_fp_cast_works], [hdf5_cv_llong_to_fp_cast_works=yes]) - -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - AC_DEFINE([LLONG_TO_FP_CAST_WORKS], [1], - [Define if your system can compile long long to floating-point casts.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can convert from -## 'unsigned long long' to 'long double' without precision loss. -## (This flag should be set for all machines, except for FreeBSD(sleipnir) -## where the last 2 bytes of mantissa are lost when compiler tries to do -## the conversion, and Cygwin where compiler doesn't do rounding correctly.) -## -AC_MSG_CHECKING([if converting unsigned long long to long double with precision]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no} -else - AC_CACHE_VAL([hdf5_cv_ullong_to_ldouble_precision], - [AC_TRY_RUN([ - #include - #include - - int main(void) - { - /* General variables */ - int endian; - int tst_value = 1; - int ret = 0; - - /* For FreeBSD */ - unsigned long long l = 0xa601e80bda85fcefULL; - long double ld; - unsigned char *c1, *c2; - size_t size; - - /* For Cygwin */ - unsigned long long l_cyg = 0xfffffffffffffff0ULL; - long double ld_cyg; - unsigned char *c2_cyg; - size_t size_cyg; - - - /* Determine this system's endianess */ - c1 = (unsigned char*)calloc(1, sizeof(int)); - memcpy((void*)c1, &tst_value, sizeof(int)); - if(c1[0]==1) - endian = 0; /* little endian */ - else - endian = 1; /* big endian */ - - /* For FreeBSD */ - size = sizeof(long double); - memset(&ld, 0, size); - ld = (long double)l; - - c2 = (unsigned char*)calloc(1, size); - memcpy((void*)c2, &ld, size); - - /* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel - * architecture(sleipnir) where it happens. */ - /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/ - if(endian==0 && c2[0]==0) { /*little endian*/ - ret = 1; - goto done; - } - - /* For Cygwin */ - size_cyg = sizeof(long double); - memset(&ld_cyg, 0, size); - ld_cyg = (long double)l_cyg; - - c2_cyg = (unsigned char*)calloc(1, size_cyg); - memcpy((void*)c2_cyg, &ld_cyg, size_cyg); - - /* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin - * where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ..., - * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000 - * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ..., - * 0x0000403efffffffffffff000 ... - */ - if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0) - ret = 1; - - done: - if(c1) - free(c1); - if(c2) - free(c2); - if(c2_cyg) - free(c2_cyg); - exit(ret); - } - ], [hdf5_cv_ullong_to_ldouble_precision=yes], [hdf5_cv_ullong_to_ldouble_precision=no],)]) -fi - -if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then - AC_DEFINE([ULLONG_TO_LDOUBLE_PRECISION], [1], - [Define if your system can convert unsigned long long to long double with correct precision.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can handle overflow converting -## all floating-point to all integer types. -## (This flag should be set for all machines, except for Cray X1 where -## floating exception is generated when the floating-point value is greater -## than the maximal integer value). -## -AC_MSG_CHECKING([if overflows normally converting floating-point to integer values]) - -AC_CACHE_VAL([hdf5_cv_fp_to_integer_overflow_works], - [AC_TRY_RUN([ - int main(void) - { - float f = 2147483648.0f; - int i; - - i = (int)f; - -done: - exit(0); - } - ], [hdf5_cv_fp_to_integer_overflow_works=yes], [hdf5_cv_fp_to_integer_overflow_works=no],)]) - -if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then - AC_DEFINE([FP_TO_INTEGER_OVERFLOW_WORKS], [1], - [Define if your system can handle overflow converting floating-point to integer values.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - ## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine is using a special algorithm to convert ## 'long double' to '(unsigned) long' values. (This flag should only be set for @@ -3110,61 +2267,60 @@ if test ${ac_cv_sizeof_long_double} = 0; then hdf5_cv_ldouble_to_long_special=${hdf5_cv_ldouble_to_long_special=no} else AC_CACHE_VAL([hdf5_cv_ldouble_to_long_special], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 20041683600089727.779961L; - long ll; - unsigned long ull; - unsigned char s[16]; - unsigned char s2[8]; - int ret = 1; - - if(sizeof(long double) == 16 && sizeof(long) == 8) { - /*make sure the long double type has 16 bytes in size and - * 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /* Assign the hexadecimal value of long double type. */ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - - ll = (long)ld; - memcpy(s2, &ll, 8); - - /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 - * and gets wrong value 20041683600089730 on the IBM Power6 Linux. - * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f - * and gets the correct value 20041683600089727. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; - - ull = (unsigned long)ld; - memcpy(s2, &ull, 8); - - /* The unsigned long is the same as signed long. */ - if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && - s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) - ret = 0; - } - } - - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)]) + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include + ],[[ + long double ld = 20041683600089727.779961L; + long ll; + unsigned long ull; + unsigned char s[16]; + unsigned char s2[8]; + int ret = 1; + + if(sizeof(long double) == 16 && sizeof(long) == 8) { + /*make sure the long double type has 16 bytes in size and + * 11 bits of exponent. If it is, + *the bit sequence should be like below. It's not + *a decent way to check but this info isn't available. */ + memcpy(s, &ld, 16); + if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && + s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && + s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { + + /* Assign the hexadecimal value of long double type. */ + s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; + s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; + s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; + s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; + + memcpy(&ld, s, 16); + + ll = (long)ld; + memcpy(s2, &ll, 8); + + /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82 + * and gets wrong value 20041683600089730 on the IBM Power6 Linux. + * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f + * and gets the correct value 20041683600089727. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + + ull = (unsigned long)ld; + memcpy(s2, &ull, 8); + + /* The unsigned long is the same as signed long. */ + if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce && + s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f) + ret = 0; + } + } + exit(ret); + ]])] + , [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)]) fi if test ${hdf5_cv_ldouble_to_long_special} = "yes"; then @@ -3189,63 +2345,63 @@ if test ${ac_cv_sizeof_long_double} = 0; then hdf5_cv_long_to_ldouble_special=${hdf5_cv_long_to_ldouble_special=no} else AC_CACHE_VAL([hdf5_cv_long_to_ldouble_special], - [AC_TRY_RUN([ - int main(void) - { - long double ld; - long ll; - unsigned long ull; - unsigned char s[16]; - int flag=0, ret=1; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long)==8) { - ll = 0x003fffffffffffffL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /* The library converts the value to 0x434fffffffffffff8000000000000000. - * In decimal it is 18014398509481982.000000, one value short of the original. - * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - if(flag==1 && sizeof(unsigned long)==8) { - ull = 0xffffffffffffffffUL; - ld = (long double)ull; - memcpy(s, &ld, 16); - /* Use a different value from signed long to test. The problem is the same - * for both long and unsigned long. The value is 18446744073709551615. - * The library converts the value to 0x43effffffffffffffe000000000000000. - * In decimal it's 18446744073709548544.000000, very different from the original. - * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. - * The value is correct in decimal. It uses some special - * algorithm. We're going to define the macro and skip the test until - * we can figure out how they do it. */ - if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && - s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && - s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) - ret = 0; - } - done: - exit(ret); - } - ], [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)]) + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include + ],[[ + long double ld; + long ll; + unsigned long ull; + unsigned char s[16]; + int flag=0, ret=1; + + /*Determine if long double has 16 byte in size, 11 bit exponent, and + *the bias is 0x3ff */ + if(sizeof(long double) == 16) { + ld = 1.0L; + memcpy(s, &ld, 16); + if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) + flag = 1; + } + + if(flag==1 && sizeof(long)==8) { + ll = 0x003fffffffffffffL; + ld = (long double)ll; + memcpy(s, &ld, 16); + /* The library converts the value to 0x434fffffffffffff8000000000000000. + * In decimal it is 18014398509481982.000000, one value short of the original. + * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + if(flag==1 && sizeof(unsigned long)==8) { + ull = 0xffffffffffffffffUL; + ld = (long double)ull; + memcpy(s, &ld, 16); + /* Use a different value from signed long to test. The problem is the same + * for both long and unsigned long. The value is 18446744073709551615. + * The library converts the value to 0x43effffffffffffffe000000000000000. + * In decimal it's 18446744073709548544.000000, very different from the original. + * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000. + * The value is correct in decimal. It uses some special + * algorithm. We're going to define the macro and skip the test until + * we can figure out how they do it. */ + if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && + s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 && + s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 && + s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00) + ret = 0; + } + exit(ret); + ]])] + , [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)]) fi if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then @@ -3257,154 +2413,8 @@ else fi ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## 'long double' to '(unsigned) long long' values. (This flag should be set for -## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -## start to go wrong on these two machines. Adjusting it higher to -## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -## values wildly wrong. This test detects this wrong behavior and disable the test. -## -AC_MSG_CHECKING([if correctly converting long double to (unsigned) long long values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_llong_accurate=${hdf5_cv_ldouble_to_llong_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_llong_accurate], - [AC_TRY_RUN([ - int main(void) - { - long double ld = 20041683600089727.779961L; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int ret = 0; - - if(sizeof(long double) == 16) { - /*make sure the long double type is the same as the failing type - *which has 16 bytes in size and 11 bits of exponent. If it is, - *the bit sequence should be like below. It's not - *a decent way to check but this info isn't available. */ - memcpy(s, &ld, 16); - if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 && - s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 && - s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) { - - /*slightly adjust the bit sequence (s[8]=0xdf). The converted - *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/ - s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3; - s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0; - s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c; - s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20; - - memcpy(&ld, s, 16); - ll = (long long)ld; - ull = (unsigned long long)ld; - - if(ll != 20041683600089728 || ull != 20041683600089728) - ret = 1; - } - } - done: - exit(ret); - } - ], [hdf5_cv_ldouble_to_llong_accurate=yes], [hdf5_cv_ldouble_to_llong_accurate=no],)]) -fi - -if test ${hdf5_cv_ldouble_to_llong_accurate} = "yes"; then - AC_DEFINE([LDOUBLE_TO_LLONG_ACCURATE], [1], - [Define if your system can convert long double to (unsigned) long long values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can accurately convert -## '(unsigned) long long' to 'long double' values. (This flag should be set for -## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -## as big as they should be. -## -AC_MSG_CHECKING([if correctly converting (unsigned) long long to long double values]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_llong_to_ldouble_correct=${hdf5_cv_llong_to_ldouble_correct=no} -else - AC_CACHE_VAL([hdf5_cv_llong_to_ldouble_correct], - [AC_TRY_RUN([ - int main(void) - { - long double ld; - long long ll; - unsigned long long ull; - unsigned char s[16]; - int flag=0, ret=0; - - /*Determine if long double has 16 byte in size, 11 bit exponent, and - *the bias is 0x3ff */ - if(sizeof(long double) == 16) { - ld = 1.0L; - memcpy(s, &ld, 16); - if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 && - s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) - flag = 1; - } - - if(flag==1 && sizeof(long long)==8) { - ll = 0x01ffffffffffffffLL; - ld = (long double)ll; - memcpy(s, &ld, 16); - /*Check if the bit sequence is as supposed to be*/ - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - if(flag==1 && sizeof(unsigned long long)==8) { - ull = 0x01ffffffffffffffULL; - ld = (long double)ull; - memcpy(s, &ld, 16); - if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff || - s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff || - s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00) - ret = 1; - } - done: - exit(ret); - } - ], [hdf5_cv_llong_to_ldouble_correct=yes], [hdf5_cv_llong_to_ldouble_correct=no],)]) -fi - -if test ${hdf5_cv_llong_to_ldouble_correct} = "yes"; then - AC_DEFINE([LLONG_TO_LDOUBLE_CORRECT], [1], - [Define if your system can convert (unsigned) long long to long double values correctly.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine generates bad code -## for the H5VM_log2_gen() routine in src/H5VMprivate.h -## (This flag should be set to no for all machines, except for SGI IRIX64, -## where the cache value is set to yes in it's config file) -## -AC_MSG_CHECKING([if bad code for log2 routine is generated]) -AC_CACHE_VAL([hdf5_cv_bad_log2_code_generated], [hdf5_cv_bad_log2_code_generated=no]) - -if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then - AC_DEFINE([BAD_LOG2_CODE_GENERATED], [1], - [Define if your system generates wrong code for log2 routine.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- ## Set some variables for general configuration information to be saved -## and installed with the libraries. +## and installed with the libraries (used to generate libhdf5.settings). ## ## HDF5 version from the first line of the README.txt file. @@ -3515,53 +2525,6 @@ fi AC_SUBST([ROOT]) ROOT="`$pwd`" ## ---------------------------------------------------------------------- -## Move any compiler-specific libraries into the main LIBS varaible. -## -LIBS="$DEFAULT_LIBS $LIBS" - -## ---------------------------------------------------------------------- -## Determine the runtime libraries we may need to include in the -## libtools command so that executables will find the correct dynamic -## libraries. -## -AC_SUBST([DYNAMIC_DIRS]) DYNAMIC_DIRS="" - -if test -n "$AM_LDFLAGS $LDFLAGS"; then - for d in $AM_LDFLAGS $LDFLAGS ; do - case "$d" in - -L*) - d="`echo $d | sed -e 's/-L//g'`" - case "$d" in - .*) - ## If the path isn't absolute, make it so by - ## prepending the ROOT directory to it. - d=${ROOT}/$d - ;; - esac - DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" - ;; - esac - done -fi - -if test -n "$AM_CPPFLAGS"; then - TEMP_CPPFLAGS="" - for d in $AM_CPPFLAGS ; do - case "$d" in - -I.*) - ## If the path isn't absolute, make it so by prepending - ## the ROOT directory to it. - d="`echo $d | sed -e 's/-I//g'`" - d="-I${ROOT}/${d}" - ;; - esac - TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS" - done - AM_CPPFLAGS=$TEMP_CPPFLAGS -fi - - -## ---------------------------------------------------------------------- ## Some programs shouldn't be built by default (e.g., programs to generate ## data files used by tests, some optional tests). ## Check if they want such programs built anyway. @@ -3767,18 +2730,8 @@ AM_CONDITIONAL([BUILD_HDF5_HL_CONDITIONAL], [test "X$HDF5_HL" = "Xyes"]) ## The directory search list AC_SUBST([SEARCH]) SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' -cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' -SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH -## We don't need to say when we're entering directories if we're using -## GNU make because make does it for us. -if test "X$GMAKE" = "Xyes"; then - AC_SUBST([SETX]) SETX=":" -else - AC_SUBST([SETX]) SETX="set -x" -fi - ## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index da8174b..1f33f04 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -39,7 +39,7 @@ set (examples foreach (example ${examples}) add_executable (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c) TARGET_NAMING (${example} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${example} " " " ") + TARGET_C_PROPERTIES (${example} ${LIB_TYPE} " " " ") target_link_libraries (${example} ${HDF5_LIB_TARGET}) set_target_properties (${example} PROPERTIES FOLDER examples) endforeach (example ${examples}) @@ -47,7 +47,7 @@ endforeach (example ${examples}) if (H5_HAVE_PARALLEL) add_executable (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c) TARGET_NAMING (ph5example ${LIB_TYPE}) - TARGET_C_PROPERTIES (ph5example " " " ") + TARGET_C_PROPERTIES (ph5example ${LIB_TYPE} " " " ") target_link_libraries (ph5example ${HDF5_LIB_TARGET}) set_target_properties (ph5example PROPERTIES FOLDER examples) endif (H5_HAVE_PARALLEL) diff --git a/examples/Makefile.in b/examples/Makefile.in index d0b3423..5d76be3 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -353,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -385,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -409,11 +407,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -476,7 +472,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/examples/run-c-ex.sh.in b/examples/run-c-ex.sh.in index 9b2a2bb..6b5d0f7 100644 --- a/examples/run-c-ex.sh.in +++ b/examples/run-c-ex.sh.in @@ -33,7 +33,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/fortran/Makefile.in b/fortran/Makefile.in index 9812745..55ede05 100644 --- a/fortran/Makefile.in +++ b/fortran/Makefile.in @@ -409,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -441,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -465,11 +463,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -532,7 +528,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt index 1f59f32..2bf0bf6 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -8,7 +8,7 @@ PROJECT (HDF5_F90_EXAMPLES C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Define Sources @@ -41,57 +41,52 @@ set (F2003_examples foreach (example ${examples}) add_executable (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (f90_ex_${example} ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f90_ex_${example} " " " ") - if (WIN32) - set_property (TARGET f90_ex_${example} - APPEND PROPERTY COMPILE_DEFINITIONS - HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f90_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (f90_ex_${example} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) - set_target_properties (f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f90_ex_${example} PROPERTIES FOLDER examples/fortran) + target_include_directories (f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f90_ex_${example} PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endforeach (example ${examples}) if (HDF5_ENABLE_F2003) foreach (example ${F2003_examples}) add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (f03_ex_${example} ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f03_ex_${example} " " " ") - if (WIN32) - set_property (TARGET f03_ex_${example} - APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f03_ex_${example} ${LIB_TYPE} " " " ") target_link_libraries (f03_ex_${example} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) - set_target_properties (f03_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f03_ex_${example} PROPERTIES FOLDER examples/fortran03) + target_include_directories (f03_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f03_ex_${example} PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran03 + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endforeach (example ${F2003_examples}) endif (HDF5_ENABLE_F2003) if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) add_executable (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90) TARGET_NAMING (f90_ex_ph5example ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example " " " ") - if (WIN32) - set_property (TARGET f90_ex_ph5example - APPEND PROPERTY COMPILE_DEFINITIONS - HDF5F90_WINDOWS - ) - endif (WIN32) + TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example ${LIB_TYPE} " " " ") target_link_libraries (f90_ex_ph5example ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ${MPI_Fortran_LIBRARIES} ) - set_target_properties (f90_ex_ph5example PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (f90_ex_ph5example PROPERTIES FOLDER examples/fortran) + target_include_directories (f90_ex_ph5example PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f90_ex_ph5example PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) if (BUILD_TESTING) diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index fb56b0d..dd2fb46 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -361,7 +361,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -393,7 +392,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -417,11 +415,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -484,7 +480,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/fortran/examples/run-fortran-ex.sh.in b/fortran/examples/run-fortran-ex.sh.in index ead7361..a4d4550 100644 --- a/fortran/examples/run-fortran-ex.sh.in +++ b/fortran/examples/run-fortran-ex.sh.in @@ -34,7 +34,7 @@ EXIT_FAILURE=1 # Where the tool is installed. # default is relative path to installed location of the tools -prefix="${prefix:-../../../}" +prefix="${prefix:-@prefix@}" PARALLEL=@PARALLEL@ # Am I in parallel mode? AR="@AR@" RANLIB="@RANLIB@" diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 22a091e..c015072 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -54,7 +54,10 @@ if (WIN32 AND MSVC) LINK_FLAGS "/SUBSYSTEM:CONSOLE" ) endif (WIN32 AND MSVC) -set_target_properties (H5test_FortranHavekind PROPERTIES LINKER_LANGUAGE Fortran) +set_target_properties (H5test_FortranHavekind PROPERTIES + LINKER_LANGUAGE Fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) set (CMD $) add_custom_command ( @@ -142,7 +145,7 @@ set (f90CStub_C_HDRS ) add_library (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} ${f90CStub_C_SRCS} ${f90CStub_C_HDRS}) -TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIB_TARGET}") H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} ${LIB_TYPE}) @@ -247,8 +250,7 @@ if (WIN32) HDF5F90_WINDOWS ) endif (WIN32) -TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) +TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) target_link_libraries (${HDF5_F90_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET}) if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) target_link_libraries (${HDF5_F90_LIB_TARGET} ${MPI_Fortran_LIBRARIES}) @@ -259,6 +261,7 @@ set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES FOLDER libraries/fortran LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -278,100 +281,50 @@ install ( ) if (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5fortran_types.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/hdf5.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5global.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5g.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5i.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5s.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5z.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5_dble_interface.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - if (H5_TEST_KIND_NAME) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/${H5_TEST_KIND_NAME}.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - endif (H5_TEST_KIND_NAME) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}) else (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5fortran_types.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/hdf5.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5global.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5g.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5i.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5s.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5z.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t_provisional.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5_dble_interface.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - if (H5_TEST_KIND_NAME) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/${H5_TEST_KIND_NAME}.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) - endif (H5_TEST_KIND_NAME) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}) endif (WIN32) +set (mod_files + ${MOD_BUILD_DIR}/h5fortran_types.mod + ${MOD_BUILD_DIR}/hdf5.mod + ${MOD_BUILD_DIR}/h5global.mod + ${MOD_BUILD_DIR}/h5a.mod + ${MOD_BUILD_DIR}/h5d.mod + ${MOD_BUILD_DIR}/h5e.mod + ${MOD_BUILD_DIR}/h5f.mod + ${MOD_BUILD_DIR}/h5g.mod + ${MOD_BUILD_DIR}/h5i.mod + ${MOD_BUILD_DIR}/h5l.mod + ${MOD_BUILD_DIR}/h5lib.mod + ${MOD_BUILD_DIR}/h5o.mod + ${MOD_BUILD_DIR}/h5p.mod + ${MOD_BUILD_DIR}/h5r.mod + ${MOD_BUILD_DIR}/h5s.mod + ${MOD_BUILD_DIR}/h5t.mod + ${MOD_BUILD_DIR}/h5z.mod + ${MOD_BUILD_DIR}/h5a_provisional.mod + ${MOD_BUILD_DIR}/h5d_provisional.mod + ${MOD_BUILD_DIR}/h5e_provisional.mod + ${MOD_BUILD_DIR}/h5f_provisional.mod + ${MOD_BUILD_DIR}/h5l_provisional.mod + ${MOD_BUILD_DIR}/h5lib_provisional.mod + ${MOD_BUILD_DIR}/h5o_provisional.mod + ${MOD_BUILD_DIR}/h5p_provisional.mod + ${MOD_BUILD_DIR}/h5r_provisional.mod + ${MOD_BUILD_DIR}/h5t_provisional.mod + ${MOD_BUILD_DIR}/h5_dble_interface.mod +) +install ( + FILES + ${mod_files} + DESTINATION + ${HDF5_INSTALL_INCLUDE_DIR} + COMPONENT + fortheaders +) + #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c index a108384..f4082a9 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -632,7 +632,7 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ * Allocate temporary buffer and copy references from Fortran. */ n = (unsigned int)*dims; - buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n)); + buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*n); if ( buf_c != NULL ) { for (i = 0; i < n; i++) HDmemcpy(&buf_c[i], &buf[i], sizeof(haddr_t)); @@ -699,7 +699,7 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_ /* * Allocate temporary buffer and copy references from Fortran. */ - buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(n)); + buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*n); if ( buf_c != NULL ) { for (i = 0; i < n; i++) { HDmemcpy(&buf_c[i], buf, H5R_DSET_REG_REF_BUF_SIZE); @@ -1722,7 +1722,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_s max_len = (size_t)dims[0]; num_elem = H5Sget_select_npoints(c_mem_space_id); - if(num_elem != dims[1]) return ret_value; + if(num_elem != (hssize_t)dims[1]) return ret_value; c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t)); if (c_buf == NULL) return ret_value; @@ -2037,7 +2037,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spac max_len = (size_t)dims[0]; num_elem = H5Sget_select_npoints(c_mem_space_id); - if(num_elem != dims[1]) return ret_value; + if(num_elem != (hssize_t)dims[1]) return ret_value; c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t)); if (c_buf == NULL) return ret_value; diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c index 7455fca..1696672 100644 --- a/fortran/src/H5Ff.c +++ b/fortran/src/H5Ff.c @@ -632,7 +632,7 @@ nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen) /* * Call H5Fget_name function */ - if ((size_c = (size_t_f)H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0) + if ((size_c = H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0) HGOTO_DONE(FAIL); /* @@ -703,13 +703,16 @@ h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f /******/ { herr_t ret_value=0; /* Return value */ - + ssize_t c_buf_req; /* * Call h5fget_file_image function */ - if ((*buf_req = (size_t_f)H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0) + + if ( (c_buf_req = H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0) HGOTO_DONE(FAIL); + *buf_req = (size_t_f)c_buf_req; + done: return ret_value; } diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c index ad3ea49..7f755b3 100644 --- a/fortran/src/H5Gf.c +++ b/fortran/src/H5Gf.c @@ -67,7 +67,7 @@ nh5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, /* * Call H5Gcreate function. */ - if(*size_hint == OBJECT_NAMELEN_DEFAULT_F ){ + if(*size_hint == (size_t_f)OBJECT_NAMELEN_DEFAULT_F ){ c_grp_id = H5Gcreate2((hid_t)*loc_id, c_name,(hid_t)*lcpl_id,(hid_t)*gcpl_id,(hid_t)*gapl_id);} else { /* Create the group creation property list */ diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c index 7efa10a..6523ab4 100644 --- a/fortran/src/H5Lf.c +++ b/fortran/src/H5Lf.c @@ -677,9 +677,9 @@ done: /****if* H5Lf/h5lget_name_by_idx_c * NAME - * h5lget_name_by_idx_c + * h5lget_name_by_idx_c * PURPOSE - * Call H5Lget_name_by_idx + * Call H5Lget_name_by_idx * INPUTS * * loc_id - File or group identifier specifying location of subject group @@ -694,10 +694,10 @@ done: * name - Buffer in which link value is returned * size - The size of the link name on success * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 10, 2008 + * March 10, 2008 * SOURCE */ int_f @@ -706,9 +706,10 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, size_t_f *size, _fcd name, hid_t_f *lapl_id) /******/ { - char *c_group_name = NULL; /* Buffer to hold C string */ + char *c_group_name = NULL; /* Buffer to hold C string */ char *c_name = NULL; /* Buffer to hold C string */ size_t c_size; + ssize_t c_size_link; int_f ret_value = 0; /* Return value */ /* @@ -725,10 +726,12 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, if(NULL == (c_name = (char *)HDmalloc(c_size))) HGOTO_DONE(FAIL) - if((*size = (size_t_f)H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field, + if((c_size_link = H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field, (H5_iter_order_t)*order, (hsize_t)*n,c_name, c_size, (hid_t)*lapl_id)) < 0) HGOTO_DONE(FAIL) + *size = (size_t_f)c_size_link; + /* * Convert C name to FORTRAN and place it in the given buffer */ diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c index ad8b7ed..ae344a5 100644 --- a/fortran/src/H5Of.c +++ b/fortran/src/H5Of.c @@ -23,6 +23,8 @@ #include "H5f90.h" #include "H5Eprivate.h" +int_f +fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info); int_f fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) { @@ -874,6 +876,7 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, char *c_comment = NULL; /* Buffer to hold C string */ char *c_name = NULL; /* Buffer to hold C string */ int_f ret_value = 0; /* Return value */ + ssize_t c_bufsize; size_t c_commentsize; /* @@ -895,9 +898,11 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, * Call H5Oget_comment_by_name function. */ - if((*bufsize = (size_t_f)H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0) + if((c_bufsize = H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0) HGOTO_DONE(FAIL); + *bufsize = (size_t_f)c_bufsize; + /* * Convert C name to FORTRAN and place it in the given buffer */ diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c index fa4dc5b..e9082d6 100644 --- a/fortran/src/H5Pf.c +++ b/fortran/src/H5Pf.c @@ -160,41 +160,32 @@ done: /****if* H5Pf/h5pget_class_c * NAME - * h5pget_class_c + * h5pget_class_c * PURPOSE - * Call H5Pget_class to determine property list class + * Call H5Pget_class to determine property list class * INPUTS - * prp_id - identifier of the dataspace + * prp_id - identifier of the dataspace * OUTPUTS - * classtype - class type; possible values are: - * H5P_ROOT_F -1 - * H5P_FILE_CREATE_F 0 - * H5P_FILE_ACCESS_F 1 - * H5P_DATASET_CREATE_F 2 - * H5P_DATASET_XFER_F 3 - * H5P_FILE_MOUNT_F 4 + * classtype - class type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * SOURCE */ int_f -nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype) +nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype) /******/ { hid_t c_classtype; int_f ret_value = 0; - c_classtype = H5Pget_class((hid_t)*prp_id); - if(c_classtype == H5P_ROOT) { - *classtype = H5P_ROOT; + if( (c_classtype = H5Pget_class((hid_t)*prp_id)) < 0) HGOTO_DONE(FAIL) - } - *classtype = (int_f)c_classtype; + *classtype = (hid_t_f)c_classtype; done: return ret_value; diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90 index 0d85252..3409f15 100644 --- a/fortran/src/H5Pff.f90 +++ b/fortran/src/H5Pff.f90 @@ -237,18 +237,10 @@ CONTAINS ! Returns the property list class for a property list. ! ! INPUTS -! ! prp_id - property list identifier +! ! OUTPUTS -! ! classtype - property list class -! Possible values are: -! H5P_ROOT_F -! H5P_FILE_CREATE_F -! H5P_FILE_ACCESS_F -! H5P_DATASET_CREATE_F -! H5P_DATASET_XFER_F -! H5P_FILE_MOUNT_F ! hdferr: - error code ! Success: 0 ! Failure: -1 @@ -265,30 +257,21 @@ CONTAINS ! Fortran90 Interface: SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - INTEGER, INTENT(OUT) :: classtype ! The type of the property list - ! to be created. Possible values are: - ! H5P_ROOT_F - ! H5P_FILE_CREATE_F - ! H5P_FILE_ACCESS_F - ! H5P_DATASET_CREATE_F - ! H5P_DATASET_XFER_F - ! H5P_FILE_MOUNT_F + INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier + INTEGER(HID_T), INTENT(OUT) :: classtype ! The type of the property list + ! to be created. INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** -! INTEGER, EXTERNAL :: h5pget_class_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pget_class_c(prp_id, classtype) USE H5GLOBAL !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_C'::h5pget_class_c !DEC$ENDIF - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER, INTENT(OUT) :: classtype + INTEGER(HID_T), INTENT(IN) :: prp_id + INTEGER(HID_T), INTENT(OUT) :: classtype END FUNCTION h5pget_class_c END INTERFACE @@ -1449,7 +1432,7 @@ CONTAINS !****s* H5P/h5pget_fapl_core_f ! NAME -! h5pget_fapl_core_f +! h5pget_fapl_core_f ! ! PURPOSE ! Queries core file driver properties. @@ -1487,9 +1470,6 @@ CONTAINS !***** INTEGER :: backing_store_flag -! INTEGER, EXTERNAL :: h5pget_fapl_core_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag) USE H5GLOBAL @@ -3644,7 +3624,7 @@ CONTAINS ! size - Actual length of the class name ! NOTE: If provided buffer "name" is smaller, ! than name will be truncated to fit into -! provided user buffer +! provided user buffer. ! hdferr: - error code ! Success: 0 ! Failure: -1 @@ -4222,50 +4202,46 @@ CONTAINS ! Fortran90 Interface: SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map ! Mapping array - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl ! Property list for each memory usage type - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name ! Names of member file - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr - LOGICAL, INTENT(IN) :: relax ! Flag - INTEGER, INTENT(OUT) :: hdferr ! Error code - ! 0 on success and -1 on failure + INTEGER(HID_T), INTENT(IN) :: prp_id + INTEGER, DIMENSION(*), INTENT(IN) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name + REAL, DIMENSION(*), INTENT(IN) :: memb_addr + LOGICAL, INTENT(IN) :: relax + INTEGER, INTENT(OUT) :: hdferr !***** - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm INTEGER :: maxlen - INTEGER :: flag + INTEGER :: flag = 0 INTEGER :: i -! INTEGER, EXTERNAL :: h5pset_fapl_multi_c -! MS FORTRAN needs explicit interface for C functions called here. -! INTERFACE INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & maxlen, memb_addr, flag) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c !DEC$ENDIF !DEC$ATTRIBUTES reference :: memb_name INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr - !INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(*), INTENT(IN) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name + REAL, DIMENSION(*), INTENT(IN) :: memb_addr + INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen INTEGER, INTENT(IN) :: flag END FUNCTION h5pset_fapl_multi_c END INTERFACE + maxlen = LEN(memb_name(1)) - DO i=0, H5FD_MEM_NTYPES_F-1 + DO i=1, H5FD_MEM_NTYPES_F lenm(i) = LEN_TRIM(memb_name(i)) ENDDO - flag = 0 - IF (relax) flag = 1 - hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag) - + IF(relax) flag = 1 + hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag) + END SUBROUTINE h5pset_fapl_multi_l !****s* H5P/h5pset_fapl_multi_s ! NAME @@ -4303,6 +4279,7 @@ CONTAINS INTERFACE INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc !DEC$ENDIF @@ -4346,51 +4323,50 @@ CONTAINS SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map - INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name - !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr - REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr + INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name + REAL, DIMENSION(*), INTENT(OUT) :: memb_addr INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out LOGICAL, INTENT(OUT) :: relax INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm INTEGER :: maxlen INTEGER :: c_maxlen_out INTEGER :: flag INTEGER :: i - -! INTEGER, EXTERNAL :: h5pget_fapl_multi_c -! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & maxlen, memb_addr, flag, c_maxlen_out) USE H5GLOBAL + IMPLICIT NONE !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c !DEC$ENDIF !DEC$ATTRIBUTES reference :: memb_name INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier - INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map - INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl - CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name - REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr - INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm + INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map + INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl + CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name + REAL, DIMENSION(*), INTENT(OUT) :: memb_addr + INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen INTEGER :: c_maxlen_out INTEGER, INTENT(OUT) :: flag END FUNCTION h5pget_fapl_multi_c END INTERFACE - maxlen = LEN(memb_name(0)) - DO i=0, H5FD_MEM_NTYPES_F-1 + + maxlen = LEN(memb_name(1)) + DO i=1, H5FD_MEM_NTYPES_F lenm(i) = LEN_TRIM(memb_name(i)) ENDDO - hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out) + hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out) + relax = .TRUE. - IF(flag .EQ. 0) relax = .FALSE. + IF(flag .EQ. 0) relax = .FALSE. IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out END SUBROUTINE h5pget_fapl_multi_f !****s* H5P/h5pset_szip_f diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c index 19fa6b1..068f24e 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -148,13 +148,11 @@ h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *r { int ret_value = -1; char *c_name; - size_t c_namelen; /* * Convert FORTRAN name to C name */ - c_namelen = (size_t)*namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; /* diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90 index 9ee815f..8f40607 100644 --- a/fortran/src/H5Rff_F03.f90 +++ b/fortran/src/H5Rff_F03.f90 @@ -551,7 +551,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id TYPE(hobj_ref_t_f), INTENT(IN), TARGET :: ref INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr !***** @@ -598,7 +598,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id TYPE(hdset_reg_ref_t_f), INTENT(IN), TARGET :: ref INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr !***** INTEGER(SIZE_T) :: size_default @@ -647,7 +647,7 @@ CONTAINS INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN) :: ref - CHARACTER(LEN=*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(OUT) :: hdferr INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size !***** diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c index f6803ac..6947d64 100644 --- a/fortran/src/H5Sf.c +++ b/fortran/src/H5Sf.c @@ -298,7 +298,7 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock, if (rank < 0 ) return ret_value; c_startblock = (hsize_t)*startblock; - c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*rank)); + c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*(hsize_t)rank)); if (!c_buf) return ret_value; ret_value = H5Sget_select_hyper_blocklist(c_space_id, c_startblock, @@ -425,7 +425,7 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, if (rank < 0 ) return ret_value; c_startpoint = (hsize_t)*startpoint; - c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*rank)); + c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*(hsize_t)rank)); if (!c_buf) return ret_value; ret_value = H5Sget_select_elem_pointlist(c_space_id, c_startpoint, c_num_points, c_buf); @@ -434,7 +434,7 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, /* and add 1 to account for array's starting at one in Fortran */ i2 = 0; for( i = 0; i < c_num_points; i++) { - i1 = rank*(i+1); + i1 = (hsize_t)rank*(i+1); for(j = 0; j < rank; j++) { buf[i2] = (hsize_t_f)(c_buf[i1-1]+1); i2 = i2 + 1; @@ -442,10 +442,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, } } -/* for( i = 0; i < c_num_points*rank; i++) { */ -/* printf("%i \n", (int)c_buf[i]+1); */ -/* } */ - if (ret_value >= 0 ) ret_value = 0; HDfree(c_buf); @@ -453,8 +449,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, return ret_value; } - - /****if* H5Sf/h5sselect_all_c * NAME * h5sselect_all_c @@ -1230,7 +1224,8 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi H5S_seloper_t c_op; herr_t status; int rank; - int i, j; + size_t i; + int j; hsize_t *c_coord; size_t c_nelements; @@ -1239,11 +1234,11 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi c_space_id = *space_id; rank = H5Sget_simple_extent_ndims(c_space_id); - c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*rank*(*nelements)); + c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*(size_t)rank*((size_t)*nelements)); if(!c_coord) return ret_value; - for (i=0; i< *nelements; i++) { + for (i=0; i< (size_t)*nelements; i++) { for (j = 0; j < rank; j++) { - c_coord[j+i*rank] = (hsize_t)coord[j + i*rank]; + c_coord[(size_t)j+i*(size_t)rank] = (hsize_t)coord[(size_t)j + i*(size_t)rank]; } } diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c index 878119f..7e1aa42 100644 --- a/fortran/src/H5Tf.c +++ b/fortran/src/H5Tf.c @@ -26,9 +26,9 @@ /****if* H5Tf/h5topen_c * NAME - * h5topen_c + * h5topen_c * PURPOSE - * Call H5Topen2 to open a datatype + * Call H5Topen2 to open a datatype * INPUTS * loc_id - file or group identifier * name - name of the datatype within file or group @@ -78,9 +78,9 @@ done: /****if* H5Tf/h5tcommit_c * NAME - * h5tcommit_c + * h5tcommit_c * PURPOSE - * Call H5Tcommit2 to commit a datatype + * Call H5Tcommit2 to commit a datatype * INPUTS * loc_id - file or group identifier * name - name of the datatype within file or group @@ -126,9 +126,9 @@ done: /****if* H5Tf/h5tclose_c * NAME - * h5tclose_c + * h5tclose_c * PURPOSE - * Call H5Tclose to close the datatype + * Call H5Tclose to close the datatype * INPUTS * type_id - identifier of the datatype to be closed * RETURNS @@ -156,9 +156,9 @@ nh5tclose_c ( hid_t_f *type_id ) /****if* H5Tf/h5tcopy_c * NAME - * h5tcopy_c + * h5tcopy_c * PURPOSE - * Call H5Tcopy to copy a datatype + * Call H5Tcopy to copy a datatype * INPUTS * type_id - identifier of the datatype to be copied * OUTPUTS @@ -190,9 +190,9 @@ nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id) /****if* H5Tf/h5tequal_c * NAME - * h5tequal_c + * h5tequal_c * PURPOSE - * Call H5Tequal to copy a datatype + * Call H5Tequal to copy a datatype * INPUTS * type1_id - datatype identifier * type2_id - datatype identifier @@ -289,9 +289,9 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype) /****if* H5Tf/h5tget_order_c * NAME - * h5tget_order_c + * h5tget_order_c * PURPOSE - * Call H5Tget_order to determine byte order + * Call H5Tget_order to determine byte order * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -333,9 +333,9 @@ nh5tget_order_c ( hid_t_f *type_id , int_f *order) /****if* H5Tf/h5tset_order_c * NAME - * h5tset_order_c + * h5tset_order_c * PURPOSE - * Call H5Tset_order to set byte order + * Call H5Tset_order to set byte order * INPUTS * type_id - identifier of the dataspace * order; possible values are: @@ -374,9 +374,9 @@ nh5tset_order_c ( hid_t_f *type_id , int_f *order) /****if* H5Tf/h5tget_size_c * NAME - * h5tget_size_c + * h5tget_size_c * PURPOSE - * Call H5Tget_size to get size of the datatype + * Call H5Tget_size to get size of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -409,9 +409,9 @@ nh5tget_size_c ( hid_t_f *type_id , size_t_f *size) /****if* H5Tf/h5tset_size_c * NAME - * h5tset_size_c + * h5tset_size_c * PURPOSE - * Call H5Tget_size to get size of the datatype + * Call H5Tget_size to get size of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -445,9 +445,9 @@ nh5tset_size_c ( hid_t_f *type_id , size_t_f *size) /****if* H5Tf/h5tget_precision_c * NAME - * h5tget_precision_c + * h5tget_precision_c * PURPOSE - * Call H5Tget_precision to get precision of the datatype + * Call H5Tget_precision to get precision of the datatype * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -480,9 +480,9 @@ nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision) /****if* H5Tf/h5tset_precision_c * NAME - * h5tset_precision_c + * h5tset_precision_c * PURPOSE - * Call H5Tset_precision to set precision of the datatype + * Call H5Tset_precision to set precision of the datatype * INPUTS * type_id - identifier of the dataspace * precision - number of significant bits @@ -515,9 +515,9 @@ nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision) /****if* H5Tf/h5tget_offset_c * NAME - * h5tget_offset_c + * h5tget_offset_c * PURPOSE - * Call H5Tget_offset to get bit offset of the first + * Call H5Tget_offset to get bit offset of the first * significant bit of the datatype * INPUTS * type_id - identifier of the dataspace @@ -552,9 +552,9 @@ nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset) /****if* H5Tf/h5tset_offset_c * NAME - * h5tset_offset_c + * h5tset_offset_c * PURPOSE - * Call H5Tset_offset to set bit offset of the first + * Call H5Tset_offset to set bit offset of the first * significant bit of the datatype * INPUTS * type_id - identifier of the dataspace @@ -588,9 +588,9 @@ nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset) /****if* H5Tf/h5tget_pad_c * NAME - * h5tget_pad_c + * h5tget_pad_c * PURPOSE - * Call H5Tget_pad to get the padding type of the least and + * Call H5Tget_pad to get the padding type of the least and * most-significant bit padding * * INPUTS @@ -629,11 +629,11 @@ nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad) /****if* H5Tf/h5tset_pad_c * NAME - * h5tset_pad_c + * h5tset_pad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_pad to set the padding type of the least and + * Call H5Tset_pad to set the padding type of the least and * most-significant bit padding * * INPUTS @@ -670,9 +670,9 @@ nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad ) /****if* H5Tf/h5tget_sign_c * NAME - * h5tget_sign_c + * h5tget_sign_c * PURPOSE - * Call H5Tget_sign to get sign type for an integer type + * Call H5Tget_sign to get sign type for an integer type * INPUTS * type_id - identifier of the dataspace * OUTPUTS @@ -705,9 +705,9 @@ nh5tget_sign_c ( hid_t_f *type_id , int_f *sign) /****if* H5Tf/h5tset_sign_c * NAME - * h5tset_sign_c + * h5tset_sign_c * PURPOSE - * Call H5Tset_sign to set sign type for an integer type + * Call H5Tset_sign to set sign type for an integer type * INPUTS * type_id - identifier of the dataspace * sign - sign type for an integer typ @@ -741,9 +741,9 @@ nh5tset_sign_c ( hid_t_f *type_id , int_f* sign) /****if* H5Tf/h5tget_fields_c * NAME - * h5tget_fields_c + * h5tget_fields_c * PURPOSE - * Call H5Tget_fields to get floating point datatype + * Call H5Tget_fields to get floating point datatype * bit field information * INPUTS * type_id - identifier of the dataspace @@ -785,9 +785,9 @@ nh5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f* /****if* H5Tf/h5tset_fields_c * NAME - * h5tset_fields_c + * h5tset_fields_c * PURPOSE - * Call H5Tset_fields to set floating point datatype + * Call H5Tset_fields to set floating point datatype * bit field information * INPUTS * type_id - identifier of the dataspace @@ -829,9 +829,9 @@ nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* e /****if* H5Tf/h5tget_ebias_c * NAME - * h5tget_ebias_c + * h5tget_ebias_c * PURPOSE - * Call H5Tget_ebias to get exponent bias of a + * Call H5Tget_ebias to get exponent bias of a * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -866,9 +866,9 @@ nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /****if* H5Tf/h5tset_ebias_c * NAME - * h5tset_ebias_c + * h5tset_ebias_c * PURPOSE - * Call H5Tset_ebias to set exponent bias of a + * Call H5Tset_ebias to set exponent bias of a * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -903,9 +903,9 @@ nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /****if* H5Tf/h5tget_norm_c * NAME - * h5tget_norm_c + * h5tget_norm_c * PURPOSE - * Call H5Tget_norm to get mantissa normalization + * Call H5Tget_norm to get mantissa normalization * of a floating-point datatype * INPUTS * type_id - identifier of the dataspace @@ -940,9 +940,9 @@ nh5tget_norm_c ( hid_t_f *type_id , int_f *norm) /****if* H5Tf/h5tset_norm_c * NAME - * h5tset_norm_c + * h5tset_norm_c * PURPOSE - * Call H5Tset_norm to set mantissa normalization of + * Call H5Tset_norm to set mantissa normalization of * floating-point type of the datatype * INPUTS * type_id - identifier of the dataspace @@ -977,9 +977,9 @@ nh5tset_norm_c ( hid_t_f *type_id , int_f *norm) /****if* H5Tf/h5tget_inpad_c * NAME - * h5tget_inpad_c + * h5tget_inpad_c * PURPOSE - * Call H5Tget_inpad to get the padding type for + * Call H5Tget_inpad to get the padding type for * unused bits in floating-point datatypes * * INPUTS @@ -1016,11 +1016,11 @@ nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype) /****if* H5Tf/h5tset_inpad_c * NAME - * h5tset_inpad_c + * h5tset_inpad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_inpad to set the padding type + * Call H5Tset_inpad to set the padding type * unused bits in floating-point datatype * * INPUTS @@ -1057,9 +1057,9 @@ nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype) /****if* H5Tf/h5tget_cset_c * NAME - * h5tget_cset_c + * h5tget_cset_c * PURPOSE - * Call H5Tget_cset to get character set + * Call H5Tget_cset to get character set * type of a string datatype * * INPUTS @@ -1095,11 +1095,11 @@ nh5tget_cset_c ( hid_t_f *type_id , int_f * cset) /****if* H5Tf/h5tset_cset_c * NAME - * h5tset_cset_c + * h5tset_cset_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_cset to set character set + * Call H5Tset_cset to set character set * type of a string datatype * * INPUTS @@ -1135,9 +1135,9 @@ nh5tset_cset_c ( hid_t_f *type_id, int_f * cset) /****if* H5Tf/h5tget_strpad_c * NAME - * h5tget_strpad_c + * h5tget_strpad_c * PURPOSE - * Call H5Tget_strpad to get string padding method + * Call H5Tget_strpad to get string padding method * for a string datatype * INPUTS * type_id - identifier of the dataspace @@ -1171,11 +1171,11 @@ nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad) /****if* H5Tf/h5tset_strpad_c * NAME - * h5tset_strpad_c + * h5tset_strpad_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_strpad to set string padding method + * Call H5Tset_strpad to set string padding method * for a string datatype * * INPUTS @@ -1211,9 +1211,9 @@ nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad) /****if* H5Tf/h5tget_nmembers_c * NAME - * h5tget_nmembers_c + * h5tget_nmembers_c * PURPOSE - * Call H5Tget_nmembers to get number of fields + * Call H5Tget_nmembers to get number of fields * in a compound datatype * INPUTS * type_id - identifier of the dataspace @@ -1246,9 +1246,9 @@ nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members) /****if* H5Tf/h5tget_member_name_c * NAME - * h5tget_member_name_c + * h5tget_member_name_c * PURPOSE - * Call H5Tget_member_name to get name + * Call H5Tget_member_name to get name * of a compound datatype * INPUTS * type_id - identifier of the dataspace @@ -1287,9 +1287,9 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n } /****if* H5Tf/h5tget_member_index_c * NAME - * h5tget_member_index_c + * h5tget_member_index_c * PURPOSE - * Call H5Tget_member_index to get an index of + * Call H5Tget_member_index to get an index of * the specified datatype filed or member. * INPUTS * type_id - datatype identifier @@ -1301,7 +1301,7 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, September 26, 2002 + * Thursday, September 26, 2002 * HISTORY * * SOURCE @@ -1312,15 +1312,13 @@ nh5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx) { int ret_value = -1; char *c_name; - size_t c_namelen; hid_t c_type_id; int c_index; /* * Convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; /* @@ -1340,9 +1338,9 @@ DONE: /****if* H5Tf/h5tget_member_offset_c * NAME - * h5tget_member_offset_c + * h5tget_member_offset_c * PURPOSE - * Call H5Tget_member_offset to get byte offset of the + * Call H5Tget_member_offset to get byte offset of the * beginning of a field within a compound datatype with * respect to the beginning of the compound data type datum * INPUTS @@ -1367,12 +1365,8 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) { int ret_value = -1; size_t c_offset; - hid_t c_type_id; - unsigned c_member_no; - c_type_id = *type_id; - c_member_no = *member_no; - c_offset = H5Tget_member_offset(c_type_id, c_member_no); + c_offset = H5Tget_member_offset((hid_t)*type_id, (unsigned)*member_no); *offset = (size_t_f)c_offset; ret_value = 0; return ret_value; @@ -1380,9 +1374,9 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) /****if* H5Tf/h5tget_array_dims_c * NAME - * h5tget_array_dims_c + * h5tget_array_dims_c * PURPOSE - * Call H5Tget_array_dims2 to get + * Call H5Tget_array_dims2 to get * dimensions of array datatype * INPUTS * type_id - identifier of the array datatype @@ -1423,9 +1417,9 @@ DONE: /****if* H5Tf/h5tget_array_ndims_c * NAME - * h5tget_array_ndims_c + * h5tget_array_ndims_c * PURPOSE - * Call H5Tget_array_ndims to get number + * Call H5Tget_array_ndims to get number * of dimensions of array datatype * INPUTS * type_id - identifier of the array datatype @@ -1460,9 +1454,9 @@ nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims) /****if* H5Tf/h5tget_super_c * NAME - * h5tget_super_c + * h5tget_super_c * PURPOSE - * Call H5Tget_super to get base datatype from which + * Call H5Tget_super to get base datatype from which * datatype was derived * INPUTS * type_id - identifier of the array datatype @@ -1498,9 +1492,9 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) /****if* H5Tf/h5tget_member_type_c * NAME - * h5tget_member_type_c + * h5tget_member_type_c * PURPOSE - * Call H5Tget_member_type to get the identifier of a copy of + * Call H5Tget_member_type to get the identifier of a copy of * the datatype of the field * INPUTS * type_id - identifier of the datatype @@ -1511,7 +1505,7 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1522,12 +1516,8 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) /******/ { int ret_value = -1; - hid_t c_type_id; - unsigned c_field_idx; - c_type_id = *type_id; - c_field_idx = *field_idx; - *datatype = (hid_t_f)H5Tget_member_type(c_type_id, c_field_idx); + *datatype = (hid_t_f)H5Tget_member_type((hid_t)*type_id, (unsigned)*field_idx); if(*datatype < 0) return ret_value; ret_value = 0; @@ -1537,9 +1527,9 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) /****if* H5Tf/h5tcreate_c * NAME - * h5tcreate_c + * h5tcreate_c * PURPOSE - * Call H5Tcreate to create a datatype + * Call H5Tcreate to create a datatype * INPUTS * cls - class type * size - size of the class memeber @@ -1573,20 +1563,20 @@ nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id) /****if* H5Tf/h5tinsert_c * NAME - * h5tinsert_c + * h5tinsert_c * PURPOSE - * Call H5Tinsert to adds another member to the compound datatype + * Call H5Tinsert to adds another member to the compound datatype * INPUTS - * type_id - identifier of the datatype - * name - Name of the field to insert - * namelen - length of the name - * offset - Offset in memory structure of the field to insert - * field_id - datatype identifier of the new member + * type_id - identifier of the datatype + * name - Name of the field to insert + * namelen - length of the name + * offset - Offset in memory structure of the field to insert + * field_id - datatype identifier of the new member * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1597,21 +1587,14 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_ /******/ { int ret_value = -1; - hid_t c_type_id; - hid_t c_field_id; char* c_name; - size_t c_namelen; - size_t c_offset; herr_t error; - c_offset =(size_t) *offset; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; - c_type_id = *type_id; - c_field_id = *field_id; - error = H5Tinsert(c_type_id, c_name, c_offset, c_field_id); + error = H5Tinsert((hid_t)*type_id, c_name, (size_t)*offset, (hid_t)*field_id); + HDfree(c_name); if(error < 0) return ret_value; ret_value = 0; @@ -1621,18 +1604,18 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_ /****if* H5Tf/h5tpack_c * NAME - * h5tpack_c + * h5tpack_c * PURPOSE - * Call H5Tpack tor ecursively remove padding from - * within a compound datatype to make it more efficient - * (space-wise) to store that data + * Call H5Tpack tor ecursively remove padding from + * within a compound datatype to make it more efficient + * (space-wise) to store that data * INPUTS - * type_id - identifier of the datatype + * type_id - identifier of the datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE @@ -1656,9 +1639,9 @@ nh5tpack_c(hid_t_f * type_id) /****if* H5Tf/h5tarray_create_c * NAME - * h5tarray_create_c + * h5tarray_create_c * PURPOSE - * Call H5Tarray_create2 to create array datatype + * Call H5Tarray_create2 to create array datatype * INPUTS * base_id - identifier of array base datatype * rank - array's rank @@ -1668,7 +1651,7 @@ nh5tpack_c(hid_t_f * type_id) * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, November 16, 2000 + * Thursday, November 16, 2000 * HISTORY * * SOURCE @@ -1687,7 +1670,7 @@ nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* typ * Transpose dimension arrays because of C-FORTRAN storage order */ for(u = 0; u < (unsigned)*rank ; u++) - c_dims[u] = (hsize_t)dims[(*rank - u) - 1]; + c_dims[u] = (hsize_t)dims[((unsigned)*rank - u) - 1]; if((c_type_id = H5Tarray_create2((hid_t)*base_id, (unsigned)*rank, c_dims)) < 0) goto DONE; @@ -1702,19 +1685,19 @@ DONE: /****if* H5Tf/h5tenum_create_c * NAME - * h5tenum_create_c + * h5tenum_create_c * PURPOSE - * Call H5Tenum_create to create a new enumeration datatype + * Call H5Tenum_create to create a new enumeration datatype * INPUTS - * parent_id - Datatype identifier for the base datatype + * parent_id - Datatype identifier for the base datatype * OUTPUTS - * new_type_id - datatype identifier for the new - * enumeration datatype + * new_type_id - datatype identifier for the new + * enumeration datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Tuesday, February 15, 1999 + * Tuesday, February 15, 1999 * HISTORY * * SOURCE @@ -1725,11 +1708,9 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) /******/ { int ret_value = 0; - hid_t c_parent_id; hid_t c_new_type_id; - c_parent_id = *parent_id; - c_new_type_id = H5Tenum_create(c_parent_id); + c_new_type_id = H5Tenum_create((hid_t)*parent_id); if ( c_new_type_id < 0 ) ret_value = -1; *new_type_id = (hid_t_f)c_new_type_id; @@ -1764,12 +1745,10 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) { int ret_value = -1; char* c_name; - size_t c_namelen; herr_t error; int_f c_value; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; c_value = *value; @@ -1785,9 +1764,9 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /****if* H5Tf/h5tenum_nameof_c * NAME - * h5tenum_nameof_c + * h5tenum_nameof_c * PURPOSE - * Call H5Tenum_nameof to find the symbol name that corresponds to + * Call H5Tenum_nameof to find the symbol name that corresponds to * the specified value of the enumeration datatype type * INPUTS * type_id - identifier of the datatype @@ -1829,9 +1808,9 @@ nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen) /****if* H5Tf/h5tenum_valueof_c * NAME - * h5tenum_valueof_c + * h5tenum_valueof_c * PURPOSE - * Call H5Tenum_valueof to find the value of that corresponds to + * Call H5Tenum_valueof to find the value of that corresponds to * the specified name of the enumeration datatype type * INPUTS * type_id - identifier of the datatype @@ -1853,16 +1832,12 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /******/ { int ret_value = -1; - hid_t c_type_id; char* c_name; - size_t c_namelen; herr_t error; - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; - c_type_id = *type_id; - error = H5Tenum_valueof(c_type_id, c_name, value); + error = H5Tenum_valueof((hid_t)*type_id, c_name, value); HDfree(c_name); if(error < 0) return ret_value; @@ -1873,9 +1848,9 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /****if* H5Tf/h5tget_member_value_c * NAME - * h5tget_member_value_c + * h5tget_member_value_c * PURPOSE - * Call H5Tget_member_value to get the value of an + * Call H5Tget_member_value to get the value of an * enumeration datatype member * INPUTS * type_id - identifier of the datatype @@ -1896,14 +1871,10 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) /******/ { int ret_value = -1; - hid_t c_type_id; - unsigned c_member_no; int c_value; herr_t error; - c_type_id = *type_id; - c_member_no = *member_no; - error = H5Tget_member_value(c_type_id, c_member_no, &c_value); + error = H5Tget_member_value((hid_t)*type_id, (unsigned)*member_no, &c_value); if(error < 0) return ret_value; *value = (int_f)c_value; @@ -1913,11 +1884,11 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) /****if* H5Tf/h5tset_tag_c * NAME - * h5tset_tag_c + * h5tset_tag_c * INPUTS * type_id - identifier of the dataspace * PURPOSE - * Call H5Tset_tag to set an opaque datatype tag + * Call H5Tset_tag to set an opaque datatype tag * INPUTS * type_id - identifier of the dataspace * tag - Unique ASCII string with which the opaque @@ -1937,16 +1908,12 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) /******/ { int ret_value = -1; - hid_t c_type_id; herr_t status; char* c_tag; - size_t c_namelen; - c_namelen = *namelen; - c_tag = (char *)HD5f2cstring(tag, c_namelen); + c_tag = (char *)HD5f2cstring(tag, (size_t)*namelen); - c_type_id = *type_id; - status = H5Tset_tag(c_type_id, c_tag); + status = H5Tset_tag((hid_t)*type_id, c_tag); HDfree(c_tag); if ( status < 0 ) return ret_value; @@ -1956,7 +1923,7 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) /****if* H5Tf/h5tget_tag_c * NAME - * h5tget_tag_c + * h5tget_tag_c * PURPOSE * Call H5Tset_tag to set an opaque datatype tag * INPUTS @@ -1994,9 +1961,9 @@ nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* taglen) } /****if* H5Tf/h5tvlen_create_c * NAME - * h5tvlen_create_c + * h5tvlen_create_c * PURPOSE - * Call H5Tvlen_create to create VL dtatype + * Call H5Tvlen_create to create VL dtatype * INPUTS * type_id - identifier of the base datatype * OUTPUTS @@ -2027,9 +1994,9 @@ nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id) } /****if* H5Tf/h5tis_variable_str_c * NAME - * h5tis_variable_str_c + * h5tis_variable_str_c * PURPOSE - * Call H5Tis_variable_str to detrmine if the datatype + * Call H5Tis_variable_str to detrmine if the datatype * is a variable string. * INPUTS * type_id - identifier of the dataspace @@ -2062,9 +2029,9 @@ nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) } /****if* H5Tf/h5tget_member_class_c * NAME - * h5tget_member_class_c + * h5tget_member_class_c * PURPOSE - * Call H5Tget_member_class to detrmine ithe class of the compound + * Call H5Tget_member_class to detrmine ithe class of the compound * datatype member * INPUTS * type_id - identifier of the dataspace @@ -2102,9 +2069,9 @@ nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) /****if* H5Tf/h5tcommit_anon_c * NAME - * h5tcommit_anon_c + * h5tcommit_anon_c * PURPOSE - * Call H5Tcommit_anon + * Call H5Tcommit_anon * INPUTS * loc_id - file or group identifier * dtype_id - dataset identifier @@ -2138,9 +2105,9 @@ nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, /****if* H5Tf/h5tcommitted_c * NAME - * h5tcommitted_c + * h5tcommitted_c * PURPOSE - * Call H5Tcommitted + * Call H5Tcommitted * dtype_id - dataset identifier * RETURNS * a positive value, for TRUE, if the datatype has been committed, @@ -2169,9 +2136,9 @@ nh5tcommitted_c(hid_t_f *dtype_id) /****if* H5Tf/h5tdecode_c * NAME - * h5tdecode_c + * h5tdecode_c * PURPOSE - * Call H5Tdecode + * Call H5Tdecode * INPUTS * * buf - Buffer for the data space object to be decoded. @@ -2215,9 +2182,9 @@ nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ) /****if* H5Tf/h5tencode_c * NAME - * h5tencode_c + * h5tencode_c * PURPOSE - * Call H5Tencode + * Call H5Tencode * INPUTS * * obj_id - Identifier of the object to be encoded. @@ -2285,9 +2252,9 @@ nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) /****if* H5Tf/h5tget_create_plist_c * NAME - * h5tget_create_plist_c + * h5tget_create_plist_c * PURPOSE - * Call H5Tget_create_plist + * Call H5Tget_create_plist * INPUTS * dtype_id - Datatype identifier * OUTPUTS @@ -2317,9 +2284,9 @@ nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) /****if* H5Tf/h5tcompiler_conv_c * NAME - * h5tcompiler_conv_c + * h5tcompiler_conv_c * PURPOSE - * Call H5Tcompiler_conv + * Call H5Tcompiler_conv * INPUTS * * src_id - Identifier for the source datatype. @@ -2351,9 +2318,9 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) } /****if* H5Tf/h5tget_native_type_c * NAME - * h5tget_native_type_c + * h5tget_native_type_c * PURPOSE - * Call H5Tget_native_type + * Call H5Tget_native_type * INPUTS * * dtype_id - Datatype identifier for the dataset datatype. @@ -2449,13 +2416,11 @@ h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value) int ret_value = -1; hid_t status; char *c_name; - size_t c_namelen; /* * Convert FORTRAN name to C name */ - c_namelen = *namelen; - c_name = (char *)HD5f2cstring(name, c_namelen); + c_name = (char *)HD5f2cstring(name, (size_t)*namelen); if (c_name == NULL) return ret_value; status = H5Tenum_insert( (hid_t)*type_id, c_name, value); diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index b5e40a8..6bde877 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -995,7 +995,7 @@ H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ); H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id ); H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id); H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); -H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype); +H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype); H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 415208c..f9f4a7b 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -470,7 +470,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_srcdir)/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -502,7 +501,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -526,11 +524,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -593,7 +589,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -729,7 +724,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/fortran/src/README b/fortran/src/README index 508da69..7af5df3 100644 --- a/fortran/src/README +++ b/fortran/src/README @@ -35,8 +35,6 @@ following platforms and compilers: * SunOS 5.6 with WorkshopCompilers 4.2 Fortran 90 1.2 * SunOS 5.7 with WorkshopCompilers 5.0 Fortran 90 2.0 * OSF1 V4.0 with Digital Fortran 90 4.1 - * IRIX64 6.5 (64 option only) with MIPSpro Compilers: Version 7.3.1m - mpt.1.4 * Linux RedHat 6.1, Kernel 2.2.12 with PGF90 * T3E with Cray Fortran: Version 3.4.0.0 with mpt 1.3 @@ -55,7 +53,6 @@ Compilation solaris digunix - irix linux Example: On Digital Unix systems use the following command @@ -91,7 +88,6 @@ Compilation grpdsetexample - creates datasets in the groups hyperslabexample - writes and reads a hyperslab selectele - writes element selections - grpit - iterates through the members of the group attrexample - creates and writes a dataset attribute compound - creates, writes and reads one dim array of structures mountexample - shows how to use mounting files to access a dataset diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in index b5a6486..6e2c9d3 100644 --- a/fortran/src/h5fc.in +++ b/fortran/src/h5fc.in @@ -313,7 +313,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index 3395906..2893156 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -4,14 +4,14 @@ PROJECT (HDF5_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- -INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) +INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) #----------------------------------------------------------------------------- # Add Test Lib #----------------------------------------------------------------------------- add_library (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} t.c) set_source_files_properties (t.c PROPERTIES LANGUAGE C) -TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_TEST_LIB_TARGET} @@ -46,8 +46,7 @@ if (WIN32) endif (BUILD_SHARED_LIBS) set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS) endif (WIN32) -TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} " " ${SHARED_LINK_FLAGS}) -set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran) +TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS}) target_link_libraries (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -58,6 +57,7 @@ set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/test/fortran LINKER_LANGUAGE Fortran INTERFACE_INCLUDE_DIRECTORIES "$/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- @@ -83,7 +83,7 @@ add_executable (testhdf5_fortran tHDF5.f90 ) TARGET_NAMING (testhdf5_fortran ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (testhdf5_fortran " " " ") +TARGET_FORTRAN_PROPERTIES (testhdf5_fortran ${LIB_TYPE} " " " ") target_link_libraries (testhdf5_fortran ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -92,8 +92,12 @@ target_link_libraries (testhdf5_fortran if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for testhdf5_fortran_1_8 add_executable (testhdf5_fortran_1_8 @@ -105,7 +109,7 @@ add_executable (testhdf5_fortran_1_8 tHDF5_1_8.f90 ) TARGET_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 " " " ") +TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 ${LIB_TYPE} " " " ") target_link_libraries (testhdf5_fortran_1_8 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -114,8 +118,12 @@ target_link_libraries (testhdf5_fortran_1_8 if (WIN32 AND MSVC) target_link_libraries (testhdf5_fortran_1_8 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (testhdf5_fortran_1_8 PROPERTIES FOLDER test/fortran) +target_include_directories (testhdf5_fortran_1_8 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (testhdf5_fortran_1_8 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fortranlib_test_F03 if (HDF5_ENABLE_F2003) @@ -130,7 +138,7 @@ if (HDF5_ENABLE_F2003) tHDF5_F03.f90 ) TARGET_NAMING (fortranlib_test_F03 ${LIB_TYPE}) - TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 " " " ") + TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 ${LIB_TYPE} " " " ") target_link_libraries (fortranlib_test_F03 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -139,14 +147,18 @@ if (HDF5_ENABLE_F2003) if (WIN32 AND MSVC) target_link_libraries (fortranlib_test_F03 "ws2_32.lib") endif (WIN32 AND MSVC) - set_target_properties (fortranlib_test_F03 PROPERTIES LINKER_LANGUAGE Fortran) - set_target_properties (fortranlib_test_F03 PROPERTIES FOLDER test/fortran) + target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (fortranlib_test_F03 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + ) endif (HDF5_ENABLE_F2003) #-- Adding test for fflush1 add_executable (fflush1 fflush1.f90) TARGET_NAMING (fflush1 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (fflush1 " " " ") +TARGET_FORTRAN_PROPERTIES (fflush1 ${LIB_TYPE} " " " ") target_link_libraries (fflush1 ${HDF5_F90_LIB_TARGET} ${HDF5_F90_TEST_LIB_TARGET} @@ -155,13 +167,17 @@ target_link_libraries (fflush1 if (WIN32 AND MSVC) target_link_libraries (fflush1 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush1 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush1 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush1 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush1 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) #-- Adding test for fflush2 add_executable (fflush2 fflush2.f90) TARGET_NAMING (fflush2 ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (fflush2 " " " ") +TARGET_FORTRAN_PROPERTIES (fflush2 ${LIB_TYPE} " " " ") target_link_libraries (fflush2 ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} @@ -170,7 +186,11 @@ target_link_libraries (fflush2 if (WIN32 AND MSVC) target_link_libraries (fflush2 "ws2_32.lib") endif (WIN32 AND MSVC) -set_target_properties (fflush2 PROPERTIES LINKER_LANGUAGE Fortran) -set_target_properties (fflush2 PROPERTIES FOLDER test/fortran) +target_include_directories (fflush2 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) +set_target_properties (fflush2 PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} +) include (CMakeTests.cmake) diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index 2be9485..4ec1ad5 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -479,7 +479,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -511,7 +510,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -535,11 +533,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -602,7 +598,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90 index 039dc6c..320d661 100644 --- a/fortran/test/fortranlib_test_1_8.f90 +++ b/fortran/test/fortranlib_test_1_8.f90 @@ -89,7 +89,7 @@ PROGRAM fortranlibtest total_error) ret_total_error = 0 - CALL test_h5s_encode(cleanup, ret_total_error) + CALL test_h5s_encode(ret_total_error) CALL write_test_status(ret_total_error, & ' Testing dataspace encoding and decoding', & total_error) @@ -100,6 +100,12 @@ PROGRAM fortranlibtest ' Testing scaleoffset filter', & total_error) + ret_total_error = 0 + CALL test_genprop_basic_class(ret_total_error ) + CALL write_test_status(ret_total_error, & + ' Testing basic generic property list class creation functionality', & + total_error) + WRITE(*,*) WRITE(*,*) ' ============================================ ' diff --git a/fortran/test/t.h b/fortran/test/t.h index d315bda..6d6af52 100644 --- a/fortran/test/t.h +++ b/fortran/test/t.h @@ -34,7 +34,7 @@ H5_FCTESTDLL int_f nh5_fixname_c H5_FCTESTDLL int_f nh5_cleanup_c (_fcd base_name, size_t_f *base_namelen, hid_t_f *fapl); -H5_FCTESTDLL void nh5_exit_c +H5_FCTESTDLL NORETURN void nh5_exit_c (int_f *status); H5_FCTESTDLL void nh5_env_nocleanup_c diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90 index 07ca6da..e3b3b2a 100644 --- a/fortran/test/tH5A.f90 +++ b/fortran/test/tH5A.f90 @@ -129,8 +129,6 @@ CONTAINS !data buffers ! INTEGER, DIMENSION(NX,NY) :: data_in - LOGICAL :: differ - ! !Initialize data_in buffer diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90 index 02bef53..8e20100 100644 --- a/fortran/test/tH5A_1_8.f90 +++ b/fortran/test/tH5A_1_8.f90 @@ -157,7 +157,7 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error) ' - Testing creating attributes by name', & total_error) - ! /* More complex tests with both "new format" and "shared" attributes */ + ! More complex tests with both "new format" and "shared" attributes IF( use_shared(j) ) THEN ret_total_error = 0 CALL test_attr_shared_rename(my_fcpl, my_fapl, ret_total_error) @@ -190,12 +190,12 @@ END SUBROUTINE attribute_test_1_8 SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_corder_create_compact(): Test basic H5A (attribute) code. !** Tests compact attribute storage on objects with attribute creation order info !** -!****************************************************************/ +!*************************************************************** ! Needed for get_info_by_name @@ -245,17 +245,17 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) data_dims = 0 ! WRITE(*,*) " - Testing Compact Storage of Attributes with Creation Order Info" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) CALL H5Pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error) CALL check("H5Pset_attr_creation_order",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) @@ -281,7 +281,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) my_dataset = dset3 END SELECT DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -298,7 +298,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) END DO END DO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -306,15 +306,15 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) @@ -341,34 +341,34 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) DO u = 0,max_compact-1 WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Retrieve information for attribute */ + ! Retrieve information for attribute CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, & f_corder_valid, corder, cset, data_size, error, lapl_id = H5P_DEFAULT_F ) !with optional CALL check("H5Aget_info_by_name_f", error, total_error) - ! /* Verify creation order of attribute */ + ! Verify creation order of attribute CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) - ! /* Retrieve information for attribute */ + ! Retrieve information for attribute CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, & f_corder_valid, corder, cset, data_size, error) ! without optional CALL check("H5Aget_info_by_name_f", error, total_error) - ! /* Verify creation order of attribute */ + ! Verify creation order of attribute CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) END DO END DO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -376,19 +376,19 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_corder_create_compact SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_null_space(): Test basic H5A (attribute) code. !** Tests storing attribute with "null" dataspace !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -426,41 +426,41 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) data_dims = 0 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error) CALL check("h5open_f",error,total_error) - ! /* Create dataspace for dataset attributes */ + ! Create dataspace for dataset attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create "null" dataspace for attribute */ + ! Create "null" dataspace for attribute CALL h5screate_f(H5S_NULL_F, null_sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error) CALL check("h5dcreate_f",error,total_error) - ! /* Add attribute with 'null' dataspace */ + ! Add attribute with 'null' dataspace - ! /* Create attribute */ + ! Create attribute CALL h5acreate_f(dataset, "null attr", H5T_NATIVE_INTEGER, null_sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! /* Try to read data from the attribute */ - ! /* (shouldn't fail, but should leave buffer alone) */ + ! Try to read data from the attribute + ! (shouldn't fail, but should leave buffer alone) value(1) = 103 data_dims(1) = 1 CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL check("h5aread_f",error,total_error) CALL verify("h5aread_f",value(1),103,total_error) -! /* Try to read data from the attribute again but*/ -! /* for a scalar */ +! Try to read data from the attribute again but +! for a scalar value_scalar = 104 data_dims(1) = 1 @@ -482,7 +482,7 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) CALL h5aget_info_f(attr, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f", error, total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f.corder",corder,0,total_error) CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) @@ -513,12 +513,12 @@ END SUBROUTINE test_attr_null_space SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_create_by_name(): Test basic H5A (attribute) code. !** Tests creating attributes by name !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -563,32 +563,32 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message IF(use_index(i))THEN WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index" ELSE WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index" ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN @@ -602,7 +602,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl_id=dcpl ) CALL check("h5dcreate_f2",error,total_error) @@ -614,7 +614,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) CALL check("h5dcreate_f4",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -632,39 +632,39 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) END SELECT - !/* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL H5Acreate_by_name_f(fid, dsetname, attrname, H5T_NATIVE_INTEGER, sid, & attr, error, lapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("H5Acreate_by_name_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for NEW attribute */ + ! Verify information for NEW attribute CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error) ! CALL check("FAILED IN attr_info_by_idx_check",total_error) ENDDO - ! /* Test opening attributes stored compactly */ + ! Test opening attributes stored compactly CALL attr_open_check(fid, dsetname, my_dataset, u, total_error) ENDDO - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) CASE (0) @@ -678,7 +678,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) dsetname = DSET3_NAME END SELECT - ! /* Create more attributes, to push into dense form */ + ! Create more attributes, to push into dense form DO u = max_compact, max_compact* 2 - 1 WRITE(chr2,'(I2.2)') u @@ -688,12 +688,12 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) attr, error, lapl_id=H5P_DEFAULT_F) CALL check("H5Acreate_by_name",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) @@ -701,7 +701,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -710,16 +710,16 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -728,12 +728,12 @@ END SUBROUTINE test_attr_create_by_name SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_info_by_idx(): Test basic H5A (attribute) code. !** Tests querying attribute info by index !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -790,31 +790,31 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F @@ -825,7 +825,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL check("H5Pset_attr_creation_order",error,total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error ) CALL check("h5dcreate_f",error,total_error) @@ -836,7 +836,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error ) CALL check("h5dcreate_f",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 @@ -849,7 +849,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) my_dataset = dset3 END SELECT - ! /* Check for query on non-existant attribute */ + ! Check for query on non-existant attribute n = 0 @@ -879,10 +879,10 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("h5aget_name_by_idx_f",error,minusone,total_error) - ! /* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO j = 0, max_compact-1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') j attrname = 'attr '//chr2 @@ -890,19 +890,19 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = j data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for new attribute */ + ! Verify information for new attribute !EP CALL attr_info_by_idx_check(my_dataset, attrname, INT(j,HSIZE_T), use_index(i), total_error ) htmp = j @@ -914,7 +914,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -922,17 +922,17 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END DO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -962,13 +962,13 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T - ! /* Verify the information for first attribute, in increasing creation order */ + ! Verify the information for first attribute, in increasing creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, hzero, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL verify("h5aget_info_by_idx_f",corder,0,total_error) - ! /* Verify the information for new attribute, in increasing creation order */ + ! Verify the information for new attribute, in increasing creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, n, & f_corder_valid, corder, cset, data_size, error) @@ -976,7 +976,7 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) - ! /* Verify the name for new link, in increasing creation order */ + ! Verify the name for new link, in increasing creation order ! Try with the correct buffer size @@ -990,24 +990,24 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) ENDIF CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) - ! /* Don't test "native" order if there is no creation order index, since + ! Don't test "native" order if there is no creation order index, since ! * there's not a good way to easily predict the attribute's order in the name ! * index. - ! */ + ! IF (use_index) THEN - ! /* Verify the information for first attribute, in native creation order */ + ! Verify the information for first attribute, in native creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, hzero, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) - ! /* Verify the information for new attribute, in native creation order */ + ! Verify the information for new attribute, in native creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, n, & f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_by_idx_f",error,total_error) CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) - ! /* Verify the name for new link, in increasing native order */ + ! Verify the name for new link, in increasing native order CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, & n, tmpname, error) ! check with no optional parameters CALL check("h5aget_name_by_idx_f",error,total_error) @@ -1075,12 +1075,12 @@ END SUBROUTINE attr_info_by_idx_check SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_shared_rename(): Test basic H5A (attribute) code. !** Tests renaming shared attributes in "compact" & "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1128,114 +1128,114 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension INTEGER :: arank = 1 ! Attribure rank - ! /* Initialize "big" attribute data */ + ! Initialize "big" attribute data - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create "big" dataspace for "large" attributes */ + ! Create "big" dataspace for "large" attributes CALL h5screate_simple_f(arank, adims2, big_sid, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Loop over type of shared components */ + ! Loop over type of shared components DO test_shared = 0, 2 - ! /* Make copy of file creation property list */ + ! Make copy of file creation property list CALL H5Pcopy_f(fcpl, my_fcpl, error) CALL check("H5Pcopy",error,total_error) - ! /* Set up datatype for attributes */ + ! Set up datatype for attributes CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error) CALL check("H5Tcopy",error,total_error) - ! /* Special setup for each type of shared components */ + ! Special setup for each type of shared components IF( test_shared .EQ. 0) THEN - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error) CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) CALL check(" H5Pset_shared_mesg_index_f",error, total_error) ELSE - ! /* Set up copy of file creation property list */ + ! Set up copy of file creation property list CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error) - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) - ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */ + ! Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error) ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close FCPL copy */ + ! Close FCPL copy CALL h5pclose_f(my_fcpl, error) CALL check("h5pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl) CALL check("h5open_f",error,total_error) - ! /* Commit datatype to file */ + ! Commit datatype to file IF(test_shared.EQ.2) THEN CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("H5Tcommit",error,total_error) ENDIF - ! /* Set up to query the object creation properties */ + ! Set up to query the object creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Add attributes to each dataset, until after converting to dense storage */ + ! Add attributes to each dataset, until after converting to dense storage DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on first dataset */ + ! Create "small" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! Create "big" attribute on first dataset */ + ! Create "big" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 attr_integer_data(1) = u + 1 @@ -1244,19 +1244,19 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on second dataset */ + ! Create "small" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 @@ -1264,12 +1264,12 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) CALL check("h5awrite_f",error,total_error) ELSE - ! /* Create "big" attribute on second dataset */ + ! Create "big" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) -! /* Write data into the attribute */ +! Write data into the attribute attr_integer_data(1) = u + 1 @@ -1278,103 +1278,103 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) ! CALL check("h5awrite_f",error,total_error) -! /* Check refcount for attribute */ +! Check refcount for attribute ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Create new attribute name */ + ! Create new attribute name WRITE(chr2,'(I2.2)') u attrname2 = 'new attr '//chr2 - ! /* Change second dataset's attribute's name */ + ! Change second dataset's attribute's name CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname, attrname2, error, lapl_id=H5P_DEFAULT_F) CALL check("H5Arename_by_name_f",error,total_error) - ! /* Check refcount on attributes now */ + ! Check refcount on attributes now - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset2, attrname2, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("H5Aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Check refcount on original attribute */ + ! Check refcount on original attribute CALL H5Aopen_f(dataset, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Change second dataset's attribute's name back to original */ + ! Change second dataset's attribute's name back to original CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname2, attrname, error) CALL check("H5Arename_by_name_f",error,total_error) - ! /* Check refcount on attributes now */ + ! Check refcount on attributes now - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset2, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Check refcount on original attribute */ + ! Check refcount on original attribute - ! /* Check refcount on renamed attribute */ + ! Check refcount on renamed attribute CALL H5Aopen_f(dataset, attrname, attr, error) CALL check("H5Aopen",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5tclose_f(attr_tid, error) CALL check("h5tclose_f",error,total_error) - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dataset2, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink datasets with attributes */ + ! Unlink datasets with attributes CALL H5Ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("HLdelete",error,total_error) CALL H5Ldelete_f(fid, DSET2_NAME, error) CALL check("HLdelete",error,total_error) - !/* Unlink committed datatype */ + ! Unlink committed datatype IF(test_shared == 2)THEN CALL H5Ldelete_f(fid, TYPE1_NAME, error) CALL check("HLdelete_f",error,total_error) ENDIF - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Check size of file */ + ! Check size of file !filesize = h5_get_file_size(FILENAME); !VERIFY(filesize, empty_filesize, "h5_get_file_size"); ENDDO - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(big_sid, error) @@ -1385,12 +1385,12 @@ END SUBROUTINE test_attr_shared_rename SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_delete_by_idx(): Test basic H5A (attribute) code. !** Tests deleting attribute by index !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1402,9 +1402,9 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) INTEGER(HID_T), INTENT(IN) :: fapl INTEGER, INTENT(INOUT) :: total_error CHARACTER(LEN=8) :: FileName = "tattr.h5" - INTEGER(HID_T) :: fid ! /* HDF5 File ID */ - INTEGER(HID_T) :: dcpl ! /* Dataset creation property list ID */ - INTEGER(HID_T) :: sid ! /* Dataspace ID */ + INTEGER(HID_T) :: fid ! HDF5 File ID + INTEGER(HID_T) :: dcpl ! Dataset creation property list ID + INTEGER(HID_T) :: sid ! Dataspace ID CHARACTER(LEN=8) :: DSET1_NAME = "Dataset1" CHARACTER(LEN=8) :: DSET2_NAME = "Dataset2" @@ -1442,40 +1442,40 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) INTEGER :: idx_type INTEGER :: order - INTEGER :: u ! /* Local index variable */ + INTEGER :: u ! Local index variable INTEGER :: Input1 INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T INTEGER :: minusone = -1 data_dims = 0 - ! /* Create dataspace for dataset & attributes */ + ! Create dataspace for dataset & attributes CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - !/* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO order = H5_ITER_INC_F, H5_ITER_DEC_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object IF(new_format)THEN IF(use_index(i))THEN @@ -1489,7 +1489,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDIF - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl ) CALL check("h5dcreate_f2",error,total_error) @@ -1500,7 +1500,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error, dcpl ) CALL check("h5dcreate_f4",error,total_error) - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1515,36 +1515,36 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) END SELECT - ! /* Check for deleting non-existant attribute */ + ! Check for deleting non-existant attribute !EP CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, 0_HSIZE_T,error, lapl_id=H5P_DEFAULT_F) CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, hzero,error, lapl_id=H5P_DEFAULT_F) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) - ! /* Create attributes, up to limit of compact form */ + ! Create attributes, up to limit of compact form DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify information for new attribute */ + ! Verify information for new attribute CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error ) ENDDO - !/* Check for out of bound deletions */ + ! Check for out of bound deletions CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error, lapl_id=H5P_DEFAULT_F) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) @@ -1563,11 +1563,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! CALL HDassert(0.AND."Toomanydatasets!") END SELECT - ! /* Delete attributes from compact storage */ + ! Delete attributes from compact storage DO u = 0, max_compact - 2 - ! /* Delete first attribute in appropriate order */ + ! Delete first attribute in appropriate order !EP CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error) @@ -1575,7 +1575,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL check("H5Adelete_by_idx_f",error,total_error) - ! /* Verify the attribute information for first attribute in appropriate order */ + ! Verify the attribute information for first attribute in appropriate order ! HDmemset(&ainfo, 0, sizeof(ainfo)); !EP CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, & @@ -1590,7 +1590,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("H5Aget_info_by_idx_f",corder, max_compact-(u + 2),total_error) ENDIF - ! /* Verify the name for first attribute in appropriate order */ + ! Verify the name for first attribute in appropriate order size = 7 ! *CHECK* IF NOT THE SAME SIZE CALL h5aget_name_by_idx_f(my_dataset, ".", idx_type, order,INT(0,hsize_t), & @@ -1607,7 +1607,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) ENDDO - ! /* Delete last attribute */ + ! Delete last attribute !EP CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error) CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, hzero, error) @@ -1615,7 +1615,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDDO -! /* Work on all the datasets */ +! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1629,11 +1629,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! CALL HDassert(0.AND."Toomanydatasets!") END SELECT - ! /* Create more attributes, to push into dense form */ + ! Create more attributes, to push into dense form DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -1641,24 +1641,24 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Check for out of bound deletion */ + ! Check for out of bound deletion CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO - ! /* Work on all the datasets */ + ! Work on all the datasets DO curr_dset = 0,NUM_DSETS-1 SELECT CASE (curr_dset) @@ -1670,15 +1670,15 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) my_dataset = dset3 END SELECT - ! /* Delete attributes from dense storage */ + ! Delete attributes from dense storage DO u = 0, (max_compact * 2) - 1 - 1 - ! /* Delete first attribute in appropriate order */ + ! Delete first attribute in appropriate order CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error) CALL check("H5Adelete_by_idx_f",error,total_error) - ! /* Verify the attribute information for first attribute in appropriate order */ + ! Verify the attribute information for first attribute in appropriate order CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), & f_corder_valid, corder, cset, data_size, error) @@ -1690,7 +1690,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL VERIFY("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error) ENDIF - ! /* Verify the name for first attribute in appropriate order */ + ! Verify the name for first attribute in appropriate order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); size = 7 ! *CHECK* if not the correct size @@ -1709,17 +1709,17 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDDO - ! /* Delete last attribute */ + ! Delete last attribute CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error, lapl_id=H5P_DEFAULT_F) CALL check("H5Adelete_by_idx_f",error,total_error) - !/* Check for deletion on empty attribute storage again */ + ! Check for deletion on empty attribute storage again CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error) CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dset1, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dset2, error) @@ -1727,18 +1727,18 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) CALL h5dclose_f(dset3, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO ENDDO ENDDO - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) @@ -1746,12 +1746,12 @@ END SUBROUTINE test_attr_delete_by_idx SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_shared_delete(): Test basic H5A (attribute) code. !** Tests deleting shared attributes in "compact" & "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -1796,77 +1796,77 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension INTEGER :: arank = 1 ! Attribure rank - ! /* Output message about test being performed */ + ! Output message about test being performed - ! /* Initialize "big" attribute DATA */ - ! /* Create dataspace for dataset */ + ! Initialize "big" attribute DATA + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - !/* Create "big" dataspace for "large" attributes */ + ! Create "big" dataspace for "large" attributes CALL h5screate_simple_f(arank, adims2, big_sid, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Loop over type of shared components */ + ! Loop over type of shared components DO test_shared = 0, 2 - ! /* Make copy of file creation property list */ + ! Make copy of file creation property list CALL H5Pcopy_f(fcpl, my_fcpl, error) CALL check("H5Pcopy",error,total_error) - ! /* Set up datatype for attributes */ + ! Set up datatype for attributes CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error) CALL check("H5Tcopy",error,total_error) - ! /* Special setup for each type of shared components */ + ! Special setup for each type of shared components IF( test_shared .EQ. 0) THEN - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error) CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) CALL check(" H5Pset_shared_mesg_index_f",error, total_error) ELSE - ! /* Set up copy of file creation property list */ + ! Set up copy of file creation property list CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error) - ! /* Make attributes > 500 bytes shared */ + ! Make attributes > 500 bytes shared CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error) - ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */ + ! Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error) CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error) ENDIF - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close FCPL copy */ + ! Close FCPL copy CALL h5pclose_f(my_fcpl, error) CALL check("h5pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl) CALL check("h5open_f",error,total_error) - ! /* Commit datatype to file */ + ! Commit datatype to file IF(test_shared.EQ.2) THEN CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("H5Tcommit",error,total_error) ENDIF - ! /* Set up to query the object creation properties */ + ! Set up to query the object creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Create datasets */ + ! Create datasets CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) @@ -1874,42 +1874,42 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl ) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl,error) CALL check("h5pclose_f", error, total_error) - ! /* Add attributes to each dataset, until after converting to dense storage */ + ! Add attributes to each dataset, until after converting to dense storage DO u = 0, (max_compact * 2) - 1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on first dataset */ + ! Create "small" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! Create "big" attribute on first dataset */ + ! Create "big" attribute on first dataset CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 @@ -1918,31 +1918,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Alternate between creating "small" & "big" attributes */ + ! Alternate between creating "small" & "big" attributes IF(MOD(u+1,2).EQ.0)THEN - ! /* Create "small" attribute on second dataset */ + ! Create "small" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute attr_integer_data(1) = u + 1 data_dims(1) = 1 CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error) CALL check("h5awrite_f",error,total_error) ELSE - ! /* Create "big" attribute on second dataset */ + ! Create "big" attribute on second dataset CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) -! /* Write data into the attribute */ +! Write data into the attribute attr_integer_data(1) = u + 1 @@ -1951,21 +1951,21 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL check("h5awrite_f",error,total_error) ENDIF - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Delete attributes from second dataset */ + ! Delete attributes from second dataset DO u = 0, max_compact*2-1 - ! /* Create attribute name */ + ! Create attribute name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 - ! /* Delete second dataset's attribute */ + ! Delete second dataset's attribute CALL H5Adelete_by_name_f(fid, DSET2_NAME, attrname,error,lapl_id=H5P_DEFAULT_F) CALL check("H5Adelete_by_name", error, total_error) @@ -1973,31 +1973,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) CALL check("h5aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Close attribute's datatype */ + ! Close attribute's datatype CALL h5tclose_f(attr_tid, error) CALL check("h5tclose_f",error,total_error) - ! /* Close Datasets */ + ! Close Datasets CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) CALL h5dclose_f(dataset2, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink datasets WITH attributes */ + ! Unlink datasets WITH attributes CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("H5Ldelete_f", error, total_error) CALL h5ldelete_f(fid, DSET2_NAME, error) CALL check("H5Ldelete_f", error, total_error) - ! /* Unlink committed datatype */ + ! Unlink committed datatype IF( test_shared == 2) THEN CALL h5ldelete_f(fid, TYPE1_NAME, error) @@ -2005,13 +2005,13 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) ENDIF - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) ENDDO - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(big_sid, error) @@ -2023,12 +2023,12 @@ END SUBROUTINE test_attr_shared_delete SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) -!/**************************************************************** +!*************************************************************** !** !** test_attr_dense_open(): Test basic H5A (attribute) code. !** Tests opening attributes in "dense" storage !** -!****************************************************************/ +!*************************************************************** USE HDF5 USE TH5_MISC @@ -2064,73 +2064,73 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) data_dims = 0 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Enable creation order tracking on attributes, so creation order tests work */ + ! Enable creation order tracking on attributes, so creation order tests work CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_TRACKED_F, error) CALL check("H5Pset_attr_creation_order",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, & lcpl_id=H5P_DEFAULT_F, dcpl_id=dcpl, dapl_id=H5P_DEFAULT_F) CALL check("h5dcreate_f",error,total_error) - ! /* Retrieve limits for compact/dense attribute storage */ + ! Retrieve limits for compact/dense attribute storage CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Add attributes, until just before converting to dense storage */ + ! Add attributes, until just before converting to dense storage DO u = 0, max_compact - 1 - ! /* Create attribute */ + ! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Verify attributes written so far */ + ! Verify attributes written so far CALL test_attr_dense_verify(dataset, u, total_error) ENDDO ! -! /* Add one more attribute, to push into "dense" storage */ -! /* Create attribute */ +! Add one more attribute, to push into "dense" storage +! Create attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2138,47 +2138,47 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write data into the attribute */ + ! Write data into the attribute data_dims(1) = 1 CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error) CALL check("h5awrite_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Verify all the attributes written */ + ! Verify all the attributes written ! ret = test_attr_dense_verify(dataset, (u + 1)); ! CHECK(ret, FAIL, "test_attr_dense_verify"); - ! /* CLOSE Dataset */ + ! CLOSE Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Unlink dataset with attributes */ + ! Unlink dataset with attributes CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F) CALL check("H5Ldelete_f", error, total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Check size of file */ + ! Check size of file ! filesize = h5_get_file_size(FILENAME); ! VERIFY(filesize, empty_filesize, "h5_get_file_size") END SUBROUTINE test_attr_dense_open -!/**************************************************************** +!*************************************************************** !** !** test_attr_dense_verify(): Test basic H5A (attribute) code. !** Verify attributes on object !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) @@ -2206,21 +2206,21 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) data_dims = 0 - ! /* Retrieve the current # of reported errors */ + ! Retrieve the current # of reported errors ! old_nerrs = GetTestNumErrs(); - ! /* Re-open all the attributes by name and verify the data */ + ! Re-open all the attributes by name and verify the data DO u = 0, max_attr -1 - ! /* Open attribute */ + ! Open attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 CALL h5aopen_f(loc_id, attrname, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Read data from the attribute */ + ! Read data from the attribute ! value = 103 data_dims(1) = 1 @@ -2229,22 +2229,22 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) CALL CHECK("H5Aread_F", error, total_error) CALL VERIFY("H5Aread_F", value, u, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO - ! /* Re-open all the attributes by index and verify the data */ + ! Re-open all the attributes by index and verify the data DO u=0, max_attr-1 - ! /* Open attribute */ + ! Open attribute CALL H5Aopen_by_idx_f(loc_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(u,HSIZE_T), & attr, error, aapl_id=H5P_DEFAULT_F) - ! /* Verify Name */ + ! Verify Name WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2255,26 +2255,26 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) WRITE(*,*) 'ERROR: attribute name different: attr_name = ',check_name, ', should be ', attrname total_error = total_error + 1 ENDIF - ! /* Read data from the attribute */ + ! Read data from the attribute data_dims(1) = 1 CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL CHECK("H5Aread_f", error, total_error) CALL VERIFY("H5Aread_f", value, u, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) ENDDO END SUBROUTINE test_attr_dense_verify -!/**************************************************************** +!*************************************************************** !** !** test_attr_corder_create_empty(): Test basic H5A (attribute) code. !** Tests basic code to create objects with attribute creation order info !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) @@ -2300,30 +2300,30 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) INTEGER :: crt_order_flags INTEGER :: minusone = -1 - ! /* Output message about test being performed */ + ! Output message about test being performed ! WRITE(*,*) " - Testing Basic Code for Attributes with Creation Order Info" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataset creation property list */ + ! Create dataset creation property list CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error) CALL check("h5Pcreate_f",error,total_error) - ! /* Get creation order indexing on object */ + ! Get creation order indexing on object CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) - ! /* Setting invalid combination of a attribute order creation order indexing on should fail */ + ! Setting invalid combination of a attribute order creation order indexing on should fail CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_INDEXED_F, error) CALL VERIFY("H5Pset_attr_creation_order_f",error , minusone, total_error) CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) - ! /* Set attribute creation order tracking & indexing for object */ + ! Set attribute creation order tracking & indexing for object CALL h5pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error) CALL check("H5Pset_attr_creation_order_f",error,total_error) @@ -2332,72 +2332,72 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, & lcpl_id=H5P_DEFAULT_F, dapl_id=H5P_DEFAULT_F, dcpl_id=dcpl) CALL check("h5dcreate_f",error,total_error) - ! /* Close dataspace */ + ! Close dataspace CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) - ! /* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Re-open file */ + ! Re-open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - ! /* Open dataset created */ + ! Open dataset created CALL h5dopen_f(fid, DSET1_NAME, dataset, error, H5P_DEFAULT_F ) CALL check("h5dopen_f",error,total_error) - ! /* Retrieve dataset creation property list for group */ + ! Retrieve dataset creation property list for group CALL H5Dget_create_plist_f(dataset, dcpl, error) CALL check("H5Dget_create_plist_f",error,total_error) - ! /* Query the attribute creation properties */ + ! Query the attribute creation properties CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error ) - ! /* Close property list */ + ! Close property list CALL h5pclose_f(dcpl, error) CALL check("h5pclose_f",error,total_error) - ! /* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_corder_create_basic -!/**************************************************************** +!*************************************************************** !** !** test_attr_basic_write(): Test basic H5A (attribute) code. !** Tests integer attributes on both datasets and groups !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_basic_write(fapl, total_error) @@ -2451,97 +2451,97 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) attr_data1a(3) = -99890 - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid1, error, H5P_DEFAULT_F, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataspace for dataset */ + ! Create dataspace for dataset CALL h5screate_simple_f(rank1, dims1, sid1, error, maxdims1) CALL check("h5screate_simple_f",error,total_error) - ! /* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(fid1, DSET1_NAME, H5T_NATIVE_CHARACTER, sid1, dataset, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F ) CALL check("h5dcreate_f",error,total_error) - ! /* Create dataspace for attribute */ + ! Create dataspace for attribute CALL h5screate_simple_f(ATTR1_RANK, dimsa, sid2, error) CALL check("h5screate_simple_f",error,total_error) - ! /* Try to create an attribute on the file (should create an attribute on root group) */ + ! Try to create an attribute on the file (should create an attribute on root group) CALL h5acreate_f(fid1, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, aapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the root group */ + ! Open the root group CALL H5Gopen_f(fid1, "/", group, error, H5P_DEFAULT_F) CALL check("H5Gopen_f",error,total_error) - ! /* Open attribute again */ + ! Open attribute again CALL h5aopen_f(group, ATTR1_NAME, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close root group */ + ! Close root group CALL H5Gclose_f(group, error) CALL check("h5gclose_f",error,total_error) - ! /* Create an attribute for the dataset */ + ! Create an attribute for the dataset CALL h5acreate_f(dataset, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write attribute information */ + ! Write attribute information CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_data1, dimsa, error) CALL check("h5awrite_f",error,total_error) - ! /* Create an another attribute for the dataset */ + ! Create an another attribute for the dataset CALL h5acreate_f(dataset, ATTR1A_NAME, H5T_NATIVE_INTEGER, sid2, attr2, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) - ! /* Write attribute information */ + ! Write attribute information CALL h5awrite_f(attr2, H5T_NATIVE_INTEGER, attr_data1a, dimsa, error) CALL check("h5awrite_f",error,total_error) - ! /* Check storage size for attribute */ + ! Check storage size for attribute CALL h5aget_storage_size_f(attr, attr_size, error) CALL check("h5aget_storage_size_f",error,total_error) !EP CALL VERIFY("h5aget_storage_size_f", INT(attr_size), 2*HSIZE_T, total_error) - ! /* Read attribute information immediately, without closing attribute */ + ! Read attribute information immediately, without closing attribute CALL h5aread_f(attr, H5T_NATIVE_INTEGER, read_data1, dimsa, error) CALL check("h5aread_f",error,total_error) - ! /* Verify values read in */ + ! Verify values read in DO i = 1, ATTR1_DIM1 CALL VERIFY('h5aread_f',attr_data1(i),read_data1(i), total_error) ENDDO - ! /* CLOSE attribute */ + ! CLOSE attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr2, error) CALL check("h5aclose_f",error,total_error) - ! /* change attribute name */ + ! change attribute name CALL H5Arename_f(dataset, ATTR1_NAME, ATTR_TMP_NAME, error) CALL check("H5Arename_f", error, total_error) - ! /* Open attribute again */ + ! Open attribute again CALL h5aopen_f(dataset, ATTR_TMP_NAME, attr, error) CALL check("h5aopen_f",error,total_error) - ! /* Verify new attribute name */ + ! Verify new attribute name ! Set a deliberately small size check_name = ' ' ! need to initialize or does not pass test @@ -2572,7 +2572,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) CALL check('H5Aget_name_f',error,total_error) CALL VerifyString('H5Aget_name_f',chr_exact_size,ATTR_TMP_NAME, total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr, error) CALL check("h5aclose_f",error,total_error) @@ -2580,22 +2580,22 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) CALL check("h5sclose_f",error,total_error) CALL h5sclose_f(sid2, error) CALL check("h5sclose_f",error,total_error) - !/* Close Dataset */ + ! Close Dataset CALL h5dclose_f(dataset, error) CALL check("h5dclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid1, error) CALL check("h5fclose_f",error,total_error) END SUBROUTINE test_attr_basic_write -!/**************************************************************** +!*************************************************************** !** !** test_attr_many(): Test basic H5A (attribute) code. !** Tests storing lots of attributes !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) @@ -2630,20 +2630,20 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) data_dims = 0 - !/* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create dataspace for attribute */ + ! Create dataspace for attribute CALL h5screate_f(H5S_SCALAR_F, sid, error) CALL check("h5screate_f",error,total_error) - ! /* Create group for attributes */ + ! Create group for attributes CALL H5Gcreate_f(fid, GROUP1_NAME, gid, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Create many attributes */ + ! Create many attributes IF(new_format)THEN nattr = 250 @@ -2687,21 +2687,21 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) ENDDO - ! /* Close group */ + ! Close group CALL H5Gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) - ! /* Close file */ + ! Close file CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - ! /* Close dataspaces */ + ! Close dataspaces CALL h5sclose_f(sid, error) CALL check("h5sclose_f",error,total_error) END SUBROUTINE test_attr_many -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: attr_open_check ! * ! * Purpose: Check opening attribute on an object @@ -2713,7 +2713,7 @@ END SUBROUTINE test_attr_many ! * March 21, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) @@ -2738,10 +2738,10 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) INTEGER(HSIZE_T) :: storage_size ! attributes storage requirements CHARACTER(LEN=2) :: chr2 INTEGER(HID_T) attr_id - ! /* Open each attribute on object by index and check that it's the correct one */ + ! Open each attribute on object by index and check that it's the correct one DO u = 0, max_attrs-1 - ! /* Open the attribute */ + ! Open the attribute WRITE(chr2,'(I2.2)') u attrname = 'attr '//chr2 @@ -2751,12 +2751,12 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aopen_f",error,total_error) - ! /* Get the attribute's information */ + ! Get the attribute's information CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check that the object's attributes are correct */ + ! Check that the object's attributes are correct CALL VERIFY("h5aget_info_f.corder",corder,u,total_error) CALL Verifylogical("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) @@ -2766,18 +2766,18 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the attribute */ + ! Open the attribute CALL H5Aopen_by_name_f(obj_id, ".", attrname, attr_id, error, lapl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F) CALL check("H5Aopen_by_name_f", error, total_error) CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f",corder,u,total_error) CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) @@ -2785,21 +2785,21 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_storage_size_f",error,total_error) CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) - ! /* Open the attribute */ + ! Open the attribute CALL H5Aopen_by_name_f(fid, dsetname, attrname, attr_id, error) CALL check("H5Aopen_by_name_f", error, total_error) - ! /* Get the attribute's information */ + ! Get the attribute's information CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) - ! /* Check the attribute's information */ + ! Check the attribute's information CALL VERIFY("h5aget_info_f",corder,u,total_error) CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) @@ -2807,7 +2807,7 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_storage_size_f",error,total_error) CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) - ! /* Close attribute */ + ! Close attribute CALL h5aclose_f(attr_id, error) CALL check("h5aclose_f",error,total_error) ENDDO diff --git a/fortran/test/tH5E_F03.f90 b/fortran/test/tH5E_F03.f90 index 82ba27c..a7d45f2 100644 --- a/fortran/test/tH5E_F03.f90 +++ b/fortran/test/tH5E_F03.f90 @@ -39,11 +39,11 @@ MODULE test_my_hdf5_error_handler CONTAINS -!/**************************************************************** +!*************************************************************** !** !** my_hdf5_error_handler: Custom error callback routine. !** -!****************************************************************/ +!*************************************************************** INTEGER FUNCTION my_hdf5_error_handler(estack_id, data_inout) bind(C) @@ -173,10 +173,10 @@ SUBROUTINE test_error(total_error) !!$#ifdef H5_USE_16_API !!$ if (old_func != (H5E_auto_t)H5Eprint) !!$ TEST_ERROR; -!!$#else /* H5_USE_16_API */ +!!$#else H5_USE_16_API !!$ if (old_func != (H5E_auto2_t)H5Eprint2) !!$ TEST_ERROR; -!!$#endif /* H5_USE_16_API */ +!!$#endif H5_USE_16_API ! set the customized error handling routine diff --git a/fortran/test/tH5F.f90 b/fortran/test/tH5F.f90 index 931a046..0b3c275 100644 --- a/fortran/test/tH5F.f90 +++ b/fortran/test/tH5F.f90 @@ -141,13 +141,11 @@ CONTAINS CALL h5fcreate_f(fix_filename1, H5F_ACC_TRUNC_F, file1_id, error) CALL check("h5fcreate_f",error,total_error) - ! !Create group "/G" inside file "mount1.h5". ! CALL h5gcreate_f(file1_id, "/G", gid, error) CALL check("h5gcreate_f",error,total_error) - ! !close file and group identifiers. ! diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90 index 5e6f50a..ab75163 100644 --- a/fortran/test/tH5G_1_8.f90 +++ b/fortran/test/tH5G_1_8.f90 @@ -41,7 +41,7 @@ SUBROUTINE group_test(cleanup, total_error) LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(HID_T) :: fapl, fapl2, my_fapl ! /* File access property lists */ + INTEGER(HID_T) :: fapl, fapl2, my_fapl ! File access property lists INTEGER :: error, ret_total_error @@ -49,15 +49,15 @@ SUBROUTINE group_test(cleanup, total_error) CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error) CALL check("H5Pcreate_f",error, total_error) - ! /* Copy the file access property list */ + ! Copy the file access property list CALL H5Pcopy_f(fapl, fapl2, error) CALL check("H5Pcopy_f",error, total_error) - ! /* Set the "use the latest version of the format" bounds for creating objects in the file */ + ! Set the "use the latest version of the format" bounds for creating objects in the file CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) CALL check("H5Pset_libver_bounds_f",error, total_error) - ! /* Check for FAPL to USE */ + ! Check for FAPL to USE my_fapl = fapl2 ret_total_error = 0 @@ -121,7 +121,7 @@ SUBROUTINE group_test(cleanup, total_error) END SUBROUTINE group_test -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: group_info ! * ! * Purpose: Create a group with creation order indices and test querying @@ -135,7 +135,7 @@ END SUBROUTINE group_test ! * February 18, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE group_info(cleanup, fapl, total_error) @@ -146,21 +146,21 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: gcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID - INTEGER :: max_compact ! /* Maximum # of links to store in group compactly */ - INTEGER :: min_dense ! /* Minimum # of links to store in group "densely" */ + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" - INTEGER :: idx_type ! /* Type of index to operate on */ - INTEGER :: order, iorder ! /* Order within in the index */ - LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) ! /* Use index on creation order values */ + INTEGER :: idx_type ! Type of index to operate on + INTEGER :: order, iorder ! Order within in the index + LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) ! Use index on creation order values CHARACTER(LEN=6), PARAMETER :: prefix = 'links0' - CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! /* File name */ + CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! File name INTEGER :: Input1 - INTEGER(HID_T) :: group_id ! /* Group ID */ - INTEGER(HID_T) :: soft_group_id ! /* Group ID for soft links */ + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: soft_group_id ! Group ID for soft links - INTEGER :: i ! /* Local index variables */ + INTEGER :: i ! Local index variables INTEGER :: storage_type ! Type of storage for links in group: ! H5G_STORAGE_TYPE_COMPACT: Compact storage ! H5G_STORAGE_TYPE_DENSE: Indexed storage @@ -168,34 +168,34 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER :: nlinks ! Number of links in group INTEGER :: max_corder ! Current maximum creation order value for group - INTEGER :: u,v ! /* Local index variables */ + INTEGER :: u,v ! Local index variables CHARACTER(LEN=2) :: chr2 - INTEGER(HID_T) :: group_id2, group_id3 ! /* Group IDs */ - CHARACTER(LEN=7) :: objname ! /* Object name */ - CHARACTER(LEN=7) :: objname2 ! /* Object name */ - CHARACTER(LEN=19) :: valname ! /* Link value */ + INTEGER(HID_T) :: group_id2, group_id3 ! Group IDs + CHARACTER(LEN=7) :: objname ! Object name + CHARACTER(LEN=7) :: objname2 ! Object name + CHARACTER(LEN=19) :: valname ! Link value CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group" CHARACTER(LEN=17), PARAMETER :: CORDER_SOFT_GROUP_NAME = "corder_soft_group" - INTEGER(HID_T) :: file_id ! /* File ID */ - INTEGER :: error ! /* Generic return value */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER :: error ! Generic return value LOGICAL :: mounted LOGICAL :: cleanup - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("H5Pcreate_f", error, total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error) CALL check("H5Pget_link_phase_change_f", error, total_error) - ! /* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO iorder = H5_ITER_INC_F, H5_ITER_NATIVE_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN IF(iorder == H5_ITER_INC_F)THEN order = H5_ITER_INC_F @@ -244,11 +244,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ENDIF END IF - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("H5Fcreate_f", error, total_error) - ! /* Set creation order tracking & indexing on group */ + ! Set creation order tracking & indexing on group IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F ELSE @@ -257,103 +257,103 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error) CALL check("H5Pset_link_creation_order_f", error, total_error) - ! /* Create group with creation order tracking on */ + ! Create group with creation order tracking on CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Create group with creation order tracking on for soft links */ + ! Create group with creation order tracking on for soft links CALL H5Gcreate_f(file_id, CORDER_SOFT_GROUP_NAME, soft_group_id, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Check for out of bound query by index on empty group, should fail */ + ! Check for out of bound query by index on empty group, should fail CALL H5Gget_info_by_idx_f(group_id, ".", H5_INDEX_NAME_F, order, INT(0,HSIZE_T), & storage_type, nlinks, max_corder, error) CALL VERIFY("H5Gget_info_by_idx_f", error, -1, total_error) - ! /* Create several links, up to limit of compact form */ + ! Create several links, up to limit of compact form DO u = 0, max_compact-1 - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') u objname = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id, objname, group_id2, error, OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id) CALL check("H5Gcreate_f", error, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error, mounted) CALL check("H5Gget_info_f", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error) CALL verifyLogical("H5Gget_info_f.mounted", mounted,.FALSE.,total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error, mounted=mounted) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) CALL verifyLogical("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name", error, total_error) - ! /* Check (new/empty) group's information */ + ! Check (new/empty) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) - ! /* Create objects in new group created */ + ! Create objects in new group created DO v = 0, u - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') v objname2 = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id2, objname2, group_id3, error ) CALL check("H5Gcreate_f", error, total_error) - ! /* Close group created */ + ! Close group created CALL H5Gclose_f(group_id3, error) CALL check("H5Gclose_f", error, total_error) ENDDO - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f",max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve group's information */ + ! Retrieve group's information IF(order.NE.H5_ITER_NATIVE_F)THEN IF(order.EQ.H5_ITER_INC_F) THEN CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(u,HSIZE_T), & @@ -366,72 +366,72 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) CALL check("H5Gget_info_by_idx_f", error, total_error) ENDIF - ! /* Check (new) group's information */ + ! Check (new) group's information CALL VERIFY("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_idx_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_idx_f", nlinks, u+1, total_error) ENDIF - ! /* Close group created */ + ! Close group created CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - ! /* Retrieve main group's information */ + ! Retrieve main group's information CALL H5Gget_info_f(group_id, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) - ! /* Retrieve main group's information, by name */ + ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(file_id, CORDER_GROUP_NAME, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Retrieve main group's information, by name */ + ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(group_id, ".", storage_type, nlinks, max_corder, error, H5P_DEFAULT_F) CALL check("H5Gget_info_by_name_f", error, total_error) - ! /* Check main group's information */ + ! Check main group's information CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) - ! /* Create soft link in another group, to objects in main group */ + ! Create soft link in another group, to objects in main group valname = CORDER_GROUP_NAME//objname CALL H5Lcreate_soft_f(valname, soft_group_id, objname, error, H5P_DEFAULT_F, H5P_DEFAULT_F) - ! /* Retrieve soft link group's information, by name */ + ! Retrieve soft link group's information, by name CALL H5Gget_info_f(soft_group_id, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_f", error, total_error) - ! /* Check soft link group's information */ + ! Check soft link group's information CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) ENDDO - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(soft_group_id, error) CALL check("H5Gclose_f", error, total_error) - ! /* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) ENDDO ENDDO ENDDO - ! /* Free resources */ + ! Free resources CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -441,7 +441,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE group_info -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: timestamps ! * ! * Purpose: Verify that disabling tracking timestamps for an object @@ -452,7 +452,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * February 20, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE timestamps(cleanup, fapl, total_error) @@ -463,15 +463,15 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: file_id !/* File ID */ - INTEGER(HID_T) :: group_id !/* Group ID */ - INTEGER(HID_T) :: group_id2 !/* Group ID */ - INTEGER(HID_T) :: gcpl_id !/* Group creation property list ID */ - INTEGER(HID_T) :: gcpl_id2 !/* Group creation property list ID */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: group_id2 ! Group ID + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID + INTEGER(HID_T) :: gcpl_id2 ! Group creation property list ID CHARACTER(LEN=6), PARAMETER :: prefix = 'links9' - CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! /* File name */ - ! /* Timestamp macros */ + CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5' ! File name + ! Timestamp macros CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_1="timestamp1" CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_2="timestamp2" LOGICAL :: track_times @@ -479,58 +479,58 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER :: error - ! /* Print test message */ + ! Print test message ! WRITE(*,*) "timestamps on objects" - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("H5Pcreate_f", error, total_error) - ! /* Query the object timestamp setting */ + ! Query the object timestamp setting CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - !/* Check default timestamp information */ + ! Check default timestamp information CALL VerifyLogical("H5Pget_obj_track_times",track_times,.TRUE.,total_error) - ! /* Set a non-default object timestamp setting */ + ! Set a non-default object timestamp setting CALL H5Pset_obj_track_times_f(gcpl_id, .FALSE., error) CALL check("H5Pset_obj_track_times_f", error, total_error) - ! /* Query the object timestamp setting */ + ! Query the object timestamp setting CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - ! /* Check default timestamp information */ + ! Check default timestamp information CALL VerifyLogical("H5Pget_obj_track_times",track_times,.FALSE.,total_error) - ! /* Create file */ + ! Create file !h5_fixname(FILENAME[0], fapl, filename, sizeof filename); CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("h5fcreate_f",error,total_error) - ! /* Create group with non-default object timestamp setting */ + ! Create group with non-default object timestamp setting CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_1, group_id, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id, H5P_DEFAULT_F) CALL check("h5fcreate_f",error,total_error) - ! /* Close the group creation property list */ + ! Close the group creation property list CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) - ! /* Create group with default object timestamp setting */ + ! Create group with default object timestamp setting CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, & OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5fcreate_f",error,total_error) - ! /* Retrieve the new groups' creation properties */ + ! Retrieve the new groups' creation properties CALL H5Gget_create_plist_f(group_id, gcpl_id, error) CALL check("H5Gget_create_plist", error, total_error) CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error) CALL check("H5Gget_create_plist", error, total_error) - ! /* Query & verify the object timestamp settings */ + ! Query & verify the object timestamp settings CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) @@ -538,11 +538,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) -! /* Query the object information for each group */ +! Query the object information for each group ! if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR ! if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR -!!$ /* Sanity check object information for each group */ +!!$ Sanity check object information for each group !!$ if(oinfo.atime != 0) TEST_ERROR !!$ if(oinfo.mtime != 0) TEST_ERROR !!$ if(oinfo.ctime != 0) TEST_ERROR @@ -556,40 +556,40 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR !!$ if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR - ! /* Close the property lists */ + ! Close the property lists CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(gcpl_id2, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) - !/* Re-open the file */ + ! Re-open the file CALL h5fopen_f(FileName, H5F_ACC_RDONLY_F, file_id, error, H5P_DEFAULT_F) CALL check("h5fopen_f",error,total_error) - !/* Open groups */ + ! Open groups CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_1, group_id, error) ! with no optional param. CALL check("H5Gopen_f", error, total_error) CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, H5P_DEFAULT_F) ! with optional param. CALL check("H5Gopen_f", error, total_error) - ! /* Retrieve the new groups' creation properties */ + ! Retrieve the new groups' creation properties CALL H5Gget_create_plist_f(group_id, gcpl_id, error) CALL check("H5Gget_create_plist", error, total_error) CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error) CALL check("H5Gget_create_plist", error, total_error) - ! /* Query & verify the object timestamp settings */ + ! Query & verify the object timestamp settings CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) @@ -598,11 +598,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) !!$ -!!$ /* Query the object information for each group */ +!!$ Query the object information for each group !!$ if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR !!$ if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR !!$ -!!$ /* Sanity check object information for each group */ +!!$ Sanity check object information for each group !!$ if(oinfo.atime != 0) TEST_ERROR !!$ if(oinfo.mtime != 0) TEST_ERROR !!$ if(oinfo.ctime != 0) TEST_ERROR @@ -616,19 +616,19 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR !!$ if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR - ! /* Close the property lists */ + ! Close the property lists CALL H5Pclose_f(gcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(gcpl_id2, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close the groups */ + ! Close the groups CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) @@ -637,7 +637,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE timestamps -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: mklinks ! * ! * Purpose: Build a file with assorted links. @@ -649,7 +649,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE mklinks(fapl, total_error) @@ -680,29 +680,29 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! WRITE(*,*) "link creation (w/new group format)" - ! /* Create a file */ + ! Create a file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file, error, H5P_DEFAULT_F, fapl) CALL check("mklinks.h5fcreate_f",error,total_error) CALL h5screate_simple_f(arank, adims2, scalar, error) CALL check("mklinks.h5screate_simple_f",error,total_error) - !/* Create a group */ + ! Create a group CALL H5Gcreate_f(file, "grp1", grp, error) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(grp, error) CALL check("h5gclose_f",error,total_error) - !/* Create a dataset */ + ! Create a dataset CALL h5dcreate_f(file, "d1", H5T_NATIVE_INTEGER, scalar, d1, error) CALL check("h5dcreate_f",error,total_error) CALL h5dclose_f(d1, error) CALL check("h5dclose_f",error,total_error) - !/* Create a hard link */ + ! Create a hard link CALL H5Lcreate_hard_f(file, "d1", INT(H5L_SAME_LOC_F,HID_T), "grp1/hard", error) CALL check("H5Lcreate_hard_f", error, total_error) - !/* Create a symbolic link */ + ! Create a symbolic link CALL H5Lcreate_soft_f("/d1", file, "grp1/soft",error) CALL check("H5Lcreate_soft_f", error, total_error) @@ -718,14 +718,14 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! should be '/d1' + NULL character = 4 CALL VERIFY("H5Lget_info_by_idx_f", INT(val_size), 4, total_error) - !/* Create a symbolic link to something that doesn't exist */ + ! Create a symbolic link to something that doesn't exist CALL H5Lcreate_soft_f("foobar", file, "grp1/dangle",error) - !/* Create a recursive symbolic link */ + ! Create a recursive symbolic link CALL H5Lcreate_soft_f("/grp1/recursive", file, "/grp1/recursive",error) - !/* Close */ + ! Close CALL h5sclose_f(scalar, error) CALL check("h5sclose_f",error,total_error) CALL h5fclose_f(file, error) @@ -733,7 +733,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE mklinks -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_move_preserves ! * ! * Purpose: Tests that moving and renaming links preserves their @@ -745,7 +745,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_move_preserves(fapl_id, total_error) @@ -758,20 +758,20 @@ SUBROUTINE group_info(cleanup, fapl, total_error) INTEGER(HID_T):: file_id INTEGER(HID_T):: group_id - INTEGER(HID_T):: fcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T):: fcpl_id ! Group creation property list ID INTEGER(HID_T):: lcpl_id !H5O_info_t oinfo; !H5L_info_t linfo; INTEGER :: old_cset INTEGER :: old_corder !H5T_cset_t old_cset; - !int64_t old_corder; /* Creation order value of link */ + !int64_t old_corder; Creation order value of link !time_t old_modification_time; !time_t curr_time; - !unsigned crt_order_flags; /* Status of creation order info for GCPL */ + !unsigned crt_order_flags; Status of creation order info for GCPL !char filename[1024]; - INTEGER :: crt_order_flags ! /* Status of creation order info for GCPL */ + INTEGER :: crt_order_flags ! Status of creation order info for GCPL CHARACTER(LEN=12), PARAMETER :: filename = 'TestLinks.h5' INTEGER :: cset ! Indicates the character set used for the link’s name. @@ -789,9 +789,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! WRITE(*,*) "moving and copying links preserves their properties (w/new group format)" - !/* Create a file creation property list with creation order stored for links + ! Create a file creation property list with creation order stored for links ! * in the root group - ! */ + ! CALL H5Pcreate_f(H5P_FILE_CREATE_F, fcpl_id, error) CALL check("H5Pcreate_f",error, total_error) @@ -807,26 +807,26 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_link_creation_order_f",error, total_error) CALL VERIFY("H5Pget_link_creation_order_f",crt_order_flags, H5P_CRT_ORDER_TRACKED_F, total_error) - !/* Create file */ - !/* (with creation order tracking for the root group) */ + ! Create file + ! (with creation order tracking for the root group) CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file_id, error, fcpl_id, fapl_id) CALL check("h5fcreate_f",error,total_error) - !/* Create a link creation property list with the UTF-8 character encoding */ + ! Create a link creation property list with the UTF-8 character encoding CALL H5Pcreate_f(H5P_LINK_CREATE_F, lcpl_id, error) CALL check("H5Pcreate_f",error, total_error) CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) - !/* Create a group with that lcpl */ + ! Create a group with that lcpl CALL H5Gcreate_f(file_id, "group", group_id, error,lcpl_id=lcpl_id, gcpl_id=H5P_DEFAULT_F, gapl_id=H5P_DEFAULT_F) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) - ! /* Get the group's link's information */ + ! Get the group's link's information CALL H5Lget_info_f(file_id, "group", & cset, corder, f_corder_valid, link_type, address, val_size, & error, H5P_DEFAULT_F) @@ -842,18 +842,18 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! old_modification_time = oinfo.mtime; -! /* If this test happens too quickly, the times will all be the same. Make sure the time changes. */ +! If this test happens too quickly, the times will all be the same. Make sure the time changes. ! curr_time = HDtime(NULL); ! while(HDtime(NULL) <= curr_time) ! ; -! /* Close the file and reopen it */ +! Close the file and reopen it CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) !!$ if((file_id = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR !!$ -!!$ /* Get the link's character set & modification time . They should be unchanged */ +!!$ Get the link's character set & modification time . They should be unchanged !!$ if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -861,7 +861,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(old_corder != linfo.corder) TEST_ERROR !!$ -!!$ /* Create a new link to the group. It should have a different creation order value but the same modification time */ +!!$ Create a new link to the group. It should have a different creation order value but the same modification time !!$ if(H5Lcreate_hard(file_id, "group", file_id, "group2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -871,10 +871,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder != 1) TEST_ERROR !!$ if(linfo.cset != H5T_CSET_ASCII) TEST_ERROR !!$ -!!$ /* Copy the first link to a UTF-8 name. +!!$ Copy the first link to a UTF-8 name. !!$ * Its creation order value should be different, but modification time !!$ * should not change. -!!$ */ +!!$ !!$ if(H5Lcopy(file_id, "group", file_id, "group_copied", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_copied", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -882,10 +882,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 2) TEST_ERROR !!$ -!!$ /* Check that its character encoding is UTF-8 */ +!!$ Check that its character encoding is UTF-8 !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the link with the default property list. */ +!!$ Move the link with the default property list. !!$ if(H5Lmove(file_id, "group_copied", file_id, "group_copied2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_copied2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -893,10 +893,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 3) TEST_ERROR !!$ -!!$ /* Check that its character encoding is not UTF-8 */ +!!$ Check that its character encoding is not UTF-8 !!$ if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Check that the original link is unchanged */ +!!$ Check that the original link is unchanged !!$ if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR !!$ if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR @@ -904,9 +904,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(old_corder != linfo.corder) TEST_ERROR !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the first link to a UTF-8 name. +!!$ Move the first link to a UTF-8 name. !!$ * Its creation order value will change, but modification time should not -!!$ * change. */ +!!$ * change. !!$ if(H5Lmove(file_id, "group", file_id, "group_moved", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_moved", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -914,10 +914,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 4) TEST_ERROR !!$ -!!$ /* Check that its character encoding is UTF-8 */ +!!$ Check that its character encoding is UTF-8 !!$ if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR !!$ -!!$ /* Move the link again using the default property list. */ +!!$ Move the link again using the default property list. !!$ if(H5Lmove(file_id, "group_moved", file_id, "group_moved_again", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(H5Oget_info_by_name(file_id, "group_moved_again", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR !!$ if(old_modification_time != oinfo.mtime) TEST_ERROR @@ -925,10 +925,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) !!$ if(linfo.corder_valid != TRUE) TEST_ERROR !!$ if(linfo.corder != 5) TEST_ERROR !!$ -!!$ /* Check that its character encoding is not UTF-8 */ +!!$ Check that its character encoding is not UTF-8 !!$ if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR - ! /* Close open IDs */ + ! Close open IDs CALL H5Pclose_f(fcpl_id, error) CALL check("H5Pclose_f", error, total_error) CALL H5Pclose_f(lcpl_id, error) @@ -938,7 +938,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) END SUBROUTINE test_move_preserves -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: lifecycle ! * ! * Purpose: Test that adding links to a group follow proper "lifecycle" @@ -953,7 +953,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! * Monday, October 17, 2005 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE lifecycle(cleanup, fapl2, total_error) @@ -967,14 +967,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) INTEGER, PARAMETER :: NAME_BUF_SIZE =7 - INTEGER(HID_T) :: fid !/* File ID */ - INTEGER(HID_T) :: gid !/* Group ID */ - INTEGER(HID_T) :: gcpl !/* Group creation property list ID */ - INTEGER(size_t) :: lheap_size_hint !/* Local heap size hint */ - INTEGER :: max_compact !/* Maximum # of links to store in group compactly */ - INTEGER :: min_dense !/* Minimum # of links to store in group "densely" */ - INTEGER :: est_num_entries !/* Estimated # of entries in group */ - INTEGER :: est_name_len !/* Estimated length of entry name */ + INTEGER(HID_T) :: fid ! File ID + INTEGER(HID_T) :: gid ! Group ID + INTEGER(HID_T) :: gcpl ! Group creation property list ID + INTEGER(size_t) :: lheap_size_hint ! Local heap size hint + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" + INTEGER :: est_num_entries ! Estimated # of entries in group + INTEGER :: est_name_len ! Estimated length of entry name CHARACTER(LEN=NAME_BUF_SIZE) :: filename = 'fixx.h5' INTEGER(SIZE_T) :: LIFECYCLE_LOCAL_HEAP_SIZE_HINT = 256 INTEGER :: LIFECYCLE_MAX_COMPACT = 4 @@ -991,29 +991,29 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) ! WRITE(*,*) 'group lifecycle' - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl2) CALL check("H5Fcreate_f",error,total_error) - !/* Close file */ + ! Close file CALL H5Fclose_f(fid,error) CALL check("H5Fclose_f",error,total_error) - ! /* Get size of file as empty */ + ! Get size of file as empty ! if((empty_size = h5_get_file_size(filename)) < 0) TEST_ERROR - ! /* Re-open file */ + ! Re-open file CALL H5Fopen_f(filename, H5F_ACC_RDWR_F, fid, error,access_prp=fapl2) CALL check("H5Fopen_f",error,total_error) - ! /* Set up group creation property list */ + ! Set up group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F,gcpl,error) CALL check("H5Pcreate_f",error,total_error) - ! /* Query default group creation property settings */ + ! Query default group creation property settings CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error) CALL check("H5Pget_local_heap_size_hint_f",error,total_error) CALL verify("H5Pget_local_heap_size_hint_f", INT(lheap_size_hint),0,total_error) @@ -1030,7 +1030,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL verify("H5Pget_est_link_info_f", est_name_len, H5G_CRT_GINFO_EST_NAME_LEN,total_error) - !/* Set GCPL parameters */ + ! Set GCPL parameters CALL H5Pset_local_heap_size_hint_f(gcpl, LIFECYCLE_LOCAL_HEAP_SIZE_HINT, error) CALL check("H5Pset_local_heap_size_hint_f", error, total_error) @@ -1039,12 +1039,12 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL H5Pset_est_link_info_f(gcpl, LIFECYCLE_EST_NUM_ENTRIES, LIFECYCLE_EST_NAME_LEN, error) CALL check("H5Pset_est_link_info_f", error, total_error) - ! /* Create group for testing lifecycle */ + ! Create group for testing lifecycle CALL H5Gcreate_f(fid, LIFECYCLE_TOP_GROUP, gid, error, gcpl_id=gcpl) CALL check("H5Gcreate_f", error, total_error) - ! /* Query group creation property settings */ + ! Query group creation property settings CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error) CALL check("H5Pget_local_heap_size_hint_f",error,total_error) @@ -1062,20 +1062,20 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) - !/* Close top group */ + ! Close top group CALL H5Gclose_f(gid, error) CALL check("H5Gclose_f", error, total_error) - !/* Unlink top group */ + ! Unlink top group CALL H5Ldelete_f(fid, LIFECYCLE_TOP_GROUP, error) CALL check("H5Ldelete_f", error, total_error) - ! /* Close GCPL */ + ! Close GCPL CALL H5Pclose_f(gcpl, error) CALL check("H5Pclose_f", error, total_error) - ! /* Close file */ + ! Close file CALL H5Fclose_f(fid,error) CALL check("H5Fclose_f",error,total_error) @@ -1084,7 +1084,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) END SUBROUTINE lifecycle -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: cklinks ! * ! * Purpose: Open the file created in the first step and check that the @@ -1100,7 +1100,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) ! * Modifications: Modified original C code ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE cklinks(fapl, total_error) @@ -1124,25 +1124,25 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) LOGICAL :: Lexists - ! /* Open the file */ + ! Open the file CALL H5Fopen_f(filename, H5F_ACC_RDONLY_F, file, error,access_prp=fapl) CALL check("H5Fopen_f",error,total_error) - ! /* Hard link */ + ! Hard link !!$ IF(H5Oget_info_by_name(file, "d1", &oinfo1, H5P_DEFAULT) < 0) FAIL_STACK_ERROR !!$ IF(H5Oget_info_by_name(file, "grp1/hard", &oinfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR !!$ IF(H5O_TYPE_DATASET != oinfo2.type) { !!$ H5_FAILED(); !!$ printf(" %d: Unexpected object type should have been a dataset\n", __LINE__); !!$ TEST_ERROR -!!$ } /* end if */ +!!$ } end if !!$ if(H5F_addr_ne(oinfo1.addr, oinfo2.addr)) { !!$ H5_FAILED(); !!$ puts(" Hard link test failed. Link seems not to point to the "); !!$ puts(" expected file location."); !!$ TEST_ERROR -!!$ } /* end if */ +!!$ } end if CALL H5Lexists_f(file,"d1",Lexists, error) @@ -1151,14 +1151,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL H5Lexists_f(file,"grp1/hard",Lexists, error) CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) - ! /* Cleanup */ + ! Cleanup CALL H5Fclose_f(file,error) CALL check("H5Fclose_f",error,total_error) END SUBROUTINE cklinks -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: delete_by_idx ! * ! * Purpose: Create a group with creation order indices and test deleting @@ -1173,7 +1173,7 @@ END SUBROUTINE cklinks ! * March 3, 2008 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE delete_by_idx(cleanup, fapl, total_error) USE HDF5 ! This module contains all necessary modules @@ -1183,18 +1183,18 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl - INTEGER(HID_T) :: file_id ! /* File ID */ - INTEGER(HID_T) :: group_id ! /* Group ID */ - INTEGER(HID_T) :: gcpl_id ! /* Group creation property list ID */ + INTEGER(HID_T) :: file_id ! File ID + INTEGER(HID_T) :: group_id ! Group ID + INTEGER(HID_T) :: gcpl_id ! Group creation property list ID - INTEGER :: idx_type ! /* Type of index to operate on */ + INTEGER :: idx_type ! Type of index to operate on LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) - ! /* Use index on creation order values */ - INTEGER :: max_compact ! /* Maximum # of links to store in group compactly */ - INTEGER :: min_dense ! /* Minimum # of links to store in group "densely" */ + ! Use index on creation order values + INTEGER :: max_compact ! Maximum # of links to store in group compactly + INTEGER :: min_dense ! Minimum # of links to store in group "densely" - CHARACTER(LEN=7) :: objname ! /* Object name */ - CHARACTER(LEN=8) :: filename = 'file0.h5' ! /* File name */ + CHARACTER(LEN=7) :: objname ! Object name + CHARACTER(LEN=8) :: filename = 'file0.h5' ! File name CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group" LOGICAL :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute @@ -1204,11 +1204,11 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) INTEGER :: link_type INTEGER(HADDR_T) :: address - INTEGER :: u ! /* Local index variable */ + INTEGER :: u ! Local index variable INTEGER :: Input1, i INTEGER(HID_T) :: group_id2 INTEGER(HID_T) :: grp - INTEGER :: iorder ! /* Order within in the index */ + INTEGER :: iorder ! Order within in the index CHARACTER(LEN=2) :: chr2 INTEGER :: error INTEGER :: id_type @@ -1226,13 +1226,13 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) fix_filename2(i:i) = " " ENDDO - ! /* Loop over operating on different indices on link fields */ + ! Loop over operating on different indices on link fields DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F - ! /* Loop over operating in different orders */ + ! Loop over operating in different orders DO iorder = H5_ITER_INC_F, H5_ITER_DEC_F - ! /* Loop over using index for creation order value */ + ! Loop over using index for creation order value DO i = 1, 2 - ! /* Print appropriate test message */ + ! Print appropriate test message !!$ IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN !!$ IF(iorder == H5_ITER_INC_F)THEN !!$ IF(use_index(i))THEN @@ -1263,15 +1263,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) !!$ ENDIF !!$ ENDIF - ! /* Create file */ + ! Create file CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp=fapl) CALL check("delete_by_idx.H5Fcreate_f", error, total_error) - ! /* Create group creation property list */ + ! Create group creation property list CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error ) CALL check("delete_by_idx.H5Pcreate_f", error, total_error) - ! /* Set creation order tracking & indexing on group */ + ! Set creation order tracking & indexing on group IF(use_index(i))THEN Input1 = H5P_CRT_ORDER_INDEXED_F ELSE @@ -1281,54 +1281,54 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error) CALL check("delete_by_idx.H5Pset_link_creation_order_f", error, total_error) - ! /* Create group with creation order tracking on */ + ! Create group with creation order tracking on CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id) CALL check("delete_by_idx.H5Gcreate_f", error, total_error) - ! /* Query the group creation properties */ + ! Query the group creation properties CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error) CALL check("delete_by_idx.H5Pget_link_phase_change_f", error, total_error) - ! /* Delete links from one end */ + ! Delete links from one end - ! /* Check for deletion on empty group */ + ! Check for deletion on empty group CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error) CALL VERIFY("delete_by_idx.H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) - ! /* Create several links, up to limit of compact form */ + ! Create several links, up to limit of compact form DO u = 0, max_compact-1 - ! /* Make name for link */ + ! Make name for link WRITE(chr2,'(I2.2)') u objname = 'fill '//chr2 - ! /* Create hard link, with group object */ + ! Create hard link, with group object CALL H5Gcreate_f(group_id, objname, group_id2, error) CALL check("delete_by_idx.H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id2, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - ! /* Verify link information for new link */ + ! Verify link information for new link CALL link_info_by_idx_check(group_id, objname, u, & .TRUE., use_index(i), total_error) ENDDO - ! /* Verify state of group (compact) */ + ! Verify state of group (compact) ! IF(H5G_has_links_test(group_id, NULL) != TRUE) TEST_ERROR - ! /* Check for out of bound deletion */ + ! Check for out of bound deletion htmp =9 !EP CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(u,HSIZE_T), error) CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, htmp, error) CALL VERIFY("H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) - ! /* Delete links from compact group */ + ! Delete links from compact group DO u = 0, (max_compact - 1) -1 - ! /* Delete first link in appropriate order */ + ! Delete first link in appropriate order CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error) CALL check("H5Ldelete_by_idx_f", error, total_error) - ! /* Verify the link information for first link in appropriate order */ + ! Verify the link information for first link in appropriate order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), & @@ -1358,7 +1358,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) - ! /* Verify the name for first link in appropriate order */ + ! Verify the name for first link in appropriate order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); !!$ size_tmp = 20 !!$ CALL H5Lget_name_by_idx_f(group_id, ".", idx_type, order, INT(0,HSIZE_T), size_tmp, tmpname, error) @@ -1374,15 +1374,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) !!$ CALL verifyString("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname, total_error) ENDDO - ! /* Close the group */ + ! Close the group CALL H5Gclose_f(group_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - !/* Close the group creation property list */ + ! Close the group creation property list CALL H5Pclose_f(gcpl_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) - !/* Close the file */ + ! Close the file CALL H5Fclose_f(file_id, error) CALL check("delete_by_idx.H5Gclose_f", error, total_error) @@ -1398,7 +1398,7 @@ END SUBROUTINE delete_by_idx -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: link_info_by_idx_check ! * ! * Purpose: Support routine for link_info_by_idx, to verify the link @@ -1414,7 +1414,7 @@ END SUBROUTINE delete_by_idx ! * Tuesday, November 7, 2006 ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & hard_link, use_index, total_error) @@ -1436,35 +1436,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & INTEGER(HADDR_T) :: address INTEGER(SIZE_T) :: val_size ! Indicates the size, in the number of characters, of the attribute - CHARACTER(LEN=7) :: tmpname !/* Temporary link name */ - CHARACTER(LEN=3) :: tmpname_small !/* to small temporary link name */ - CHARACTER(LEN=10) :: tmpname_big !/* to big temporary link name */ + CHARACTER(LEN=7) :: tmpname ! Temporary link name + CHARACTER(LEN=3) :: tmpname_small ! to small temporary link name + CHARACTER(LEN=10) :: tmpname_big ! to big temporary link name - CHARACTER(LEN=7) :: valname !/* Link value name */ + CHARACTER(LEN=7) :: valname ! Link value name CHARACTER(LEN=2) :: chr2 INTEGER(SIZE_T) :: size_tmp INTEGER :: error - ! /* Make link value for increasing/native order queries */ + ! Make link value for increasing/native order queries WRITE(chr2,'(I2.2)') n valname = 'valn.'//chr2 - ! /* Verify the link information for first link, in increasing creation order */ + ! Verify the link information for first link, in increasing creation order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(0,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) CALL VERIFY("H5Lget_info_by_idx_f", corder, 0, total_error) - ! /* Verify the link information for new link, in increasing creation order */ + ! Verify the link information for new link, in increasing creation order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) CALL VERIFY("H5Lget_info_by_idx_f", corder, n, total_error) - ! /* Verify value for new soft link, in increasing creation order */ + ! Verify value for new soft link, in increasing creation order !!$ IF(hard_link)THEN !!$ ! HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE); !!$ @@ -1474,7 +1474,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & !!$! IF(HDstrcmp(valname, tmpval)) TEST_ERROR !!$ ENDIF - ! /* Verify the name for new link, in increasing creation order */ + ! Verify the name for new link, in increasing creation order ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE); ! The actual size of tmpname should be 7 @@ -1503,7 +1503,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & END SUBROUTINE link_info_by_idx_check -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_lcpl ! * ! * Purpose: Tests Link Creation Property Lists @@ -1518,7 +1518,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_lcpl(cleanup, fapl, total_error) @@ -1565,35 +1565,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & ! WRITE(*,*) "link creation property lists (w/new group format)" - !/* Actually, intermediate group creation is tested elsewhere (tmisc). - ! * Here we only need to test the character encoding property */ + ! Actually, intermediate group creation is tested elsewhere (tmisc). + ! * Here we only need to test the character encoding property - !/* Create file */ + ! Create file ! h5_fixname(FILENAME[0], fapl, filename, sizeof filename); CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl) CALL check("H5Fcreate_f", error, total_error) - ! /* Create and link a group with the default LCPL */ + ! Create and link a group with the default LCPL CALL H5Gcreate_f(file_id, "/group", group_id, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "group", & cset, corder, f_corder_valid, link_type, address, val_size, & error, H5P_DEFAULT_F) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL VERIFY("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* Create and commit a datatype with the default LCPL */ + ! Create and commit a datatype with the default LCPL CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error) CALL check("h5tcopy_f",error,total_error) CALL h5tcommit_f(file_id, "/type", type_id, error) @@ -1602,19 +1602,19 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("h5tclose_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "type", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("h5tclose_f", error, total_error) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - !/* Create a dataspace */ + ! Create a dataspace CALL h5screate_simple_f(2, dims, space_id, error) CALL check("h5screate_simple_f",error,total_error) CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) @@ -1624,7 +1624,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) CALL h5pset_chunk_f(crp_list, 2, dims, error) - ! /* Create a dataset using the default LCPL */ + ! Create a dataset using the default LCPL CALL h5dcreate_f(file_id, "/dataset", H5T_NATIVE_INTEGER, space_id, dset_id, error, crp_list) CALL check("h5dcreate_f", error, total_error) @@ -1636,10 +1636,10 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Dopen_f(file_id, "/dataset", dset_id, error) CALL check("h5dopen_f", error, total_error) - ! /* Extend the dataset */ + ! Extend the dataset CALL H5Dset_extent_f(dset_id, extend_dim, error) CALL check("H5Dset_extent_f", error, total_error) - ! /* Verify the dataspaces */ + ! Verify the dataspaces ! !Get dataset's dataspace handle. ! @@ -1658,37 +1658,37 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL VERIFY("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) ENDDO - ! /* close data set */ + ! close data set CALL h5dclose_f(dset_id, error) CALL check("h5dclose_f", error, total_error) - ! /* Check that its character encoding is the default */ + ! Check that its character encoding is the default CALL H5Lget_info_f(file_id, "dataset", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) -!/* File-wide default character encoding can not yet be set via the file -! * creation property list and is always ASCII. */ +! File-wide default character encoding can not yet be set via the file +! * creation property list and is always ASCII. !#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h -- CALL verify("h5tclose_f",cset, H5T_CSET_ASCII_F,total_error) - !/* Create a link creation property list with the UTF-8 character encoding */ + ! Create a link creation property list with the UTF-8 character encoding CALL H5Pcreate_f(H5P_LINK_CREATE_F,lcpl_id,error) CALL check("h5Pcreate_f",error,total_error) CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) - ! /* Create and link a group with the new LCPL */ + ! Create and link a group with the new LCPL CALL H5Gcreate_f(file_id, "/group2", group_id, error,lcpl_id=lcpl_id) CALL check("H5Gcreate_f", error, total_error) CALL H5Gclose_f(group_id, error) CALL check("H5Gclose_f", error, total_error) - !/* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "group2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) @@ -1696,7 +1696,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create and commit a datatype with the new LCPL */ + ! Create and commit a datatype with the new LCPL CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error) CALL check("h5tcopy_f",error,total_error) @@ -1706,14 +1706,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("h5tclose_f", error, total_error) - !/* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "type2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create a dataset using the new LCPL */ + ! Create a dataset using the new LCPL CALL h5dcreate_f(file_id, "/dataset2", H5T_NATIVE_INTEGER, space_id, dset_id, error,lcpl_id=lcpl_id) CALL check("h5dcreate_f", error, total_error) @@ -1724,14 +1724,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("H5Pget_char_encoding_f", error, total_error) CALL VERIFY("H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, total_error) - ! /* Check that its character encoding is UTF-8 */ + ! Check that its character encoding is UTF-8 CALL H5Lget_info_f(file_id, "dataset2", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f2",cset, H5T_CSET_UTF8_F,total_error) - ! /* Create a new link to the dataset with a different character encoding. */ + ! Create a new link to the dataset with a different character encoding. CALL H5Pclose_f(lcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -1746,14 +1746,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL check("H5Lexists",error, total_error) CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) - ! /* Check that its character encoding is ASCII */ + ! Check that its character encoding is ASCII CALL H5Lget_info_f(file_id, "/dataset2_link", & cset, corder, f_corder_valid, link_type, address, val_size, & error) CALL check("H5Lget_info_f", error, total_error) CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* Check that the first link's encoding hasn't changed */ + ! Check that the first link's encoding hasn't changed CALL H5Lget_info_f(file_id, "/dataset2", & cset, corder, f_corder_valid, link_type, address, val_size, & @@ -1762,8 +1762,8 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f3",cset, H5T_CSET_UTF8_F,total_error) - !/* Make sure that LCPLs work properly for other API calls: */ - !/* H5Lcreate_soft */ + ! Make sure that LCPLs work properly for other API calls: + ! H5Lcreate_soft CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1777,7 +1777,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* H5Lmove */ + ! H5Lmove CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_ASCII_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1791,7 +1791,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error) - ! /* H5Lcopy */ + ! H5Lcopy CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error) CALL check("H5Pset_char_encoding_f",error, total_error) @@ -1805,7 +1805,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* H5Lcreate_external */ + ! H5Lcreate_external CALL H5Lcreate_external_f("filename", "path", file_id, "extlink", error, lcpl_id) CALL check("H5Lcreate_external_f", error, total_error) @@ -1817,7 +1817,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error) - ! /* Close open IDs */ + ! Close open IDs CALL H5Pclose_f(lcpl_id, error) CALL check("H5Pclose_f", error, total_error) @@ -1849,22 +1849,22 @@ SUBROUTINE objcopy(fapl, total_error) flag = H5O_COPY_SHALLOW_HIERARCHY_F -!/* Copy the file access property list */ +! Copy the file access property list CALL H5Pcopy_f(fapl, fapl2, error) CALL check("H5Pcopy_f", error, total_error) -!/* Set the "use the latest version of the format" bounds for creating objects in the file */ +! Set the "use the latest version of the format" bounds for creating objects in the file CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) - ! /* create property to pass copy options */ + ! create property to pass copy options CALL h5pcreate_f(H5P_OBJECT_COPY_F, pid, error) CALL check("h5pcreate_f",error, total_error) - ! /* set options for object copy */ + ! set options for object copy CALL H5Pset_copy_object_f(pid, flag, error) CALL check("H5Pset_copy_object_f",error, total_error) - ! /* Verify object copy flags */ + ! Verify object copy flags CALL H5Pget_copy_object_f(pid, cpy_flags, error) CALL check("H5Pget_copy_object_f",error, total_error) CALL VERIFY("H5Pget_copy_object_f", cpy_flags, flag, total_error) @@ -1878,7 +1878,7 @@ SUBROUTINE objcopy(fapl, total_error) END SUBROUTINE objcopy -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: lapl_nlinks ! * ! * Purpose: Check that the maximum number of soft links can be adjusted @@ -1894,7 +1894,7 @@ END SUBROUTINE objcopy ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE lapl_nlinks( fapl, total_error) @@ -1907,30 +1907,30 @@ SUBROUTINE lapl_nlinks( fapl, total_error) INTEGER :: error - INTEGER(HID_T) :: fid = (-1) !/* File ID */ - INTEGER(HID_T) :: gid = (-1), gid2 = (-1) !/* Group IDs */ - INTEGER(HID_T) :: plist = (-1) ! /* lapl ID */ - INTEGER(HID_T) :: tid = (-1) ! /* Other IDs */ - INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! /* Other property lists */ + INTEGER(HID_T) :: fid = (-1) ! File ID + INTEGER(HID_T) :: gid = (-1), gid2 = (-1) ! Group IDs + INTEGER(HID_T) :: plist = (-1) ! lapl ID + INTEGER(HID_T) :: tid = (-1) ! Other IDs + INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! Other property lists - CHARACTER(LEN=7) :: objname ! /* Object name */ - INTEGER(size_t) :: name_len ! /* Length of object name */ + CHARACTER(LEN=7) :: objname ! Object name + INTEGER(size_t) :: name_len ! Length of object name CHARACTER(LEN=12) :: filename = 'TestLinks.h5' - INTEGER(size_t) :: nlinks ! /* nlinks for H5Pset_nlinks */ + INTEGER(size_t) :: nlinks ! nlinks for H5Pset_nlinks INTEGER(size_t) :: buf_size = 7 ! WRITE(*,*) "adjusting nlinks with LAPL (w/new group format)" - ! /* Create file */ + ! Create file CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl) CALL check(" lapl_nlinks.h5fcreate_f",error,total_error) - ! /* Create group with short name in file (used as target for links) */ + ! Create group with short name in file (used as target for links) CALL H5Gcreate_f(fid, "final", gid, error) CALL check(" lapl_nlinks.H5Gcreate_f", error, total_error) - !/* Create chain of soft links to existing object (limited) */ + ! Create chain of soft links to existing object (limited) CALL H5Lcreate_soft_f("final", fid, "soft1", error) CALL H5Lcreate_soft_f("soft1", fid, "soft2", error) CALL H5Lcreate_soft_f("soft2", fid, "soft3", error) @@ -1949,98 +1949,98 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Lcreate_soft_f("soft15", fid, "soft16", error) CALL H5Lcreate_soft_f("soft16", fid, "soft17", error) - !/* Close objects */ + ! Close objects CALL H5Gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) CALL h5fclose_f(fid, error) CALL check("h5fclose_f",error,total_error) - !/* Open file */ + ! Open file CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl) CALL check("h5open_f",error,total_error) - !/* Create LAPL with higher-than-usual nlinks value */ - !/* Create a non-default lapl with udata set to point to the first group */ + ! Create LAPL with higher-than-usual nlinks value + ! Create a non-default lapl with udata set to point to the first group CALL H5Pcreate_f(H5P_LINK_ACCESS_F,plist,error) CALL check("h5Pcreate_f",error,total_error) nlinks = 20 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f",error,total_error) - !/* Ensure that nlinks was set successfully */ + ! Ensure that nlinks was set successfully nlinks = 0 CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f",error,total_error) CALL VERIFY("H5Pset_nlinks_f",INT(nlinks), 20, total_error) - !/* Open object through what is normally too many soft links using - ! * new property list */ + ! Open object through what is normally too many soft links using + ! * new property list CALL H5Oopen_f(fid,"soft17",gid,error,plist) CALL check("H5Oopen_f",error,total_error) - !/* Check name */ + ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft17", total_error) - !/* Create group using soft link */ + ! Create group using soft link CALL H5Gcreate_f(gid, "new_soft", gid2, error) CALL check("H5Gcreate_f", error, total_error) - ! /* Close groups */ + ! Close groups CALL H5Gclose_f(gid2, error) CALL check("H5Gclose_f", error, total_error) CALL H5Gclose_f(gid, error) CALL check("H5Gclose_f", error, total_error) - !/* Set nlinks to a smaller number */ + ! Set nlinks to a smaller number nlinks = 4 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* Ensure that nlinks was set successfully */ + ! Ensure that nlinks was set successfully nlinks = 0 CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pget_nlinks_f",error,total_error) CALL VERIFY("H5Pget_nlinks_f", INT(nlinks), 4, total_error) - ! /* Try opening through what is now too many soft links */ + ! Try opening through what is now too many soft links CALL H5Oopen_f(fid,"soft5",gid,error,plist) CALL VERIFY("H5Oopen_f", error, -1, total_error) ! should fail - ! /* Open object through lesser soft link */ + ! Open object through lesser soft link CALL H5Oopen_f(fid,"soft4",gid,error,plist) CALL check("H5Oopen_",error,total_error) - ! /* Check name */ + ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft4", total_error) - ! /* Test other functions that should use a LAPL */ + ! Test other functions that should use a LAPL nlinks = 20 CALL H5Pset_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* Try copying and moving when both src and dst contain many soft links + ! Try copying and moving when both src and dst contain many soft links ! * using a non-default LAPL - ! */ + ! CALL H5Lcopy_f(fid, "soft17", fid, "soft17/newer_soft", error, H5P_DEFAULT_F, plist) CALL check("H5Lcopy_f",error,total_error) CALL H5Lmove_f(fid, "soft17/newer_soft", fid, "soft17/newest_soft", error, lapl_id=plist) CALL check("H5Lmove_f",error, total_error) - ! /* H5Olink */ + ! H5Olink CALL H5Olink_f(gid, fid, "soft17/link_to_group", error, H5P_DEFAULT_F, plist) CALL check("H5Olink_f", error, total_error) - ! /* H5Lcreate_hard and H5Lcreate_soft */ + ! H5Lcreate_hard and H5Lcreate_soft CALL H5Lcreate_hard_f(fid, "soft17", fid, "soft17/link2_to_group", error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_hard_f", error, total_error) @@ -2048,27 +2048,27 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Lcreate_soft_f("/soft4", fid, "soft17/soft_link",error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_soft_f", error, total_error) - ! /* H5Ldelete */ + ! H5Ldelete CALL h5ldelete_f(fid, "soft17/soft_link", error, plist) CALL check("H5Ldelete_f", error, total_error) -!!$ /* H5Lget_val and H5Lget_info */ +!!$ H5Lget_val and H5Lget_info !!$ if(H5Lget_val(fid, "soft17", NULL, (size_t)0, plist) < 0) TEST_ERROR !!$ if(H5Lget_info(fid, "soft17", NULL, plist) < 0) TEST_ERROR !!$ - ! /* H5Lcreate_external and H5Lcreate_ud */ + ! H5Lcreate_external and H5Lcreate_ud CALL H5Lcreate_external_f("filename", "path", fid, "soft17/extlink", error, H5P_DEFAULT_F, plist) CALL check("H5Lcreate_external_f", error, total_error) !!$ if(H5Lregister(UD_rereg_class) < 0) TEST_ERROR !!$ if(H5Lcreate_ud(fid, "soft17/udlink", UD_HARD_TYPE, NULL, (size_t)0, H5P_DEFAULT, plist) < 0) TEST_ERROR !!$ - ! /* Close plist */ + ! Close plist CALL h5pclose_f(plist, error) CALL check("h5pclose_f", error, total_error) - ! /* Create a datatype and dataset as targets inside the group */ + ! Create a datatype and dataset as targets inside the group CALL h5tcopy_f(H5T_NATIVE_INTEGER, tid, error) CALL check("h5tcopy_f",error,total_error) CALL h5tcommit_f(gid, "datatype", tid, error) @@ -2083,12 +2083,12 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if((did = H5Dcreate2(gid, "dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR !!$ if(H5Dclose(did) < 0) TEST_ERROR !!$ - !/* Close group */ + ! Close group CALL h5gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) !!$ -!!$ /* Try to open the objects using too many symlinks with default *APLs */ +!!$ Try to open the objects using too many symlinks with default *APLs !!$ H5E_BEGIN_TRY { !!$ if((gid = H5Gopen2(fid, "soft17", H5P_DEFAULT)) >= 0) !!$ FAIL_PUTS_ERROR(" Should have failed for too many nested links.") @@ -2098,7 +2098,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ FAIL_PUTS_ERROR(" Should have failed for too many nested links.") !!$ } H5E_END_TRY !!$ - ! /* Create property lists with nlinks set */ + ! Create property lists with nlinks set CALL H5Pcreate_f(H5P_GROUP_ACCESS_F,gapl,error) CALL check("h5Pcreate_f",error,total_error) @@ -2116,9 +2116,9 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Pset_nlinks_f(dapl, nlinks, error) CALL check("H5Pset_nlinks_f", error, total_error) - !/* We should now be able to use these property lists to open each kind + ! We should now be able to use these property lists to open each kind ! * of object. - ! */ + ! CALL H5Gopen_f(fid, "soft17", gid, error, gapl) CALL check("H5Gopen_f",error,total_error) @@ -2128,7 +2128,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if((did = H5Dopen2(fid, "soft17/dataset", dapl)) < 0) TEST_ERROR - ! /* Close objects */ + ! Close objects CALL h5gclose_f(gid, error) CALL check("h5gclose_f",error,total_error) @@ -2137,7 +2137,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if(H5Dclose(did) < 0) TEST_ERROR !!$ - ! /* Close plists */ + ! Close plists CALL h5pclose_f(gapl, error) CALL check("h5pclose_f", error, total_error) @@ -2146,11 +2146,11 @@ SUBROUTINE lapl_nlinks( fapl, total_error) !!$ if(H5Pclose(dapl) < 0) TEST_ERROR !!$ -!!$ /* Unregister UD hard link class */ +!!$ Unregister UD hard link class !!$ if(H5Lunregister(UD_HARD_TYPE) < 0) TEST_ERROR !!$ - ! /* Close file */ + ! Close file CALL H5Fclose_f(fid, error) CALL check("H5Fclose_f", error, total_error) diff --git a/fortran/test/tH5MISC_1_8.f90 b/fortran/test/tH5MISC_1_8.f90 index efc350e..efaf594 100644 --- a/fortran/test/tH5MISC_1_8.f90 +++ b/fortran/test/tH5MISC_1_8.f90 @@ -80,38 +80,36 @@ SUBROUTINE dtransform(cleanup, total_error) IF(cleanup) CALL h5_cleanup_f("dtransform", H5P_DEFAULT_F, error) CALL check("h5_cleanup_f", error, total_error) - END SUBROUTINE dtransform -!/**************************************************************** +!*************************************************************** !** !** test_genprop_basic_class(): Test basic generic property list code. !** Tests creating new generic classes. !** -!****************************************************************/ +!*************************************************************** -SUBROUTINE test_genprop_basic_class(cleanup, total_error) +SUBROUTINE test_genprop_basic_class(total_error) USE HDF5 ! This module contains all necessary modules USE TH5_MISC IMPLICIT NONE - LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(HID_T) :: cid1 !/* Generic Property class ID */ - INTEGER(HID_T) :: cid2 !/* Generic Property class ID */ + INTEGER(HID_T) :: cid1 ! Generic Property class ID + INTEGER(HID_T) :: cid2 ! Generic Property class ID CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1" - CHARACTER(LEN=7) :: name ! /* Name of class */ - CHARACTER(LEN=10) :: name_big ! /* Name of class bigger buffer */ - CHARACTER(LEN=4) :: name_small ! /* Name of class smaller buffer*/ + CHARACTER(LEN=7) :: name ! Name of class + CHARACTER(LEN=10) :: name_big ! Name of class bigger buffer + CHARACTER(LEN=4) :: name_small ! Name of class smaller buffer INTEGER :: error INTEGER :: size LOGICAL :: flag - !/* Output message about test being performed */ + ! Output message about test being performed !WRITE(*,*) "Testing Basic Generic Property List Class Creation Functionality" @@ -121,11 +119,11 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) CALL H5Pget_class_name_f(cid1, name, size, error) CALL VERIFY("H5Pget_class_name", error, -1, error) - ! /* Create a new generic class, derived from the root of the class hierarchy */ + ! Create a new generic class, derived from the root of the class hierarchy CALL H5Pcreate_class_f(H5P_ROOT_F, CLASS1_NAME, cid1, error) CALL check("H5Pcreate_class", error, total_error) - ! /* Check class name */ + ! Check class name CALL H5Pget_class_name_f(cid1, name, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -135,7 +133,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class name smaller buffer*/ + ! Check class name smaller buffer CALL H5Pget_class_name_f(cid1, name_small, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -145,7 +143,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class name bigger buffer*/ + ! Check class name bigger buffer CALL H5Pget_class_name_f(cid1, name_big, size, error) CALL check("H5Pget_class_name", error, total_error) CALL VERIFY("H5Pget_class_name", size,7,error) @@ -155,56 +153,55 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error) total_error = total_error + 1 ENDIF - ! /* Check class parent */ + ! Check class parent CALL H5Pget_class_parent_f(cid1, cid2, error) CALL check("H5Pget_class_parent_f", error, total_error) - ! /* Verify class parent correct */ + ! Verify class parent correct CALL H5Pequal_f(cid2, H5P_ROOT_F, flag, error) CALL check("H5Pequal_f", error, total_error) CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) - ! /* Make certain false postives aren't being returned */ + ! Make certain false postives aren't being returned CALL H5Pequal_f(cid2, H5P_FILE_CREATE_F, flag, error) CALL check("H5Pequal_f", error, total_error) CALL verifylogical("H5Pequal_f", flag, .FALSE., total_error) - !/* Close parent class */ + ! Close parent class CALL H5Pclose_class_f(cid2, error) CALL check("H5Pclose_class_f", error, total_error) - !/* Close class */ + ! Close class CALL H5Pclose_class_f(cid1, error) CALL check("H5Pclose_class_f", error, total_error) END SUBROUTINE test_genprop_basic_class -SUBROUTINE test_h5s_encode(cleanup, total_error) +SUBROUTINE test_h5s_encode(total_error) -!/**************************************************************** +!*************************************************************** !** !** test_h5s_encode(): Test H5S (dataspace) encoding and decoding. !** -!****************************************************************/ +!*************************************************************** USE HDF5 ! This module contains all necessary modules USE TH5_MISC IMPLICIT NONE - LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error - INTEGER(hid_t) :: sid1, sid3! /* Dataspace ID */ + INTEGER(hid_t) :: sid1, sid3! Dataspace ID INTEGER(hid_t) :: decoded_sid1, decoded_sid3 - INTEGER :: rank !/* LOGICAL rank of dataspace */ + INTEGER :: rank ! LOGICAL rank of dataspace INTEGER(size_t) :: sbuf_size=0, scalar_size=0 ! Make sure the size is large CHARACTER(LEN=288) :: sbuf CHARACTER(LEN=288) :: scalar_buf - INTEGER(hsize_t) :: n ! /* Number of dataspace elements */ + INTEGER(hsize_t) :: n ! Number of dataspace elements INTEGER(hsize_t), DIMENSION(1:3) :: start = (/0, 0, 0/) INTEGER(hsize_t), DIMENSION(1:3) :: stride = (/2, 5, 3/) @@ -221,10 +218,10 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) INTEGER :: SPACE1_RANK = 3 INTEGER :: error - !/*------------------------------------------------------------------------- + !------------------------------------------------------------------------- ! * Test encoding and decoding of simple dataspace and hyperslab selection. ! *------------------------------------------------------------------------- - ! */ + ! CALL H5Screate_simple_f(SPACE1_RANK, dims1, sid1, error) CALL check("H5Screate_simple", error, total_error) @@ -234,14 +231,14 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL check("h5sselect_hyperslab_f", error, total_error) - !/* Encode simple data space in a buffer */ + ! Encode simple data space in a buffer ! First find the buffer size CALL H5Sencode_f(sid1, sbuf, sbuf_size, error) CALL check("H5Sencode", error, total_error) - ! /* Try decoding bogus buffer */ + ! Try decoding bogus buffer CALL H5Sdecode_f(sbuf, decoded_sid1, error) CALL VERIFY("H5Sdecode", error, -1, total_error) @@ -249,12 +246,12 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL H5Sencode_f(sid1, sbuf, sbuf_size, error) CALL check("H5Sencode", error, total_error) - ! /* Decode from the dataspace buffer and return an object handle */ + ! Decode from the dataspace buffer and return an object handle CALL H5Sdecode_f(sbuf, decoded_sid1, error) CALL check("H5Sdecode", error, total_error) - ! /* Verify the decoded dataspace */ + ! Verify the decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid1, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), & @@ -269,16 +266,16 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL h5sclose_f(decoded_sid1, error) CALL check("h5sclose_f", error, total_error) - ! /*------------------------------------------------------------------------- + ! ------------------------------------------------------------------------- ! * Test encoding and decoding of scalar dataspace. ! *------------------------------------------------------------------------- - ! */ - ! /* Create scalar dataspace */ + ! + ! Create scalar dataspace CALL H5Screate_f(H5S_SCALAR_F, sid3, error) CALL check("H5Screate_f",error, total_error) - ! /* Encode scalar data space in a buffer */ + ! Encode scalar data space in a buffer ! First find the buffer size CALL H5Sencode_f(sid3, scalar_buf, scalar_size, error) @@ -290,19 +287,19 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) CALL check("H5Sencode_f", error, total_error) - ! /* Decode from the dataspace buffer and return an object handle */ + ! Decode from the dataspace buffer and return an object handle CALL H5Sdecode_f(scalar_buf, decoded_sid3, error) CALL check("H5Sdecode_f", error, total_error) - ! /* Verify extent type */ + ! Verify extent type CALL H5Sget_simple_extent_type_f(decoded_sid3, space_type, error) CALL check("H5Sget_simple_extent_type_f", error, total_error) CALL VERIFY("H5Sget_simple_extent_type_f", space_type, H5S_SCALAR_F, total_error) - ! /* Verify decoded dataspace */ + ! Verify decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid3, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), 1, total_error) @@ -469,6 +466,9 @@ SUBROUTINE test_scaleoffset(cleanup, total_error ) CALL H5Fclose_f(file, error) CALL CHECK(" H5Fclose_f", error, total_error) + IF(cleanup) CALL h5_cleanup_f("h5scaleoffset", H5P_DEFAULT_F, error) + CALL check("h5_cleanup_f", error, total_error) + END SUBROUTINE test_scaleoffset END MODULE TH5MISC_1_8 diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90 index 8672e3c..99d4c22 100644 --- a/fortran/test/tH5O.f90 +++ b/fortran/test/tH5O.f90 @@ -49,11 +49,11 @@ SUBROUTINE test_h5o(cleanup, total_error) END SUBROUTINE test_h5o -!/**************************************************************** +!*************************************************************** !** !** test_h5o_link: Test creating link to object !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_h5o_link(total_error) @@ -80,10 +80,10 @@ SUBROUTINE test_h5o_link(total_error) INTEGER, PARAMETER :: TRUE = 1 - LOGICAL :: committed ! /* Whether the named datatype is committed + LOGICAL :: committed ! Whether the named datatype is committed INTEGER :: i, j - INTEGER :: error ! /* Value returned from API calls + INTEGER :: error ! Value returned from API calls CHARACTER(LEN=14) :: NAME_DATATYPE_SIMPLE="H5T_NATIVE_INT" CHARACTER(LEN=16) :: NAME_DATATYPE_SIMPLE2="H5T_NATIVE_INT-2" diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90 index b7003b3..8e014f4 100644 --- a/fortran/test/tH5O_F03.f90 +++ b/fortran/test/tH5O_F03.f90 @@ -116,11 +116,11 @@ END MODULE visit_cb MODULE TH5O_F03 CONTAINS -!/**************************************************************** +!*************************************************************** !** !** test_h5o_refcount(): Test H5O refcounting functions. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_h5o_refcount(total_error) diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90 index 8b48be6..7dcc580 100644 --- a/fortran/test/tH5P.f90 +++ b/fortran/test/tH5P.f90 @@ -450,8 +450,6 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) INTEGER(size_t) rdcc_nelmts INTEGER(size_t) rdcc_nbytes REAL :: rdcc_w0 - LOGICAL :: differ - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) IF (error .NE. 0) THEN diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90 index 945d0a5..56f9679 100644 --- a/fortran/test/tH5P_F03.f90 +++ b/fortran/test/tH5P_F03.f90 @@ -43,7 +43,7 @@ MODULE test_genprop_cls_cb1_mod USE ISO_C_BINDING IMPLICIT NONE - TYPE, BIND(C) :: cop_cb_struct_ ! /* Struct for iterations */ + TYPE, BIND(C) :: cop_cb_struct_ ! Struct for iterations INTEGER :: count INTEGER(HID_T) :: id END TYPE cop_cb_struct_ @@ -73,7 +73,7 @@ MODULE TH5P_F03 CONTAINS -!/*------------------------------------------------------------------------- +!------------------------------------------------------------------------- ! * Function: test_create ! * ! * Purpose: Tests H5Pset_fill_value_f and H5Pget_fill_value_f @@ -88,7 +88,7 @@ CONTAINS ! * Modifications: ! * ! *------------------------------------------------------------------------- -! */ +! SUBROUTINE test_create(total_error) @@ -116,9 +116,9 @@ SUBROUTINE test_create(total_error) REAL :: rfill REAL(KIND=dp) :: dpfill - !/* + ! ! * Create a file. - ! */ + ! CALL h5fcreate_f(filename,H5F_ACC_TRUNC_F,file,error) CALL check("h5fcreate_f", error, total_error) @@ -131,7 +131,7 @@ SUBROUTINE test_create(total_error) CALL h5pset_chunk_f(dcpl, 5, ch_size, error) CALL check("h5pset_chunk_f",error, total_error) - ! /* Create a compound datatype */ + ! Create a compound datatype CALL h5tcreate_f(H5T_COMPOUND_F, H5_SIZEOF(fill_ctype), comp_type_id, error) CALL check("h5tcreate_f", error, total_error) h5off = H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%a)) @@ -152,7 +152,7 @@ SUBROUTINE test_create(total_error) CALL H5Pset_fill_time_f(dcpl, H5D_FILL_TIME_ALLOC_F, error) CALL check("H5Pset_fill_time_f",error, total_error) - ! /* Compound datatype test */ + ! Compound datatype test f_ptr = C_LOC(fill_ctype) @@ -213,7 +213,7 @@ SUBROUTINE test_create(total_error) CALL h5fclose_f(file,error) CALL check("h5fclose_f", error, total_error) - ! /* Open the file and get the dataset fill value from each dataset */ + ! Open the file and get the dataset fill value from each dataset CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error) CALL check("H5Pcreate_f",error, total_error) @@ -223,7 +223,7 @@ SUBROUTINE test_create(total_error) CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, file, error, fapl) CALL check("h5fopen_f", error, total_error) - !/* Compound datatype test */ + ! Compound datatype test CALL h5dopen_f(file, "dset9", dset9, error) CALL check("h5dopen_f", error, total_error) @@ -277,14 +277,13 @@ SUBROUTINE test_genprop_class_callback(total_error) INTEGER, INTENT(INOUT) :: total_error - INTEGER(hid_t) :: cid1 !/* Generic Property class ID */ - INTEGER(hid_t) :: lid1 !/* Generic Property list ID */ - INTEGER(hid_t) :: lid2 !/* 2nd Generic Property list ID */ - INTEGER(size_t) :: nprops !/* Number of properties in class */ + INTEGER(hid_t) :: cid1, cid2 ! Generic Property class ID + INTEGER(hid_t) :: lid1, lid2 ! Generic Property list ID + INTEGER(size_t) :: nprops ! Number of properties in class TYPE(cop_cb_struct_), TARGET :: crt_cb_struct, cls_cb_struct - - CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1" + INTEGER :: CLASS1_NAME_SIZE = 7 ! length of class string + CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1", CLASS1_NAME_BUF TYPE(C_FUNPTR) :: f1, f5 TYPE(C_PTR) :: f2, f6 @@ -301,7 +300,8 @@ SUBROUTINE test_genprop_class_callback(total_error) INTEGER :: PROP3_DEF_VALUE = 10 INTEGER :: PROP4_DEF_VALUE = 10 - INTEGER :: error ! /* Generic RETURN value */ + INTEGER :: error ! Generic RETURN value + LOGICAL :: flag ! for tests f1 = C_FUNLOC(test_genprop_cls_cb1_f) f5 = C_FUNLOC(test_genprop_cls_cb1_f) @@ -309,79 +309,100 @@ SUBROUTINE test_genprop_class_callback(total_error) f2 = C_LOC(crt_cb_struct) f6 = C_LOC(cls_cb_struct) - !/* Create a new generic class, derived from the root of the class hierarchy */ - CALL h5pcreate_class_f(h5p_ROOT_F,CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6) + ! Create a new generic class, derived from the root of the class hierarchy + CALL h5pcreate_class_f(h5p_ROOT_F, CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6) CALL check("h5pcreate_class_f", error, total_error) - !/* Insert first property into class (with no callbacks) */ + ! Insert first property into class (with no callbacks) CALL h5pregister_f(cid1, PROP1_NAME, PROP1_SIZE, PROP1_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert second property into class (with no callbacks) */ + ! Insert second property into class (with no callbacks) CALL h5pregister_f(cid1, PROP2_NAME, PROP2_SIZE, PROP2_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert third property into class (with no callbacks) */ + ! Insert third property into class (with no callbacks) CALL h5pregister_f(cid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - !/* Insert fourth property into class (with no callbacks) */ + ! Insert fourth property into class (with no callbacks) CALL h5pregister_f(cid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, error) CALL check("h5pregister_f", error, total_error) - ! /* Check the number of properties in class */ + ! Check the number of properties in class CALL h5pget_nprops_f(cid1, nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Initialize class callback structs */ + ! Initialize class callback structs crt_cb_struct%count = 0 crt_cb_struct%id = -1 cls_cb_struct%count = 0 cls_cb_struct%id = -1 - !/* Create a property list from the class */ + ! Create a property list from the class CALL h5pcreate_f(cid1, lid1, error) CALL check("h5pcreate_f", error, total_error) - !/* Verify that the creation callback occurred */ + ! Get the list's class + CALL H5Pget_class_f(lid1, cid2, error) + CALL check("H5Pget_class_f", error, total_error) + + ! Check that the list's class is correct + CALL H5Pequal_f(cid2, cid1, flag, error) + CALL check("H5Pequal_f", error, total_error) + CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) + + ! Check the class name + CALL H5Pget_class_name_f(cid2, CLASS1_NAME_BUF, CLASS1_NAME_SIZE, error) + CALL check("H5Pget_class_name_f", error, total_error) + CALL verifystring("H5Pget_class_name_f", CLASS1_NAME_BUF, CLASS1_NAME, error) + IF(error.NE.0)THEN + WRITE(*,*) 'Class names do not match! name=',CLASS1_NAME_BUF, 'CLASS1_NAME=',CLASS1_NAME + total_error = total_error + 1 + ENDIF + ! Close class + CALL h5pclose_class_f(cid2, error) + CALL check("h5pclose_class_f", error, total_error) + + ! Verify that the creation callback occurred CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 1, total_error) - CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid1), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid1, total_error) - ! /* Check the number of properties in list */ + ! Check the number of properties in list CALL h5pget_nprops_f(lid1,nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Create another property list from the class */ + ! Create another property list from the class CALL h5pcreate_f(cid1, lid2, error) CALL check("h5pcreate_f", error, total_error) - ! /* Verify that the creation callback occurred */ + ! Verify that the creation callback occurred CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 2, total_error) - CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid2), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid2, total_error) - ! /* Check the number of properties in list */ + ! Check the number of properties in list CALL h5pget_nprops_f(lid2,nprops, error) CALL check("h5pget_nprops_f", error, total_error) CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) - ! /* Close first list */ + ! Close first list CALL h5pclose_f(lid1, error); CALL check("h5pclose_f", error, total_error) - !/* Verify that the close callback occurred */ + ! Verify that the close callback occurred CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 1, total_error) - CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid1), total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid1, total_error) - !/* Close second list */ + ! Close second list CALL h5pclose_f(lid2, error); CALL check("h5pclose_f", error, total_error) - !/* Verify that the close callback occurred */ + ! Verify that the close callback occurred CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 2, total_error) - CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid2), total_error) + CALL verify_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid2, total_error) - !/* Close class */ + ! Close class CALL h5pclose_class_f(cid1, error) CALL check("h5pclose_class_f", error, total_error) diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90 index ba68d62..7d07308 100644 --- a/fortran/test/tH5Sselect.f90 +++ b/fortran/test/tH5Sselect.f90 @@ -1027,13 +1027,13 @@ CONTAINS RETURN END SUBROUTINE test_basic_select -!/**************************************************************** +!*************************************************************** !** !** test_select_point(): Test basic H5S (dataspace) selection code. !** Tests element selections between dataspaces of various sizes !** and dimensionalities. !** -!****************************************************************/ +!*************************************************************** SUBROUTINE test_select_point(cleanup, total_error) USE HDF5 ! This module contains all necessary modules @@ -1056,29 +1056,29 @@ SUBROUTINE test_select_point(cleanup, total_error) INTEGER, PARAMETER :: SPACE2_RANK=2 INTEGER, PARAMETER :: SPACE3_RANK=2 - ! /* Element selection information */ + ! Element selection information INTEGER, PARAMETER :: POINT1_NPOINTS=10 - INTEGER(hid_t) ::fid1 ! /* HDF5 File IDs */ - INTEGER(hid_t) ::dataset ! /* Dataset ID */ - INTEGER(hid_t) ::sid1,sid2 ! /* Dataspace ID */ + INTEGER(hid_t) ::fid1 ! HDF5 File IDs + INTEGER(hid_t) ::dataset ! Dataset ID + INTEGER(hid_t) ::sid1,sid2 ! Dataspace ID INTEGER(hsize_t), DIMENSION(1:3) :: dims1 = (/SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3/) INTEGER(hsize_t), DIMENSION(1:2) :: dims2 = (/SPACE2_DIM1, SPACE2_DIM2/) INTEGER(hsize_t), DIMENSION(1:2) :: dims3 = (/SPACE3_DIM1, SPACE3_DIM2/) - INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 !/* Coordinates for point selection */ - INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 !/* Coordinates for point selection */ + INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 ! Coordinates for point selection + INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 ! Coordinates for point selection INTEGER(hssize_t) :: npoints -!!$ uint8_t *wbuf, /* buffer to write to disk */ -!!$ *rbuf, /* buffer read from disk */ -!!$ *tbuf; /* temporary buffer pointer */ - INTEGER :: i,j; !/* Counters */ -! struct pnt_iter pi; /* Custom Pointer iterator struct */ - INTEGER :: error !/* Generic return value */ +!!$ uint8_t *wbuf, buffer to write to disk +!!$ *rbuf, buffer read from disk +!!$ *tbuf; temporary buffer pointer + INTEGER :: i,j; ! Counters +! struct pnt_iter pi; Custom Pointer iterator struct + INTEGER :: error ! Generic return value CHARACTER(LEN=9) :: filename = 'h5s_hyper' CHARACTER(LEN=80) :: fix_filename CHARACTER(LEN=1), DIMENSION(1:SPACE2_DIM1,1:SPACE2_DIM2) :: wbuf @@ -1091,11 +1091,11 @@ SUBROUTINE test_select_point(cleanup, total_error) xfer_plist = H5P_DEFAULT_F ! MESSAGE(5, ("Testing Element Selection Functions\n")); - !/* Allocate write & read buffers */ + ! Allocate write & read buffers !!$ wbuf = HDmalloc(sizeof(uint8_t) * SPACE2_DIM1 * SPACE2_DIM2); !!$ rbuf = HDcalloc(sizeof(uint8_t), (size_t)(SPACE3_DIM1 * SPACE3_DIM2)); !!$ - !/* Initialize WRITE buffer */ + ! Initialize WRITE buffer DO i = 1, SPACE2_DIM1 DO j = 1, SPACE2_DIM2 @@ -1107,19 +1107,19 @@ SUBROUTINE test_select_point(cleanup, total_error) !!$ for(j=0; j/include>" + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} ) #----------------------------------------------------------------------------- # Add file(s) to CMake Install #----------------------------------------------------------------------------- + if (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}) else (WIN32) - install ( - FILES - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5ds.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5tb.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lt.mod - ${CMAKE_Fortran_MODULE_DIRECTORY}/h5im.mod - DESTINATION - ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT - fortheaders - ) + set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}) endif (WIN32) +set (mod_files + ${MOD_BUILD_DIR}/h5ds.mod + ${MOD_BUILD_DIR}/h5tb.mod + ${MOD_BUILD_DIR}/h5lt.mod + ${MOD_BUILD_DIR}/h5im.mod +) + +install ( + FILES + ${mod_files} + DESTINATION + ${HDF5_INSTALL_INCLUDE_DIR} + COMPONENT + fortheaders +) + #----------------------------------------------------------------------------- # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 6b02f75..1989c5a 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -426,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -458,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -482,11 +480,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -549,7 +545,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -685,7 +680,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt index fcb0b8c..55fb987 100644 --- a/hl/fortran/test/CMakeLists.txt +++ b/hl/fortran/test/CMakeLists.txt @@ -9,32 +9,36 @@ INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${ #-- Adding test for hl_f90_tstds add_executable (hl_f90_tstds tstds.f90) TARGET_NAMING (hl_f90_tstds ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstds " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstds ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tstlite add_executable (hl_f90_tstlite tstlite.f90) TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tstimage add_executable (hl_f90_tstimage tstimage.f90) TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tstimage ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran) #-- Adding test for hl_f90_tsttable add_executable (hl_f90_tsttable tsttable.f90) TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE}) -TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable " " " ") +TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable ${LIB_TYPE} " " " ") target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET}) +target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}) set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran) set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran) diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in index baa8eb2..6725d26 100644 --- a/hl/fortran/test/Makefile.in +++ b/hl/fortran/test/Makefile.in @@ -417,7 +417,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1) AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -449,7 +448,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -473,11 +471,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -540,7 +536,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index f4d5a96..3c24e40 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -34,7 +34,7 @@ set (HL_HEADERS ) add_library (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} ${HL_SRCS} ${HL_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET}) H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} ${LIB_TYPE}) set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES diff --git a/hl/src/H5DS.c b/hl/src/H5DS.c index 939a99f..de6e66c 100644 --- a/hl/src/H5DS.c +++ b/hl/src/H5DS.c @@ -1430,10 +1430,12 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) hid_t aid = -1; /* attribute ID */ int rank; /* rank of dataset */ hsize_t dims[1]; /* dimensions of dataset */ - const char **buf = NULL; /* buffer to store in the attribute */ H5I_type_t it; /* ID type */ unsigned int i; - + union { /* union is needed to eliminate compiler warnings about */ + char ** buf; /* discarding the 'const' qualifier in the free */ + char const ** const_buf; /* buf calls */ + } u; /*------------------------------------------------------------------------- * parameter checking *------------------------------------------------------------------------- @@ -1496,19 +1498,19 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; /* allocate and initialize */ - buf = (const char **) HDmalloc((size_t) rank * sizeof(char *)); + u.const_buf = (char const **) HDmalloc((size_t) rank * sizeof(char *)); - if (buf == NULL) + if (u.const_buf == NULL) goto out; for (i = 0; i < (unsigned int) rank; i++) - buf[i] = NULL; + u.const_buf[i] = NULL; /* store the label information in the required index */ - buf[idx] = label; + u.const_buf[idx] = label; /* write the attribute with the label */ - if (H5Awrite(aid, tid, buf) < 0) + if (H5Awrite(aid, tid, u.const_buf) < 0) goto out; /* close */ @@ -1518,10 +1520,10 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; if (H5Aclose(aid) < 0) goto out; - if (buf) + if (u.const_buf) { - HDfree(buf); - buf = NULL; + HDfree(u.const_buf); + u.const_buf = NULL; } } @@ -1532,6 +1534,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) else { + if ((aid = H5Aopen(did, DIMENSION_LABELS, H5P_DEFAULT)) < 0) goto out; @@ -1539,34 +1542,34 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; /* allocate and initialize */ - buf = (const char **) HDmalloc((size_t) rank * sizeof(char *)); - - if (buf == NULL) + u.buf = (char **) HDmalloc((size_t) rank * sizeof(char *)); + + if (u.buf == NULL) goto out; /* read */ - if (H5Aread(aid, tid, (void *) buf) < 0) + if (H5Aread(aid, tid, (void *)u.buf) < 0) goto out; /* free the ptr that will be replaced by label */ - if (buf[idx]) - HDfree(buf[idx]); + if (u.buf[idx]) + HDfree(u.buf[idx]); /* store the label information in the required index */ - buf[idx] = label; + u.const_buf[idx] = label; /* write the attribute with the new references */ - if (H5Awrite(aid, tid, buf) < 0) + if (H5Awrite(aid, tid, u.buf) < 0) goto out; /* label was brought in, so don't free */ - buf[idx] = NULL; + u.buf[idx] = NULL; /* free all the ptr's from the H5Aread() */ for (i = 0; i < (unsigned int) rank; i++) { - if (buf[i]) - HDfree(buf[i]); + if (u.buf[i]) + HDfree(u.buf[i]); } /* close */ @@ -1574,28 +1577,29 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label) goto out; if (H5Aclose(aid) < 0) goto out; - if (buf) + if (u.buf) { - HDfree(buf); - buf = NULL; + HDfree(u.buf); + u.buf = NULL; } } return SUCCEED; /* error zone */ + out: - if (buf) + if (u.buf) { - if (buf[idx]) /* check if we errored during H5Awrite */ - buf[idx] = NULL; /* don't free label */ + if (u.buf[idx]) /* check if we errored during H5Awrite */ + u.buf[idx] = NULL; /* don't free label */ /* free all the ptr's from the H5Aread() */ for (i = 0; i < (unsigned int) rank; i++) { - if (buf[i]) - HDfree(buf[i]); + if (u.buf[i]) + HDfree(u.buf[i]); } - HDfree(buf); + HDfree(u.buf); } H5E_BEGIN_TRY { diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index b59a7bc..8a3bf09 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -407,7 +407,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -439,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -463,11 +461,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -530,7 +526,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -666,7 +661,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # This library is our main target. diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index 28c716c..47383ce 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR}) MACRO (HL_ADD_EXE hl_name) add_executable (hl_${hl_name} ${hl_name}.c) TARGET_NAMING (hl_${hl_name} ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_${hl_name} " " " ") + TARGET_C_PROPERTIES (hl_${hl_name} ${LIB_TYPE} " " " ") target_link_libraries (hl_${hl_name} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} @@ -45,8 +45,8 @@ HL_ADD_EXE (test_table) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (hl_gen_test_ds gen_test_ds.c) - TARGET_NAMING (hl_gen_test_ds ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_gen_test_ds " " " ") + TARGET_NAMING (hl_gen_test_ds STATIC) + TARGET_C_PROPERTIES (hl_gen_test_ds STATIC " " " ") target_link_libraries (hl_gen_test_ds ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in index c98ed35..7a5df10 100644 --- a/hl/test/Makefile.in +++ b/hl/test/Makefile.in @@ -458,7 +458,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -490,7 +489,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -514,11 +512,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -581,7 +577,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt index 567b3da..f58a513 100644 --- a/hl/tools/CMakeLists.txt +++ b/hl/tools/CMakeLists.txt @@ -19,7 +19,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5) add_executable (gif2h5 ${GIF2H5_SRCS}) TARGET_NAMING (gif2h5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (gif2h5 " " " ") +TARGET_C_PROPERTIES (gif2h5 ${LIB_TYPE} " " " ") target_link_libraries (gif2h5 ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl) @@ -30,7 +30,7 @@ set (hdf2gif_SRCS ) add_executable (h52gif ${hdf2gif_SRCS}) TARGET_NAMING (h52gif ${LIB_TYPE}) -TARGET_C_PROPERTIES (h52gif " " " ") +TARGET_C_PROPERTIES (h52gif ${LIB_TYPE} " " " ") target_link_libraries (h52gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h52gif PROPERTIES FOLDER tools/hl) @@ -42,8 +42,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (hl_h52gifgentest ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/h52gifgentst.c) - TARGET_NAMING (hl_h52gifgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (hl_h52gifgentest " " " ") + TARGET_NAMING (hl_h52gifgentest STATIC) + TARGET_C_PROPERTIES (hl_h52gifgentest STATIC " " " ") target_link_libraries (hl_h52gifgentest ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (hl_h52gifgentest PROPERTIES FOLDER generator/tools/hl) diff --git a/hl/tools/CMakeTests.cmake b/hl/tools/CMakeTests.cmake index a340c2d..4ebd7a2 100644 --- a/hl/tools/CMakeTests.cmake +++ b/hl/tools/CMakeTests.cmake @@ -26,6 +26,13 @@ add_custom_command ( ARGS -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/h52giftst.h5 ${PROJECT_BINARY_DIR}/testfiles/h52giftst.h5 ) +add_custom_command ( + TARGET h52gif + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/ex_image2.h5 ${PROJECT_BINARY_DIR}/testfiles/ex_image2.h5 +) + # Remove any output file left over from previous test run add_test ( NAME HL_TOOLS-clear-objects @@ -33,8 +40,19 @@ add_test ( -E remove image1.gif image1.h5 + image.gif + image24.gif ) +add_test (NAME HL_TOOLS_gif2h5 COMMAND $ testfiles/image1.gif image1.h5) + add_test (NAME HL_TOOLS_h52gif COMMAND $ testfiles/h52giftst.h5 image1.gif -i image) -add_test (NAME HL_TOOLS_gif2h5 COMMAND $ testfiles/image1.gif image1.h5) +add_test (NAME HL_TOOLS_h52gif_none COMMAND $ testfiles/h52giftst.h5 image.gif -i nosuch_image) +set_tests_properties (HL_TOOLS_h52gif_none PROPERTIES WILL_FAIL "true") + +#add_test (NAME HL_TOOLS_h52gifpal COMMAND $ testfiles/h52giftst.h5 image.gif -i palette) +#set_tests_properties (HL_TOOLS_h52gifpal PROPERTIES WILL_FAIL "true") + +add_test (NAME HL_TOOLS_h52gif24bits COMMAND $ testfiles/ex_image2.h5 image24.gif -i image24bitpixel) +set_tests_properties (HL_TOOLS_h52gif24bits PROPERTIES WILL_FAIL "true") diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in index 097cd1e..324d0c7 100644 --- a/hl/tools/Makefile.in +++ b/hl/tools/Makefile.in @@ -406,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -438,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -462,11 +460,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in index d3245ed..3da84e1 100644 --- a/hl/tools/gif2h5/Makefile.in +++ b/hl/tools/gif2h5/Makefile.in @@ -420,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -452,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -476,11 +474,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -543,7 +539,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/hl/tools/gif2h5/decompress.c b/hl/tools/gif2h5/decompress.c index d4e4cdc..ef2d78a 100644 --- a/hl/tools/gif2h5/decompress.c +++ b/hl/tools/gif2h5/decompress.c @@ -90,7 +90,7 @@ ReadCode(void) RawCode += (0x10000 * Raster[ByteOffset + 2]); RawCode >>= (BitOffset % 8); - BitOffset += CodeSize; + BitOffset += (int)CodeSize; return (RawCode & ReadMask); } diff --git a/hl/tools/gif2h5/gif2mem.c b/hl/tools/gif2h5/gif2mem.c index a2e4893..456a32d 100644 --- a/hl/tools/gif2h5/gif2mem.c +++ b/hl/tools/gif2h5/gif2mem.c @@ -153,7 +153,7 @@ Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) if (ImageCount > ImageArray) { aTemp = ImageArray; - ImageArray = (ImageArray << 1) + 1; + ImageArray = (BYTE)((ImageArray << 1) + 1); if (!(gifImageDesc = (GIFIMAGEDESC **)realloc(gifImageDesc, sizeof(GIFIMAGEDESC *) * ImageArray))) { printf("Out of memory!"); @@ -220,7 +220,7 @@ Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) PlainTextCount++; if (PlainTextCount > PlainTextArray) - PlainTextArray = (PlainTextArray << 1) + 1; + PlainTextArray = (BYTE)((PlainTextArray << 1) + 1); if (!(gifPlainText = (GIFPLAINTEXT **)realloc(gifPlainText , sizeof(GIFPLAINTEXT *) * PlainTextArray))) { printf("Out of memory!"); @@ -242,7 +242,7 @@ Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) CommentCount++; if (CommentCount > CommentArray) - CommentArray = (CommentArray << 1) + 1; + CommentArray = (BYTE)((CommentArray << 1) + 1); if (!(gifComment = (GIFCOMMENT **)realloc(gifComment , sizeof(GIFCOMMENT *) * CommentArray))) { printf("Out of memory!"); @@ -269,7 +269,7 @@ Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) if (ImageCount > ImageArray) { aTemp = ImageArray; - ImageArray = (ImageArray << 1) + 1; + ImageArray = (BYTE)((ImageArray << 1) + 1); if (!(gifGraphicControl = (GIFGRAPHICCONTROL **)realloc(gifGraphicControl , sizeof(GIFGRAPHICCONTROL *) * ImageArray))) { printf("Out of memory!"); @@ -307,7 +307,7 @@ Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct) ApplicationCount++; if (ApplicationCount > ApplicationArray) - ApplicationArray = (ApplicationArray << 1) + 1; + ApplicationArray = (BYTE)((ApplicationArray << 1) + 1); if (!(gifApplication = (GIFAPPLICATION **)realloc(gifApplication , sizeof(GIFAPPLICATION *) * ApplicationArray))) { printf("Out of memory!"); diff --git a/hl/tools/gif2h5/h52gifgentst.c b/hl/tools/gif2h5/h52gifgentst.c index ef38c3b..3433d0a 100644 --- a/hl/tools/gif2h5/h52gifgentst.c +++ b/hl/tools/gif2h5/h52gifgentst.c @@ -64,7 +64,7 @@ int main(void) space = WIDTH*HEIGHT / PAL_ENTRIES; for (i=0, j=0, n=0; i < WIDTH*HEIGHT; i++, j++ ) { - buf[i] = n; + buf[i] = (unsigned char)n; if ( j > space ) { n++; @@ -83,9 +83,9 @@ int main(void) */ for ( i=0, n=0; i /dev/null 2>&1 + + RET=$? + if [ $RET = 0 ] ; then + echo " PASSED" + else + echo "*FAILED*" + errors="` expr $errors + 1 `"; + fi } -TOOLTEST2() +# Verify the test runs with failure (return code is not 0) +# Use for testing if tool can handle error conditions like +# illegal input, bad arguments, exeeding limits, ... +TOOLTESTFAIL() { - $RUNSERIAL ./gif2h5 $* - - RET=$? - if [ $RET != 0 ] ; then - echo "*FAILED*" - errors="` expr $errors + 1 `"; - else - echo " PASSED" - fi + # for now, discard any error messages generated. + $RUNSERIAL $* > /dev/null 2>&1 + + RET=$? + if [ $RET != 0 ] ; then + echo " PASSED" + else + echo "*FAILED*" + errors="` expr $errors + 1 `"; + fi } +# Positive tests for gif2h5 +echo "**validate the gif2h5 tool processes input correctly..." +TESTING "./gif2h5 image1.gif image1.h5" +TOOLTEST ./gif2h5 $TESTFILE2 image1.h5 +echo "" +# Positive tests for h52gif +echo "**validate the h52gif tool processes input correctly..." TESTING "./h52gif h52giftst.h5 image1.gif -i image" -TOOLTEST1 $TESTFILE1 image1.gif -i image -TESTING "./gif2h5 image1.gif image1.h5" -TOOLTEST2 $TESTFILE2 image1.h5 +TOOLTEST ./h52gif $TESTFILE1 image1.gif -i image +echo "" +# Negative tests. +echo "**verify the the h52gif tool handle error conditions correctly..." +# nonexisting dataset name +TESTING "./h52gif h52giftst.h5 image.gif -i nosuch_image" +TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i nosuch_image" +# this test should have failed but it did not. Comment it out for now. +#TESTING "./h52gif h52giftst.h5 image.gif -i palette" +#TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i palette" +TESTING "./h52gif h52giftst.h5 image24.gif -i image24bitpixel" +TOOLTESTFAIL "./h52gif $TESTFILE3 image24.gif -i image24bitpixel" +echo "" +# all done. summarize results. if test $errors -eq 0 ; then - echo "All h52gif tests passed." + echo "All gif2h5 and h52gif tests passed." exit 0 else - echo "h52gif tests failed with $errors errors." + echo "Some gif2h5 or h52gif tests failed with $errors errors." exit 1 fi diff --git a/hl/tools/gif2h5/hdf2gif.c b/hl/tools/gif2h5/hdf2gif.c index 090d657..5c342ba 100644 --- a/hl/tools/gif2h5/hdf2gif.c +++ b/hl/tools/gif2h5/hdf2gif.c @@ -20,6 +20,8 @@ #include "h5tools.h" #include "h5tools_utils.h" +#define IMAGE_WIDTH_MAX 65535 /* unsigned 16bits integer */ +#define IMAGE_HEIGHT_MAX 65535 /* unsigned 16bits integer */ int EndianOrder; @@ -147,6 +149,17 @@ int main(int argc , char **argv) if ( H5IMget_image_info( fid, image_name, &width, &height, &planes, interlace, &npals ) < 0 ) goto out; + if (width > IMAGE_WIDTH_MAX || height > IMAGE_HEIGHT_MAX){ + fprintf(stderr, "HDF5 image is too large. Limit is %d by %d.\n", IMAGE_WIDTH_MAX, IMAGE_HEIGHT_MAX); + goto out; + } + + /* tool can handle single plane images only. */ + if (planes > 1){ + fprintf(stderr, "Cannot handle multiple planes image\n"); + goto out; + } + Image = (BYTE*) malloc( (size_t) width * (size_t) height ); if ( H5IMread_image( fid, image_name, Image ) < 0 ) @@ -194,9 +207,9 @@ int main(int argc , char **argv) numcols = 256; for (i = 0 ; i < numcols ; i++) { - Red[i] = 255 - i; - Green[i] = 255 - i; - Blue[i] = 255 - i; + Red[i] = (BYTE)(255 - i); + Green[i] = (BYTE)(255 - i); + Blue[i] = (BYTE)(255 - i); } } else @@ -229,7 +242,7 @@ int main(int argc , char **argv) if (j==i) { /* wasn't found */ - pc2nc[i] = nc; + pc2nc[i] = (BYTE)nc; r1[nc] = Red[i]; g1[nc] = Green[i]; b1[nc] = Blue[i]; diff --git a/hl/tools/gif2h5/hdfgifwr.c b/hl/tools/gif2h5/hdfgifwr.c index d828226..4c52f4c 100644 --- a/hl/tools/gif2h5/hdfgifwr.c +++ b/hl/tools/gif2h5/hdfgifwr.c @@ -270,7 +270,7 @@ nomatch: ent = c; if (free_ent < maxmaxcode) { - CodeTabOf (i) = free_ent++; /* code -> hashtable */ + CodeTabOf (i) = (unsigned short)free_ent++; /* code -> hashtable */ HashTabOf (i) = fcode; } else { cl_block(); @@ -313,9 +313,9 @@ output(int code) cur_accum &= masks[cur_bits]; if (cur_bits > 0) - cur_accum |= ((long)code << cur_bits); + cur_accum |= (unsigned long)((long)code << cur_bits); else - cur_accum = code; + cur_accum = (unsigned long)code; cur_bits += n_bits; @@ -437,7 +437,7 @@ static char accum[ 256 ]; static void char_out(int c) { - accum[ a_count++ ] = c; + accum[ a_count++ ] = (char)c; if (a_count >= 254) flush_char(); diff --git a/hl/tools/gif2h5/testfiles/REAMDE b/hl/tools/gif2h5/testfiles/REAMDE new file mode 100644 index 0000000..a428d47 --- /dev/null +++ b/hl/tools/gif2h5/testfiles/REAMDE @@ -0,0 +1,6 @@ +ex_image2.h5 + Generated by hl/examples/ex_image2.c +5giftst.h5: + Generated by ../h52gifgentst.c +image1.gif: + To be determined. diff --git a/hl/tools/gif2h5/testfiles/ex_image2.h5 b/hl/tools/gif2h5/testfiles/ex_image2.h5 new file mode 100644 index 0000000..a36df1b Binary files /dev/null and b/hl/tools/gif2h5/testfiles/ex_image2.h5 differ diff --git a/hl/tools/h5watch/Makefile.in b/hl/tools/h5watch/Makefile.in index ffb0cfa..77545ca 100644 --- a/hl/tools/h5watch/Makefile.in +++ b/hl/tools/h5watch/Makefile.in @@ -417,7 +417,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -449,7 +448,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -473,11 +471,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -540,7 +536,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index 248f03f..dc87d5a 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -30,7 +30,7 @@ Obtaining HDF5 source code CMake version 1. We suggest you obtain the latest CMake from the Kitware web site. - The HDF5 1.8."X" product requires a minimum CMake version 2.8.12, + The HDF5 1.8."X" product requires a minimum CMake version 3.1.0, where "X" is the current HDF5 release version. @@ -227,7 +227,7 @@ IV. Further considerations ======================================================================== 1. We suggest you obtain the latest CMake for windows from the Kitware - web site. The HDF5 1.8."X" product requires a minimum CMake version 2.8.12. + web site. The HDF5 1.8."X" product requires a minimum CMake version 3.1.0. 2. If you plan to use Zlib or Szip: A. Download the binary packages and install them in a central location. @@ -542,15 +542,14 @@ The config/cmake/cacheinit.cmake file overrides the following values. ---------------- General Build Options --------------------- BUILD_SHARED_LIBS "Build Shared Libraries" OFF BUILD_STATIC_EXECS "Build Static Executabless" OFF -BUILD_STATIC_PIC "Build Static PIC" OFF BUILD_TESTING "Build HDF5 Unit Testing" OFF ---------------- HDF5 Build Options --------------------- -HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF -HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF +HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON +HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF -HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF -HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF +HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON +HDF5_BUILD_TOOLS "Build HDF5 Tools" ON if (HDF5_BUILD_FORTRAN) HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON @@ -574,7 +573,6 @@ HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" HDF5_TEST_VFD "Execute tests with different VFDs" OFF HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." OFF -HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON HDF5_ENABLE_THREADSAFE "Enable Threadsafety" OFF if (APPLE) @@ -590,10 +588,6 @@ HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0 SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0 -HDF5_USE_FILTER_FLETCHER32 "Use the FLETCHER32 Filter" ON -HDF5_USE_FILTER_NBIT "Use the NBIT Filter" ON -HDF5_USE_FILTER_SCALEOFFSET "Use the SCALEOFFSET Filter" ON -HDF5_USE_FILTER_SHUFFLE "Use the SHUFFLE Filter" ON if (HDF5_ENABLE_SZIP_SUPPORT) HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF if (WINDOWS) diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index 2624b3b..c38c3fc 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -107,89 +107,9 @@ This allows for >2GB sized files on Linux systems and is only available with Linux kernels 2.4 and greater. -2.4. Red Storm (Cray XT3) (for v1.8 and later) +2.4. Hopper (Cray XE6) (for v1.8 and later) ------------------------- -Both serial and parallel HDF5 are supported in Red Storm. -2.4.1 Building serial HDF5 for Red Storm ------------------------------------------- -The following steps are for building the serial HDF5 for the Red Storm -compute nodes. They would probably work for other Cray XT3 systems but have -not been verified. - -# Assume you already have a copy of HDF5 source code in directory `hdf5' and -# want to install the binary in directory `/project/hdf5/hdf5'. - -$ cd hdf5 -$ bin/yodconfigure configure -$ env RUNSERIAL="yod -sz 1" \ - CC=cc FC=ftn CXX=CC \ - ./configure --prefix=/project/hdf5/hdf5 -$ make -$ make check - -# if all is well, install the binary. -$ make install - -2.4.2 Building parallel HDF5 for Red Storm ------------------------------------------- -The following steps are for building the Parallel HDF5 for the Red Storm -compute nodes. They would probably work for other Cray XT3 systems but have -not been verified. - -# Assume you already have a copy of HDF5 source code in directory `hdf5' and -# want to install the binary in directory `/project/hdf5/phdf5'. You also -# have done the proper setup to have mpicc and mpif90 as the compiler commands. - -$ cd hdf5 -$ bin/yodconfigure configure -$ env RUNSERIAL="yod -sz 1" RUNPARALLEL="yod -sz 3" \ - CC=cc FC=ftn \ - ./configure --enable-parallel --prefix=/project/hdf5/phdf5 -$ make -$ make check - -# if all is well, install the binary. -$ make install - -2.4.3 Red Storm known problems ------------------------------- -For Red Storm, a Cray XT3 system, the yod command sometimes gives the -message, "yod allocation delayed for node recovery". This interferes with -test suites that do not expect seeing this message. To bypass this problem, -I launch the executables with a command shell script called "myyod" which -consists of the following lines. (You should set $RUNSERIAL and $RUNPARALLEL -to use myyod instead of yod.) -==== myyod ======= -#!/bin/sh -# sleep 2 seconds to allow time for the node recovery else it pops the -# message, -# yod allocation delayed for node recovery -sleep 2 -yod $* -==== end of myyod ======= - -For Red Storm, a Cray XT3 system, the tools/h5ls/testh5ls.sh will fail on -the test "Testing h5ls -w80 -r -g tgroup.h5" fails. This test is -expected to fail and exit with a non-zero code but the yod command does -not propagate the exit code of the executables. Yod always returns 0 if it -can launch the executable. The test suite shell expects a non-zero for -this particular test, therefore it concludes the test has failed when it -receives 0 from yod. To bypass this problem for now, change the following -lines in the tools/h5ls/testh5ls.sh. -======== Original ========= -# The following combination of arguments is expected to return an error message -# and return value 1 -TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 -======== Skip the test ========= -echo SKIP TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 -======== end of bypass ======== - -2.5. Hopper (Cray XE6) (for v1.8 and later) -------------------------- - -2.5.1 Building HDF5 for Hopper ------------------------------------------- The following steps are for building HDF5 for the Hopper compute nodes. They would probably work for other Cray systems but have not been verified. @@ -226,43 +146,6 @@ The build will be in build-hdf5/hdf5/ (or whatever you specify in --prefix). To compile other HDF5 applications use the wrappers created by the build (build-hdf5/hdf5/bin/h5pcc or h5fc) -2.5.2 Hopper known issues ------------------------------- -Issue 1: -Sometimes when building the library with make, you might get this problem: - -LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | \ -sed -e 's/-L/:/g' -e 's/ -//g'`" \ -./H5make_libsettings > H5lib_settings.c -|| \ -(test $HDF5_Make_Ignore && echo "*** Error ignored") -|| \ -(rm -f H5lib_settings.c ; exit 1) -/bin/sh: line 4: 9644 Segmentation fault -LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | sed -e 's/-L/:/g' -e 's/ -//g'`" ./H5make_libsettings > H5lib_settings.c - -If that happens, you are probable running with make -j . In that -case, you need to cleanup everything and start again as detailed above -but use serial make (do not use -j ). - -Issue 2: -* When building using the Cray compilers on Cray machines, HDF5 - configure mistakenly thinks the compiler is an intel compiler and - sets the -std=c99 flag which breaks configure on Cray. To build HDF5 - properly on a Cray machine, please consult with the instructions in - INSTALL_parallel for building on Hopper. - (MSC - 2013/04/26 - HDFFV-8429) - -Issue 3: -* On hopper, the build failed when RUNSERIAL and RUNPARALLEL are set - to aprun -np X, because the H5lib_settings.c file was not generated - properly. Not setting those environment variables works, because - configure was able to automatically detect that it's a Cray system - and used the proper launch commands when necessary. - (MSC - 2012/04/18) - 3. Detail explanation --------------------- diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 15d3206..d840b65 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.216-swmr0 currently under development +HDF5 version 1.9.217-swmr0 currently under development ================================================================================ diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt index 6bc7ff0..0956ff1 100644 --- a/release_docs/USING_CMake_Examples.txt +++ b/release_docs/USING_CMake_Examples.txt @@ -22,7 +22,7 @@ I. Preconditions 1. We suggest you obtain the latest CMake for windows from the Kitware web site. The HDF5 1.8.x product requires a minimum CMake version - of 2.8.12. + of 3.1.0. 2. You have installed the HDF5 library built with CMake, by executing the HDF Install Utility (the *.exe file in the binary package for @@ -47,7 +47,7 @@ Files in the HDF5 install directory: Default installation process: Create a directory to run the examples, i.e. \test_hdf5. - Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, do NOT unzip. + Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, uncompress. Copy HDF518_Examples.cmake to this directory. Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR to the HDF5 install location. @@ -55,7 +55,7 @@ Default installation process: Execute from this directory: ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log -The script will uncompress the examples file HDF5Examples-0.1.1-Source.zip(.tar.gz), +The script will use the examples folder HDF5Examples-0.1.1-Source, and create a build directory inside the HDF5Examples-0.1.1-Source directory. It will then configure, build, and execute the examples. All the log files will be found under the build\Testing\Temporary directory, check these for @@ -75,9 +75,9 @@ Line 14: uncomment to allow Mac machines to build shared examples. Line 15: uncomment to build and test Fortran examples. -Line 16: uncomment to build and test Fortran examples with F2003 option. +Line 16: comment to NOT build and test Fortran examples with F2003 option. -Line 17: comment to use an existing source directory. +Line 17: uncomment to use a compressed source file. Line 71: change the CTEST_7Z_COMMAND to a different unzip program. diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt index ae62ac9..347876c 100644 --- a/release_docs/USING_HDF5_CMake.txt +++ b/release_docs/USING_HDF5_CMake.txt @@ -37,7 +37,7 @@ I. Preconditions 1. We suggest you obtain the latest CMake for windows from the Kitware web site. The HDF5 1.8.x product requires a minimum CMake version - of 2.8.12. + of 3.1.0. 2. You have installed the HDF5 library built with CMake, by executing the HDF Install Utility (the *.exe file in the binary package for diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d6368cd..de8cc9e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -784,14 +784,14 @@ set (H5_PRIVATE_HEADERS # specific type checks inside #----------------------------------------------------------------------------- #add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) -#TARGET_C_PROPERTIES (H5detect " " " ") +#TARGET_C_PROPERTIES (H5detect STATIC " " " ") IF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET (LOCAL_OPT_FLAG "-O0") ELSE (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) SET (LOCAL_OPT_FLAG " ") ENDIF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c) -TARGET_C_PROPERTIES (H5detect ${LOCAL_OPT_FLAG} " ") +TARGET_C_PROPERTIES (H5detect STATIC ${LOCAL_OPT_FLAG} " ") if (MSVC OR MINGW) target_link_libraries (H5detect "ws2_32.lib") @@ -806,7 +806,7 @@ add_custom_command ( ) add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) -TARGET_C_PROPERTIES (H5make_libsettings " " " ") +TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5make_libsettings "ws2_32.lib") endif (MSVC OR MINGW) @@ -873,7 +873,7 @@ set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h) set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED) add_library (${HDF5_LIB_TARGET} ${LIB_TYPE} ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS}) if (NOT WIN32) target_link_libraries (${HDF5_LIB_TARGET} dl) diff --git a/src/H5A.c b/src/H5A.c index 7dae36b..d474234 100644 --- a/src/H5A.c +++ b/src/H5A.c @@ -638,7 +638,7 @@ H5Aread(hid_t attr_id, hid_t dtype_id, void *buf) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer") /* Go write the actual data to the attribute */ - if((ret_value = H5A_read(attr, mem_type, buf, H5AC_dxpl_id)) < 0) + if((ret_value = H5A_read(attr, mem_type, buf, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_READERROR, FAIL, "unable to read attribute") done: @@ -1160,7 +1160,7 @@ H5Arename_by_name(hid_t loc_id, const char *obj_name, const char *old_attr_name, HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") /* Call private attribute rename routine */ - if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id) < 0) + if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute") } /* end if */ @@ -1537,7 +1537,7 @@ H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; @@ -1668,7 +1668,7 @@ H5Aexists_by_name(hid_t loc_id, const char *obj_name, const char *attr_name, if(TRUE != H5P_isa_class(lapl_id, H5P_LINK_ACCESS)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID") - if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id)) < 0) + if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists") done: diff --git a/src/H5AC.c b/src/H5AC.c index 9dfe581..39385ec 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -106,11 +106,6 @@ H5FL_DEFINE_STATIC(H5AC_slist_entry_t); /* (Global variable definition, declaration is in H5ACprivate.h also) */ hid_t H5AC_dxpl_id=(-1); -/* Private dataset transfer property list for metadata I/O calls */ -/* (Collective set and "library internal" set) */ -/* (Static variable definition) */ -static hid_t H5AC_noblock_dxpl_id=(-1); - /* Dataset transfer property list for independent metadata I/O calls */ /* (just "library internal" set - i.e. independent transfer mode) */ /* (Global variable definition, declaration is in H5ACprivate.h also) */ @@ -261,9 +256,7 @@ H5AC_init_interface(void) { #ifdef H5_HAVE_PARALLEL H5P_genplist_t *xfer_plist; /* Dataset transfer property list object */ - unsigned block_before_meta_write; /* "block before meta write" property value */ unsigned coll_meta_write; /* "collective metadata write" property value */ - unsigned library_internal = 1; /* "library internal" property value */ #endif /* H5_HAVE_PARALLEL */ herr_t ret_value = SUCCEED; /* Return value */ @@ -273,7 +266,7 @@ H5AC_init_interface(void) /* Sanity check */ HDassert(H5P_CLS_DATASET_XFER_g != NULL); - /* Get an ID for the blocking, collective H5AC dxpl */ + /* Get an ID for the collective H5AC dxpl */ if((H5AC_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") @@ -281,51 +274,13 @@ H5AC_init_interface(void) if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_dxpl_id))) HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - /* Insert 'block before metadata write' property */ - block_before_meta_write=1; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - /* Insert 'collective metadata write' property */ coll_meta_write = 1; if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Get an ID for the non-blocking, collective H5AC dxpl */ - if((H5AC_noblock_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) - HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") - - /* Get the property list object */ - if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_noblock_dxpl_id))) - HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - - /* Insert 'block before metadata write' property */ - block_before_meta_write=0; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'collective metadata write' property */ - coll_meta_write = 1; - if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - - /* Get an ID for the non-blocking, independent H5AC dxpl */ + /* Get an ID for the independent H5AC dxpl */ if((H5AC_ind_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") @@ -333,29 +288,16 @@ H5AC_init_interface(void) if(NULL == (H5AC_ind_dxpl_g = (H5P_genplist_t *)H5I_object(H5AC_ind_dxpl_id))) HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - /* Insert 'block before metadata write' property */ - block_before_meta_write=0; - if(H5P_insert(H5AC_ind_dxpl_g, H5AC_BLOCK_BEFORE_META_WRITE_NAME, H5AC_BLOCK_BEFORE_META_WRITE_SIZE, &block_before_meta_write, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(H5AC_ind_dxpl_g, H5AC_LIBRARY_INTERNAL_NAME, H5AC_LIBRARY_INTERNAL_SIZE, &library_internal, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - /* Insert 'collective metadata write' property */ coll_meta_write = 0; if(H5P_insert(H5AC_ind_dxpl_g, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - #else /* H5_HAVE_PARALLEL */ /* Sanity check */ HDassert(H5P_LST_DATASET_XFER_ID_g!=(-1)); H5AC_dxpl_id = H5P_DATASET_XFER_DEFAULT; - H5AC_noblock_dxpl_id = H5P_DATASET_XFER_DEFAULT; H5AC_ind_dxpl_id = H5P_DATASET_XFER_DEFAULT; /* Get the property list objects for the IDs */ @@ -392,19 +334,17 @@ H5AC_term_interface(void) if (H5_interface_initialize_g) { #ifdef H5_HAVE_PARALLEL - if(H5AC_dxpl_id > 0 || H5AC_noblock_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) { + if(H5AC_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) { /* Indicate more work to do */ n = 1; /* H5I */ /* Close H5AC dxpl */ if(H5I_dec_ref(H5AC_dxpl_id) < 0 || - H5I_dec_ref(H5AC_noblock_dxpl_id) < 0 || H5I_dec_ref(H5AC_ind_dxpl_id) < 0) H5E_clear_stack(NULL); /*ignore error*/ else { /* Reset static IDs */ H5AC_dxpl_id = (-1); - H5AC_noblock_dxpl_id = (-1); H5AC_ind_dxpl_id = (-1); /* Reset interface initialization flag */ @@ -415,7 +355,6 @@ H5AC_term_interface(void) #else /* H5_HAVE_PARALLEL */ /* Reset static IDs */ H5AC_dxpl_id=(-1); - H5AC_noblock_dxpl_id=(-1); H5AC_ind_dxpl_id=(-1); #endif /* H5_HAVE_PARALLEL */ /* Reset interface initialization flag */ @@ -695,7 +634,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id) #endif /* H5_HAVE_PARALLEL */ /* Destroy the cache */ - if(H5C_dest(f, dxpl_id, H5AC_noblock_dxpl_id) < 0) + if(H5C_dest(f, dxpl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFREE, FAIL, "can't destroy cache") f->shared->cache = NULL; @@ -708,8 +647,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id) if(aux_ptr->candidate_slist_ptr != NULL) H5SL_close(aux_ptr->candidate_slist_ptr); aux_ptr->magic = 0; - H5FL_FREE(H5AC_aux_t, aux_ptr); - aux_ptr = NULL; + aux_ptr = H5FL_FREE(H5AC_aux_t, aux_ptr); } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -777,7 +715,7 @@ H5AC_expunge_entry(H5F_t *f, result = H5C_expunge_entry(f, dxpl_id, - H5AC_noblock_dxpl_id, + H5AC_dxpl_id, type, addr, flags); @@ -856,7 +794,7 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id) #endif /* H5_HAVE_PARALLEL */ /* Flush the cache */ - if(H5C_flush_cache(f, dxpl_id, H5AC_noblock_dxpl_id, H5AC__NO_FLAGS_SET) < 0) + if(H5C_flush_cache(f, dxpl_id, H5AC_dxpl_id, H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush cache.") done: @@ -1003,7 +941,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add #endif /* H5AC_DO_TAGGING_SANITY_CHECKS */ /* Insert entry into metadata cache */ - if(H5C_insert_entry(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0) + if(H5C_insert_entry(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTINS, FAIL, "H5C_insert_entry() failed") #if H5AC__TRACE_FILE_ENABLED @@ -1024,7 +962,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add /* Check if we should try to flush */ if(aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold) - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ } @@ -1177,7 +1115,7 @@ H5AC_move_entry(H5F_t *f, const H5AC_class_t *type, haddr_t old_addr, haddr_t ne #ifdef H5_HAVE_PARALLEL /* Check if we should try to flush */ if(NULL != aux_ptr && aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -1402,7 +1340,7 @@ H5AC_protect(H5F_t *f, thing = H5C_protect(f, dxpl_id, - H5AC_noblock_dxpl_id, + H5AC_dxpl_id, type, addr, udata, @@ -1720,13 +1658,13 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, } /* end if */ #endif /* H5_HAVE_PARALLEL */ - if(H5C_unprotect(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0) + if(H5C_unprotect(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "H5C_unprotect() failed.") #ifdef H5_HAVE_PARALLEL /* Check if we should try to flush */ if((aux_ptr != NULL) && (aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold)) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -2949,7 +2887,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) */ if ( aux_ptr->sync_point_done != NULL ) { - addr_buf_ptr = H5MM_malloc((size_t)num_entries * sizeof(haddr_t)); + addr_buf_ptr = (haddr_t *)H5MM_malloc((size_t)num_entries * sizeof(haddr_t)); if ( addr_buf_ptr == NULL ) { @@ -2995,8 +2933,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3005,7 +2942,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) /* and also remove the matching entry from the dirtied list * if it exists. */ - if((slist_entry_ptr = H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) { + if((slist_entry_ptr = (H5AC_slist_entry_t *)H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) { HDassert( slist_entry_ptr->magic == H5AC__H5AC_SLIST_ENTRY_T_MAGIC ); HDassert( slist_entry_ptr->addr == addr ); @@ -3013,8 +2950,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3306,8 +3242,7 @@ H5AC_copy_candidate_list_to_buffer(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from candidate entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->candidate_slist_len -= 1; @@ -3474,8 +3409,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3491,8 +3425,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from cleaned entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3601,8 +3534,7 @@ H5AC_log_dirtied_entry(const H5AC_info_t * entry_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3696,8 +3628,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3718,8 +3649,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3949,8 +3879,7 @@ H5AC_log_moved_entry(const H5F_t *f, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -4331,7 +4260,7 @@ H5AC_propagate_flushed_and_still_clean_entries_list(H5F_t * f, HDassert( aux_ptr->c_slist_len == 0 ); } /* end if */ else { - if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_noblock_dxpl_id, cache_ptr) < 0) + if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_dxpl_id, cache_ptr) < 0) HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "Can't receive and/or process clean slist broadcast.") } /* end else */ @@ -4905,7 +4834,7 @@ H5AC_rsp__p0_only__flush(H5F_t *f, } /* end if */ /* Propagate cleaned entries to other ranks. */ - if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_noblock_dxpl_id, cache_ptr) < 0) + if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_dxpl_id, cache_ptr) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't propagate clean entries list.") done: @@ -5012,7 +4941,7 @@ H5AC_rsp__p0_only__flush_to_min_clean(H5F_t *f, */ aux_ptr->write_permitted = TRUE; - result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_noblock_dxpl_id); + result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_dxpl_id); aux_ptr->write_permitted = FALSE; @@ -5256,7 +5185,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") d_slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr); + d_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -5272,7 +5201,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.") c_slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr); + c_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -5315,7 +5244,7 @@ H5AC_flush_entries(H5F_t *f) /* Check if we have >1 ranks */ if(f->shared->cache->aux_ptr) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index 327f1ec..715fad3 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -204,20 +204,10 @@ typedef H5C_t H5AC_t; /* Metadata specific properties for FAPL */ /* (Only used for parallel I/O) */ #ifdef H5_HAVE_PARALLEL -/* Definitions for "block before metadata write" property */ -#define H5AC_BLOCK_BEFORE_META_WRITE_NAME "H5AC_block_before_meta_write" -#define H5AC_BLOCK_BEFORE_META_WRITE_SIZE sizeof(unsigned) -#define H5AC_BLOCK_BEFORE_META_WRITE_DEF 0 - /* Definitions for "collective metadata write" property */ #define H5AC_COLLECTIVE_META_WRITE_NAME "H5AC_collective_metadata_write" #define H5AC_COLLECTIVE_META_WRITE_SIZE sizeof(unsigned) #define H5AC_COLLECTIVE_META_WRITE_DEF 0 - -/* Definitions for "library internal" property */ -#define H5AC_LIBRARY_INTERNAL_NAME "H5AC_library_internal" -#define H5AC_LIBRARY_INTERNAL_SIZE sizeof(unsigned) -#define H5AC_LIBRARY_INTERNAL_DEF 0 #endif /* H5_HAVE_PARALLEL */ /* Dataset transfer property list for flush calls */ diff --git a/src/H5Aint.c b/src/H5Aint.c index 3d33eec..f6f13d0 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -1187,7 +1187,7 @@ H5A_type(const H5A_t *attr) */ htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, - hid_t lapl_id) + hid_t lapl_id, hid_t dxpl_id) { H5G_loc_t obj_loc; /* Location used to open group */ H5G_name_t obj_path; /* Opened object group hier. path */ @@ -1203,12 +1203,12 @@ H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) + if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; /* Check if the attribute exists */ - if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, H5AC_ind_dxpl_id)) < 0) + if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists") done: @@ -2387,7 +2387,7 @@ done: */ herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name, - const char *new_attr_name, hid_t lapl_id) + const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id) { H5G_loc_t obj_loc; /* Location used to open group */ H5G_name_t obj_path; /* Opened object group hier. path */ @@ -2410,7 +2410,7 @@ H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_nam loc_found = TRUE; /* Call attribute rename routine */ - if(H5O_attr_rename(obj_loc.oloc, H5AC_dxpl_id, old_attr_name, new_attr_name) < 0) + if(H5O_attr_rename(obj_loc.oloc, dxpl_id, old_attr_name, new_attr_name) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute") } /* end if */ diff --git a/src/H5Apkg.h b/src/H5Apkg.h index a28f564..1137e63 100644 --- a/src/H5Apkg.h +++ b/src/H5Apkg.h @@ -206,9 +206,9 @@ H5_DLL herr_t H5A_close(H5A_t *attr); H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo); H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr); H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name, - const char *new_attr_name, hid_t lapl_id); + const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id); H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, - hid_t lapl_id); + hid_t lapl_id, hid_t dxpl_id); /* Attribute "dense" storage routines */ H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo, diff --git a/src/H5D.c b/src/H5D.c index 7445b70..78dab75 100644 --- a/src/H5D.c +++ b/src/H5D.c @@ -329,7 +329,7 @@ H5Dopen2(hid_t loc_id, const char *name, hid_t dapl_id) H5O_loc_t oloc; /* Dataset object location */ H5O_type_t obj_type; /* Type of object at location */ hbool_t loc_found = FALSE; /* Location at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */ hid_t ret_value; FUNC_ENTER_API(FAIL) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 66cb87c..bdd9c9c 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -17,7 +17,7 @@ * Thursday, April 24, 2008 * * Purpose: Abstract indexed (chunked) I/O functions. The logical - * multi-dimensional data space is regularly partitioned into + * multi-dimensional dataspace is regularly partitioned into * same-sized "chunks", the first of which is aligned with the * logical origin. The chunks are indexed by different methods, * that map a chunk index to disk address. Each chunk can be @@ -204,7 +204,6 @@ static herr_t H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *ty H5D_chunk_map_t *fm); static herr_t H5D__chunk_flush(H5D_t *dset, hid_t dxpl_id); static herr_t H5D__chunk_io_term(const H5D_chunk_map_t *fm); -static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); /* "Nonexistent" layout operation callback */ static ssize_t @@ -219,6 +218,7 @@ static void *H5D__chunk_alloc(size_t size, const H5O_pline_t *pline); static void *H5D__chunk_xfree(void *chk, const H5O_pline_t *pline); static void *H5D__chunk_realloc(void *chk, size_t size, const H5O_pline_t *pline); +static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); static herr_t H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *udata); static hbool_t H5D__chunk_cinfo_cache_found(const H5D_chunk_cached_t *last, @@ -333,7 +333,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) - /* Allocate data space and initialize it if it hasn't been. */ + /* Allocate dataspace and initialize it if it hasn't been. */ if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) /* Allocate storage */ if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) @@ -342,7 +342,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz /* Calculate the index of this chunk */ H5VM_chunk_scaled(dset->shared->ndims, offset, layout->u.chunk.dim, scaled); - /* Find out the file address of the chunk */ + /* Find out the file address of the chunk (if any) */ if(H5D__chunk_lookup(dset, dxpl_id, offset, scaled, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") @@ -378,7 +378,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") - /* Evict the entry from the cache if present, but do not flush + /* Evict the (old) entry from the cache if present, but do not flush * it to disk */ if(UINT_MAX != udata.idx_hint) if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[udata.idx_hint], FALSE) < 0) @@ -601,21 +601,21 @@ H5D__chunk_init(H5F_t *f, hid_t dxpl_id, const H5D_t *dset, hid_t dapl_id) H5D_COPS_NONE == dset->shared->layout.storage.u.chunk.ops)); if(NULL == (dapl = (H5P_genplist_t *)H5I_object(dapl_id))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for fapl ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for fapl ID") /* Use the properties in dapl_id if they have been set, otherwise use the properties from the file */ if(H5P_get(dapl, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, &rdcc->nslots) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots") if(rdcc->nslots == H5D_CHUNK_CACHE_NSLOTS_DEFAULT) rdcc->nslots = H5F_RDCC_NSLOTS(f); if(H5P_get(dapl, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, &rdcc->nbytes_max) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size") if(rdcc->nbytes_max == H5D_CHUNK_CACHE_NBYTES_DEFAULT) rdcc->nbytes_max = H5F_RDCC_NBYTES(f); if(H5P_get(dapl, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, &rdcc->w0) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks") if(rdcc->w0 < 0) rdcc->w0 = H5F_RDCC_W0(f); @@ -2292,10 +2292,10 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud /* Stored the information to cache */ HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims); + last->addr = udata->addr; last->nbytes = udata->nbytes; last->chunk_idx = udata->chunk_idx; last->filter_mask = udata->filter_mask; - last->addr = udata->addr; /* Indicate that the cached info is valid */ last->valid = TRUE; @@ -2340,10 +2340,10 @@ H5D__chunk_cinfo_cache_found(const H5D_chunk_cached_t *last, H5D_chunk_ud_t *uda HGOTO_DONE(FALSE) /* Retrieve the information from the cache */ + udata->addr = last->addr; udata->nbytes = last->nbytes; udata->chunk_idx = last->chunk_idx; udata->filter_mask = last->filter_mask; - udata->addr = last->addr; /* Indicate that the data was found */ HGOTO_DONE(TRUE) @@ -2511,9 +2511,9 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, udata->common.scaled = scaled; /* Reset information about the chunk we are looking for */ + udata->addr = HADDR_UNDEF; udata->nbytes = 0; udata->filter_mask = 0; - udata->addr = HADDR_UNDEF; udata->new_unfilt_chunk = FALSE; udata->need_insert = FALSE; udata->need_modify = FALSE; @@ -2524,8 +2524,7 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, ent = dset->shared->cache.chunk.slot[udata->idx_hint]; if(ent) - for(u = 0, found = TRUE; u < dset->shared->layout.u.chunk.ndims - 1; - u++) + for(u = 0, found = TRUE; u < dset->shared->layout.u.chunk.ndims - 1; u++) if(chunk_offset[u] != ent->offset[u]) { found = FALSE; break; @@ -2755,12 +2754,11 @@ done: * output pipeline failed. Do not free the entry or remove it from the * list. */ - if(ret_value < 0 && point_of_no_return) { + if(ret_value < 0 && point_of_no_return) if(ent->chunk) ent->chunk = (uint8_t *)H5D__chunk_xfree(ent->chunk, ((ent->edge_chunk_state & H5D_RDCC_DISABLE_FILTERS) ? NULL : &(dset->shared->dcpl_cache.pline))); - } /* end if */ FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) } /* end H5D__chunk_flush_entry() */ @@ -3650,7 +3648,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Check if any space dimensions are 0, if so we do not have to do anything */ - for(op_dim=0; op_dimshared->cache.chunk.last); @@ -3865,8 +3863,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, * possible (though ill-advised) for the filter to shrink the * buffer. */ if(fb_info.fill_buf_size < orig_chunk_size) { - if(NULL == (fb_info.fill_buf = H5D__chunk_realloc( - fb_info.fill_buf, orig_chunk_size, pline))) + if(NULL == (fb_info.fill_buf = H5D__chunk_realloc(fb_info.fill_buf, orig_chunk_size, pline))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory reallocation failed for raw data chunk") fb_info.fill_buf_size = orig_chunk_size; } /* end if */ @@ -3903,13 +3900,13 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, udata.common.storage = &layout->storage.u.chunk; udata.common.offset = chunk_offset; udata.common.rdcc = &dset->shared->cache.chunk; + udata.addr = HADDR_UNDEF; H5_ASSIGN_OVERFLOW(udata.nbytes, chunk_size, size_t, uint32_t); udata.filter_mask = filter_mask; - udata.addr = HADDR_UNDEF; udata.need_insert = FALSE; udata.need_modify = FALSE; - /* Allocate the chunk with all processes */ + /* Allocate the chunk (with all processes) */ if(H5D__idx_chunk_alloc(&idx_info, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk on chunk level") @@ -3927,11 +3924,9 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* collect all chunk addresses to be written to write collectively at the end */ /* allocate/resize address array if no more space left */ - if(0 == chunk_info.num_io % 1024) { - if(NULL == (chunk_info.addr = (haddr_t *)HDrealloc - (chunk_info.addr, (chunk_info.num_io + 1024) * sizeof(haddr_t)))) - HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed for chunk addresses"); - } /* end if */ + if(0 == chunk_info.num_io % 1024) + if(NULL == (chunk_info.addr = (haddr_t *)HDrealloc(chunk_info.addr, (chunk_info.num_io + 1024) * sizeof(haddr_t)))) + HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed for chunk addresses") /* Store the chunk's address for later */ chunk_info.addr[chunk_info.num_io] = udata.addr; @@ -4012,10 +4007,9 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, #ifdef H5_HAVE_PARALLEL /* do final collective I/O */ - if(using_mpi && blocks_written) { + if(using_mpi && blocks_written) if(H5D__chunk_collective_fill(dset, dxpl_id, &chunk_info, chunk_size, fb_info.fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") - } /* end if */ #endif /* H5_HAVE_PARALLEL */ /* Reset any cached chunk info for this dataset */ @@ -4030,10 +4024,8 @@ done: unfilt_fill_buf = H5D__chunk_xfree(unfilt_fill_buf, &def_pline); #ifdef H5_HAVE_PARALLEL - if(using_mpi) { - if(chunk_info.addr) - HDfree(chunk_info.addr); - } /* end if */ + if(using_mpi && chunk_info.addr) + HDfree(chunk_info.addr); #endif FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) @@ -4330,8 +4322,7 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, * should use this if MPI_type_create_hindexed block is working * mpi_code = MPI_Type_create_hindexed_block(blocks, block_len, chunk_disp_array, MPI_BYTE, &file_type); */ - mpi_code = MPI_Type_create_hindexed(blocks, block_lens, chunk_disp_array, - MPI_BYTE, &file_type); + mpi_code = MPI_Type_create_hindexed(blocks, block_lens, chunk_disp_array, MPI_BYTE, &file_type); if(mpi_code != MPI_SUCCESS) HMPI_GOTO_ERROR(FAIL, "MPI_Type_create_hindexed failed", mpi_code) if(MPI_SUCCESS != (mpi_code = MPI_Type_commit(&file_type))) @@ -4364,9 +4355,8 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set transfer mode") } - /* low level write */ - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, (haddr_t)0, (blocks) ? (size_t)1 : (size_t)0, - data_dxpl_id, fill_buf) < 0) + /* low level write (collective) */ + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, (haddr_t)0, (blocks) ? (size_t)1 : (size_t)0, data_dxpl_id, fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") /* Barrier so processes don't race ahead */ @@ -4433,8 +4423,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata, hbool_t new_unfilt_chunk) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") chk_udata.new_unfilt_chunk = new_unfilt_chunk; - /* If this chunk does not exist in cache or on disk, no need to do anything - */ + /* If this chunk does not exist in cache or on disk, no need to do anything */ if(!H5F_addr_defined(chk_udata.addr) && UINT_MAX == chk_udata.idx_hint) HGOTO_DONE(SUCCEED) @@ -4451,8 +4440,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata, hbool_t new_unfilt_chunk) /* Compute the # of elements to leave with existing value, in each dimension */ for(u = 0; u < rank; u++) { - count[u] = MIN(layout->u.chunk.dim[u], (udata->space_dim[u] - - chunk_offset[u])); + count[u] = MIN(layout->u.chunk.dim[u], (udata->space_dim[u] - chunk_offset[u])); HDassert(count[u] > 0); } /* end for */ @@ -4679,7 +4667,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) chunk_offset[space_ndims] = (hsize_t)0; /* Check if any old dimensions are 0, if so we do not have to do anything */ - for(op_dim=0; op_dimshared->cache.chunk.last); @@ -4748,7 +4736,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) */ HDmemset(min_mod_chunk_off, 0, sizeof(min_mod_chunk_off)); HDmemset(max_mod_chunk_off, 0, sizeof(max_mod_chunk_off)); - for(op_dim = 0; op_dim < space_ndims; op_dim++) { + for(op_dim = 0; op_dim < (unsigned)space_ndims; op_dim++) { /* Calculate the largest offset of chunks that might need to be * modified in this dimension */ max_mod_chunk_off[op_dim] = chunk_dim[op_dim] * ((old_dim[op_dim] - 1) @@ -4816,7 +4804,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) } /* end if */ /* Main loop: fill or remove chunks */ - for(op_dim=0; op_dimidx_info_dst->storage; udata_dst.common.offset = chunk_rec->offset; udata_dst.common.rdcc = NULL; + udata_dst.addr = HADDR_UNDEF; udata_dst.nbytes = chunk_rec->nbytes; udata_dst.filter_mask = chunk_rec->filter_mask; - udata_dst.addr = HADDR_UNDEF; /* Need to compress variable-length & reference data elements before writing to file */ if(must_filter) { diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index 11d6f60..e913a3f 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -670,7 +670,7 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, } /* end if */ else { /* Allocate room for the data sieve buffer */ - if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size))) + if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size))) HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed") /* Determine the new sieve buffer size & location */ @@ -941,7 +941,7 @@ H5D__contig_writevv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, } /* end if */ else { /* Allocate room for the data sieve buffer */ - if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size))) + if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size))) HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed") #ifdef H5_CLEAR_MEMORY diff --git a/src/H5Ddbg.c b/src/H5Ddbg.c index a7c6dc1..4e934f2 100644 --- a/src/H5Ddbg.c +++ b/src/H5Ddbg.c @@ -113,7 +113,7 @@ H5Ddebug(hid_t dset_id) /* Print B-tree information */ if(H5D_CHUNKED == dset->shared->layout.type) - (void)H5D__chunk_dump_index(dset, H5AC_dxpl_id, stdout); + (void)H5D__chunk_dump_index(dset, H5AC_ind_dxpl_id, stdout); else if(H5D_CONTIGUOUS == dset->shared->layout.type) HDfprintf(stdout, " %-10s %a\n", "Address:", dset->shared->layout.storage.u.contig.addr); diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c index eb3f285..3b3fb0f 100644 --- a/src/H5Ddeprec.c +++ b/src/H5Ddeprec.c @@ -233,7 +233,7 @@ H5Dopen1(hid_t loc_id, const char *name) H5O_type_t obj_type; /* Type of object at location */ hbool_t loc_found = FALSE; /* Location at 'name' found */ hid_t dapl_id = H5P_DATASET_ACCESS_DEFAULT; /* dapl to use to open dataset */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */ hid_t ret_value; FUNC_ENTER_API(FAIL) diff --git a/src/H5Dfill.c b/src/H5Dfill.c index e682dd6..484c362 100644 --- a/src/H5Dfill.c +++ b/src/H5Dfill.c @@ -133,7 +133,7 @@ H5Dfill(const void *fill, hid_t fill_type_id, void *buf, hid_t buf_type_id, hid_ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a datatype") /* Fill the selection in the memory buffer */ - if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_dxpl_id) < 0) + if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "filling selection failed") done: diff --git a/src/H5Dio.c b/src/H5Dio.c index 17351ed..44080dc 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -303,7 +303,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, hsize_t *direct_offset; uint32_t direct_datasize; hsize_t internal_offset[H5O_LAYOUT_NDIMS]; - unsigned u; + unsigned u; /* Local index variable */ /* Get the dataset transfer property list */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 108ee03..764030b 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -286,9 +286,9 @@ typedef struct H5D_chunk_ud_t { /* Upward */ unsigned idx_hint; /*index of chunk in cache, if present */ + haddr_t addr; /*file address of chunk */ uint32_t nbytes; /*size of stored data */ unsigned filter_mask; /*excluded filters */ - haddr_t addr; /*file address of chunk */ hbool_t new_unfilt_chunk; /*whether the chunk just became unfiltered */ hsize_t chunk_idx; /*chunk index for EA, FA indexing */ hbool_t need_insert; @@ -392,10 +392,10 @@ typedef struct H5D_chunk_map_t { typedef struct H5D_chunk_cached_t { hbool_t valid; /*whether cache info is valid*/ hsize_t offset[H5O_LAYOUT_NDIMS]; /*logical offset to start*/ + haddr_t addr; /*file address of chunk */ uint32_t nbytes; /*size of stored data */ hsize_t chunk_idx; /*index of chunk in dataset */ unsigned filter_mask; /*excluded filters */ - haddr_t addr; /*file address of chunk */ } H5D_chunk_cached_t; /* The raw data chunk cache */ diff --git a/src/H5E.c b/src/H5E.c index f36ab9a..c3c7685 100644 --- a/src/H5E.c +++ b/src/H5E.c @@ -1397,17 +1397,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") /* If the description doesn't fit into the initial buffer size, allocate more space and try again */ - while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) -#ifdef H5_VSNPRINTF_WORKS - > -#else /* H5_VSNPRINTF_WORKS */ - >= -#endif /* H5_VSNPRINTF_WORKS */ - (tmp_len - 1) -#ifndef H5_VSNPRINTF_WORKS - || (desc_len < 0) -#endif /* H5_VSNPRINTF_WORKS */ - ) { + while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) { /* shutdown & restart the va_list */ va_end(ap); va_start(ap, fmt); @@ -1416,11 +1406,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, H5MM_xfree(tmp); /* Allocate a description of the appropriate length */ -#ifdef H5_VSNPRINTF_WORKS tmp_len = desc_len + 1; -#else /* H5_VSNPRINTF_WORKS */ - tmp_len = 2 * tmp_len; -#endif /* H5_VSNPRINTF_WORKS */ if(NULL == (tmp = H5MM_malloc((size_t)tmp_len))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") } /* end while */ diff --git a/src/H5Eint.c b/src/H5Eint.c index 88dfdee..2092566 100644 --- a/src/H5Eint.c +++ b/src/H5Eint.c @@ -741,17 +741,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin HGOTO_DONE(FAIL) /* If the description doesn't fit into the initial buffer size, allocate more space and try again */ - while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) -#ifdef H5_VSNPRINTF_WORKS - > -#else /* H5_VSNPRINTF_WORKS */ - >= -#endif /* H5_VSNPRINTF_WORKS */ - (tmp_len - 1) -#ifndef H5_VSNPRINTF_WORKS - || (desc_len < 0) -#endif /* H5_VSNPRINTF_WORKS */ - ) { + while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) { /* shutdown & restart the va_list */ va_end(ap); va_start(ap, fmt); @@ -760,11 +750,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin H5MM_xfree(tmp); /* Allocate a description of the appropriate length */ -#ifdef H5_VSNPRINTF_WORKS tmp_len = desc_len + 1; -#else /* H5_VSNPRINTF_WORKS */ - tmp_len = 2 * tmp_len; -#endif /* H5_VSNPRINTF_WORKS */ if(NULL == (tmp = H5MM_malloc((size_t)tmp_len))) HGOTO_DONE(FAIL) } /* end while */ diff --git a/src/H5Eprivate.h b/src/H5Eprivate.h index 0e6def6..2065b08 100644 --- a/src/H5Eprivate.h +++ b/src/H5Eprivate.h @@ -186,7 +186,7 @@ H5_DLL herr_t H5E_init(void); H5_DLL herr_t H5E_push_stack(H5E_t *estack, const char *file, const char *func, unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *desc); H5_DLL herr_t H5E_printf_stack(H5E_t *estack, const char *file, const char *func, - unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...); + unsigned line, hid_t cls_id, hid_t maj_id, hid_t min_id, const char *fmt, ...)__attribute__((format (printf, 8, 9))); H5_DLL herr_t H5E_clear_stack(H5E_t *estack); H5_DLL herr_t H5E_dump_api_stack(hbool_t is_api); diff --git a/src/H5Epublic.h b/src/H5Epublic.h index 17a35d9..1639ab4 100644 --- a/src/H5Epublic.h +++ b/src/H5Epublic.h @@ -165,7 +165,7 @@ H5_DLL herr_t H5Eclose_stack(hid_t stack_id); H5_DLL ssize_t H5Eget_class_name(hid_t class_id, char *name, size_t size); H5_DLL herr_t H5Eset_current_stack(hid_t err_stack_id); H5_DLL herr_t H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line, - hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...); + hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...)__attribute__((format (printf, 8, 9))); H5_DLL herr_t H5Epop(hid_t err_stack, size_t count); H5_DLL herr_t H5Eprint2(hid_t err_stack, FILE *stream); H5_DLL herr_t H5Ewalk2(hid_t err_stack, H5E_direction_t direction, H5E_walk2_t func, diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index 70cf49a..d81509a 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -1049,8 +1049,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id, char debug_str[128]; int flag, i; if (MPI_INFO_NULL != info_dup) { - /*OKAY: CAST DISCARDS CONST*/ - MPI_Info_get(fa->info, (char *)H5F_MPIO_DEBUG_KEY, 127, debug_str, &flag); + MPI_Info_get(fa->info, H5F_MPIO_DEBUG_KEY, sizeof(debug_str)-1, debug_str, &flag); if (flag) { fprintf(stdout, "H5FD_mpio debug flags=%s\n", debug_str ); for (i=0; @@ -1063,8 +1062,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id, } #endif - /*OKAY: CAST DISCARDS CONST*/ - if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, (char*)name, mpi_amode, info_dup, &fh))) + if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, name, mpi_amode, info_dup, &fh))) HMPI_GOTO_ERROR(NULL, "MPI_File_open failed", mpi_code) file_opened=1; @@ -1460,12 +1458,13 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add MPI_Count bytes_read; /* Number of bytes read in */ MPI_Count type_size; /* MPI datatype used for I/O's size */ MPI_Count io_size; /* Actual number of bytes requested */ + MPI_Count n; #else int bytes_read; /* Number of bytes read in */ int type_size; /* MPI datatype used for I/O's size */ int io_size; /* Actual number of bytes requested */ -#endif int n; +#endif H5P_genplist_t *plist = NULL; /* Property list pointer */ hbool_t use_view_this_time = FALSE; herr_t ret_value = SUCCEED; @@ -1506,7 +1505,10 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add /* Obtain the data transfer properties */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") - xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME); + + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode") /* * Set up for a fancy xfer using complex types, or single byte block. We @@ -1521,15 +1523,14 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add use_view_this_time = TRUE; /* prepare for a full-blown xfer using btype, ftype, and disp */ - if(H5P_get(plist,H5FD_MPI_XFER_MEM_MPI_TYPE_NAME,&buf_type)<0) + if(H5P_get(plist, H5FD_MPI_XFER_MEM_MPI_TYPE_NAME, &buf_type)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property") - if(H5P_get(plist,H5FD_MPI_XFER_FILE_MPI_TYPE_NAME,&file_type)<0) + if(H5P_get(plist, H5FD_MPI_XFER_FILE_MPI_TYPE_NAME, &file_type)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property") /* * Set the file view when we are using MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if (MPI_SUCCESS != (mpi_code=MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) @@ -1548,9 +1549,12 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add if (H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_read: using MPIO collective mode\n"); #endif - /* Peek the collective_opt property to check whether the application wants to do IO individually. */ + /* Get the collective_opt property to check whether the application wants to do IO individually. */ HDassert(plist); - coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME); + + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property") if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) { #ifdef H5FDmpio_DEBUG @@ -1573,7 +1577,6 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add /* * Reset the file view when we used MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) } else { @@ -1799,8 +1802,9 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") - /* Obtain the data transfer properties */ - xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME); + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode") /* * Set up for a fancy xfer using complex types, or single byte block. We @@ -1823,7 +1827,6 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, /* * Set the file view when we are using MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) @@ -1853,17 +1856,18 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: using MPIO collective mode\n"); #endif - /* Peek the collective_opt property to check whether the application wants to do IO individually. */ + /* Get the collective_opt property to check whether the application wants to do IO individually. */ HDassert(plist); - coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME); + /* get the transfer mode from the dxpl */ + if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property") - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) { #ifdef H5FDmpio_DEBUG if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: doing MPI collective IO\n"); #endif - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at_all failed", mpi_code) } /* end if */ else { @@ -1871,17 +1875,15 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, if(H5FD_mpio_Debug[(int)'t']) fprintf(stdout, "H5FD_mpio_write: doing MPI independent IO\n"); #endif - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code) } /* end else */ /* Reset the file view when we used MPI derived types */ - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g, file->info))) HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code) } else { - /*OKAY: CAST DISCARDS CONST QUALIFIER*/ - if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat))) + if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat))) HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code) } diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 3f90a15..4009ca8 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -488,6 +488,8 @@ if it is changed, the code must compensate. -QAK */ +#define HDF5_BTREE_IK_MAX_ENTRIES 65536 /* 2^16 - 2 bytes for storing entries (children) */ + /* See format specification on version 1 B-trees */ /* Default file space handling strategy */ #define H5F_FILE_SPACE_STRATEGY_DEF H5F_FILE_SPACE_ALL diff --git a/src/H5G.c b/src/H5G.c index 217d80c..b6cbd83 100644 --- a/src/H5G.c +++ b/src/H5G.c @@ -463,7 +463,7 @@ H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group access property list") /* Open the group */ - if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_dxpl_id)) == NULL) + if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_ind_dxpl_id)) == NULL) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group") /* Register an ID for the group */ diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c index 17920ab..ca9e7fd 100644 --- a/src/H5Gdeprec.c +++ b/src/H5Gdeprec.c @@ -261,7 +261,7 @@ H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info") /* Set the non-default local heap size hint */ - ginfo.lheap_size_hint = size_hint; + H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t); if(H5P_set(gc_plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set group info") } /* end if */ @@ -322,7 +322,7 @@ H5Gopen1(hid_t loc_id, const char *name) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name") /* Open the group */ - if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_dxpl_id)) == NULL) + if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_ind_dxpl_id)) == NULL) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group") /* Register an atom for the group */ diff --git a/src/H5Gtest.c b/src/H5Gtest.c index 0bd32be..2628fd7 100644 --- a/src/H5Gtest.c +++ b/src/H5Gtest.c @@ -97,6 +97,7 @@ H5G__is_empty_test(hid_t gid) H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = FALSE; /* Indicate that a header message is present */ htri_t linfo_exists = FALSE;/* Indicate that the 'link info' message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -108,11 +109,11 @@ H5G__is_empty_test(hid_t gid) /* "New format" checks */ /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { /* Sanity check that new group format shouldn't have old messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -121,19 +122,19 @@ H5G__is_empty_test(hid_t gid) } /* end if */ /* Check for a link info message */ - if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0) + if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(linfo_exists > 0) { H5O_linfo_t linfo; /* Link info message */ /* Sanity check that new group format shouldn't have old messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found") /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -152,7 +153,7 @@ H5G__is_empty_test(hid_t gid) /* "Old format" checks */ /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { H5O_stab_t stab; /* Info about local heap & B-tree */ @@ -161,17 +162,17 @@ H5G__is_empty_test(hid_t gid) /* Sanity check that old group format shouldn't have new messages */ if(linfo_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found") - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and group info messages found") /* Get the B-tree & local heap info */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to read symbol table message") /* Get the count of links in the group */ - if(H5G__stab_count(&(grp->oloc), &nlinks, H5AC_dxpl_id) < 0) + if(H5G__stab_count(&(grp->oloc), &nlinks, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to count links") /* Check for link count */ @@ -208,6 +209,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -217,13 +219,13 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists == 0) HGOTO_DONE(FALSE) /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -233,7 +235,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) int msg_count; /* Number of messages of a type */ /* Check how many link messages there are */ - if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTCOUNT, FAIL, "unable to count link messages") *nmsgs = (unsigned)msg_count; } /* end if */ @@ -266,6 +268,7 @@ H5G__has_stab_test(hid_t gid) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -275,13 +278,13 @@ H5G__has_stab_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists == 0) HGOTO_DONE(FALSE) /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -316,6 +319,7 @@ H5G__is_new_dense_test(hid_t gid) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -325,25 +329,25 @@ H5G__is_new_dense_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_DONE(FALSE) /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_DONE(FALSE) /* Check if the group has link info message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { H5O_linfo_t linfo; /* Link info message */ /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -386,6 +390,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) H5B2_t *bt2_corder = NULL; /* v2 B-tree handle for creation order index */ H5O_linfo_t linfo; /* Link info message */ H5G_t *grp = NULL; /* Pointer to group */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -395,10 +400,10 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Set metadata tag in dxpl_id */ - H5_BEGIN_TAG(H5AC_dxpl_id, grp->oloc.addr, FAIL); + H5_BEGIN_TAG(dxpl_id, grp->oloc.addr, FAIL); /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR_TAG(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -408,7 +413,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) HGOTO_DONE_TAG(FAIL, FAIL) /* Open the name index v2 B-tree */ - if(NULL == (bt2_name = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.name_bt2_addr, NULL, NULL))) + if(NULL == (bt2_name = H5B2_open(grp->oloc.file, dxpl_id, linfo.name_bt2_addr, NULL, NULL))) HGOTO_ERROR_TAG(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index") /* Retrieve # of records in name index */ @@ -418,7 +423,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) /* Check if there is a creation order index */ if(H5F_addr_defined(linfo.corder_bt2_addr)) { /* Open the creation order index v2 B-tree */ - if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.corder_bt2_addr, NULL, NULL))) + if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, dxpl_id, linfo.corder_bt2_addr, NULL, NULL))) HGOTO_ERROR_TAG(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index") /* Retrieve # of records in creation order index */ @@ -433,9 +438,9 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) done: /* Release resources */ - if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0) + if(bt2_name && H5B2_close(bt2_name, dxpl_id) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index") - if(bt2_corder && H5B2_close(bt2_corder, H5AC_dxpl_id) < 0) + if(bt2_corder && H5B2_close(bt2_corder, dxpl_id) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index") FUNC_LEAVE_NOAPI(ret_value) @@ -465,7 +470,8 @@ herr_t H5G__lheap_size_test(hid_t gid, size_t *lheap_size) { H5G_t *grp = NULL; /* Pointer to group */ - H5O_stab_t stab; /* Symbol table message */ + H5O_stab_t stab; /* Symbol table message */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -475,11 +481,11 @@ H5G__lheap_size_test(hid_t gid, size_t *lheap_size) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Make certain the group has a symbol table message */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read symbol table message") /* Check the size of the local heap for the group */ - if(H5HL_get_size(grp->oloc.file, H5AC_dxpl_id, stab.heap_addr, lheap_size) < 0) + if(H5HL_get_size(grp->oloc.file, dxpl_id, stab.heap_addr, lheap_size) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGETSIZE, FAIL, "can't query local heap size") done: @@ -607,16 +613,17 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent) { H5O_stab_t stab; /* Symbol table */ H5HL_t *heap = NULL; /* Pointer to local heap */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_PACKAGE_TAG(H5AC_ind_dxpl_id, grp_oloc->addr, FAIL) + FUNC_ENTER_PACKAGE_TAG(dxpl_id, grp_oloc->addr, FAIL) /* Verify that stab info is cached in ent */ if(ent->type != H5G_CACHED_STAB) HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, FAIL, "symbol table information is not cached") /* Read the symbol table message from the group */ - if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, H5AC_ind_dxpl_id)) + if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "unable to read symbol table message") /* Verify that the cached symbol table info matches the symbol table message @@ -630,7 +637,7 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "b-tree address is invalid") /* Verify that the heap address is valid */ - if(NULL == (heap = H5HL_protect(grp_oloc->file, H5AC_ind_dxpl_id, stab.heap_addr, H5AC_READ))) + if(NULL == (heap = H5HL_protect(grp_oloc->file, dxpl_id, stab.heap_addr, H5AC_READ))) HGOTO_ERROR(H5E_HEAP, H5E_NOTFOUND, FAIL, "heap address is invalid") done: @@ -763,6 +770,7 @@ H5G__verify_cached_stabs_test(hid_t gid) H5O_stab_t stab; /* Symbol table message */ H5G_bt_common_t udata = {NULL, NULL}; /* Dummy udata so H5B_iterate doesn't freak out */ haddr_t prev_tag = HADDR_UNDEF; /* Previous metadata tag */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -775,13 +783,13 @@ H5G__verify_cached_stabs_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Set up metadata tagging */ - if(H5AC_tag(H5AC_ind_dxpl_id, grp->oloc.addr, &prev_tag) < 0) + if(H5AC_tag(dxpl_id, grp->oloc.addr, &prev_tag) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag") /* Check for group having a symbol table message */ /* Check for the group having a group info message */ if((stab_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, - H5AC_ind_dxpl_id)) < 0) + dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") /* No need to check anything if the symbol table doesn't exist */ @@ -789,17 +797,17 @@ H5G__verify_cached_stabs_test(hid_t gid) HGOTO_DONE(SUCCEED); /* Read the stab */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_ind_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get symbol table info") /* Iterate over the b-tree, checking validity of cached information */ - if((ret_value = H5B_iterate(grp->oloc.file, H5AC_ind_dxpl_id, H5B_SNODE, + if((ret_value = H5B_iterate(grp->oloc.file, dxpl_id, H5B_SNODE, stab.btree_addr, H5G_verify_cached_stabs_test_cb, &udata)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTNEXT, FAIL, "iteration operator failed"); /* Reset metadata tagging */ - if(H5AC_tag(H5AC_ind_dxpl_id, prev_tag, NULL) < 0) + if(H5AC_tag(dxpl_id, prev_tag, NULL) < 0) HDONE_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag") done: diff --git a/src/H5HGpkg.h b/src/H5HGpkg.h index ebba8e5..c1ce954 100644 --- a/src/H5HGpkg.h +++ b/src/H5HGpkg.h @@ -77,8 +77,7 @@ H5FL_BLK_EXTERN(gheap_chunk); * largest data type is eight bytes. */ #define H5HG_ALIGNMENT 8 -#define H5HG_ALIGN(X) (size_t)(H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/ \ - H5HG_ALIGNMENT)) +#define H5HG_ALIGN(X) (H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/H5HG_ALIGNMENT)) #define H5HG_ISALIGNED(X) ((X)==H5HG_ALIGN(X)) /* @@ -86,20 +85,20 @@ H5FL_BLK_EXTERN(gheap_chunk); * that the stuff that follows the header is aligned. */ #define H5HG_SIZEOF_HDR(f) \ - H5HG_ALIGN(4 + /*magic number */ \ - 1 + /*version number */ \ - 3 + /*reserved */ \ - H5F_SIZEOF_SIZE(f)) /*collection size */ + (size_t)H5HG_ALIGN(4 + /*magic number */ \ + 1 + /*version number */ \ + 3 + /*reserved */ \ + H5F_SIZEOF_SIZE(f)) /*collection size */ /* * The overhead associated with each object in the heap, always a multiple of * the alignment so that the stuff that follows the header is aligned. */ #define H5HG_SIZEOF_OBJHDR(f) \ - H5HG_ALIGN(2 + /*object id number */ \ - 2 + /*reference count */ \ - 4 + /*reserved */ \ - H5F_SIZEOF_SIZE(f)) /*object data size */ + (size_t)H5HG_ALIGN(2 + /*object id number */ \ + 2 + /*reference count */ \ + 4 + /*reserved */ \ + H5F_SIZEOF_SIZE(f)) /*object data size */ /* * The initial guess for the number of messages in a collection. We assume diff --git a/src/H5O.c b/src/H5O.c index 000c6cd..dcb1a6d 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -310,12 +310,12 @@ H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type, H5G_loc_reset(&obj_loc); /* Find the object's location, according to the order in the index */ - if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "group not found") loc_found = TRUE; /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: @@ -391,7 +391,7 @@ H5Oopen_by_addr(hid_t loc_id, haddr_t addr) H5G_name_reset(obj_loc.path); /* objects opened through this routine don't have a path name */ /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: @@ -574,7 +574,7 @@ H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID") /* Check if the object exists */ - if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_dxpl_id)) < 0) + if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to determine if '%s' exists", name) done: @@ -1356,6 +1356,7 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref) H5G_name_t obj_path; /* Opened object group hier. path */ H5O_loc_t obj_oloc; /* Opened object object location */ hbool_t loc_found = FALSE; /* Entry at 'name' found */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ hid_t ret_value = FAIL; FUNC_ENTER_NOAPI(FAIL) @@ -1370,12 +1371,12 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref) H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, app_ref)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, dxpl_id, app_ref)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c index 24eed35..555361a 100644 --- a/src/H5Ocopy.c +++ b/src/H5Ocopy.c @@ -86,7 +86,7 @@ static herr_t H5O_copy_header_real(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_ds static herr_t H5O_copy_header(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst /*out*/, hid_t dxpl_id, hid_t ocpypl_id); static herr_t H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc, - const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id); + const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id); static herr_t H5O_copy_obj_by_ref(H5O_loc_t *src_oloc, hid_t dxpl_id, H5O_loc_t *dst_oloc, H5G_loc_t *dst_root_loc, H5O_copy_t *cpy_info); static herr_t H5O_copy_free_comm_dt_cb(void *item, void *key, void *op_data); @@ -243,7 +243,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, H5G_loc_reset(&tmp_loc); /* Check if object already exists in destination */ - if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_dxpl_id) >= 0) { + if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_ind_dxpl_id) >= 0) { H5G_name_free(&tmp_path); HGOTO_ERROR(H5E_SYM, H5E_EXISTS, FAIL, "destination object already exists") } /* end if */ @@ -255,7 +255,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, H5G_loc_reset(&src_loc); /* Find the source object to copy */ - if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_dxpl_id) < 0) + if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "source object not found") loc_found = TRUE; @@ -281,7 +281,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not object copy property list") /* Do the actual copying of the object */ - if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id) < 0) + if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to copy object") done: @@ -1160,14 +1160,13 @@ done: */ static herr_t H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc, const char *dst_name, - hid_t ocpypl_id, hid_t lcpl_id) + hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id) { H5G_name_t new_path; /* Copied object group hier. path */ H5O_loc_t new_oloc; /* Copied object object location */ H5G_loc_t new_loc; /* Group location of object copied */ H5F_t *cached_dst_file; /* Cached destination file */ hbool_t entry_inserted = FALSE; /* Flag to indicate that the new entry was inserted into a group */ - hid_t dxpl_id = H5AC_dxpl_id; /* DXPL for operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -1665,7 +1664,8 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc, attr_op.u.lib_op = H5O_copy_search_comm_dt_attr_cb; udata->obj_oloc.file = obj_oloc->file; udata->obj_oloc.addr = obj_oloc->addr; - if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, H5_ITER_NATIVE, 0, NULL, &attr_op, udata) < 0) + if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, + H5_ITER_NATIVE, (hsize_t)0, NULL, &attr_op, udata) < 0) HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "error iterating over attributes"); done: diff --git a/src/H5Olayout.c b/src/H5Olayout.c index fb0a4b8..7ef0c4b 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -965,6 +965,7 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, "Index Type:", "v2 B-tree"); break; + case H5D_CHUNK_IDX_NTYPES: default: HDfprintf(stream, "%*s%-*s %s (%u)\n", indent, "", fwidth, "Index Type:", "Unknown", (unsigned)mesg->u.chunk.idx_type); diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c index aca589c..5fc93fd 100644 --- a/src/H5Pfcpl.c +++ b/src/H5Pfcpl.c @@ -517,6 +517,9 @@ H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk) /* Set values */ if (ik > 0) { + if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries"); + if(H5P_get(plist, H5F_CRT_BTREE_RANK_NAME, btree_k) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get rank for btree interanl nodes"); btree_k[H5B_SNODE_ID] = ik; @@ -614,6 +617,9 @@ H5Pset_istore_k(hid_t plist_id, unsigned ik) if (ik == 0) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value must be positive"); + if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries"); + /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_CREATE))) HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); diff --git a/src/H5R.c b/src/H5R.c index 9b99914..d96f5e6 100644 --- a/src/H5R.c +++ b/src/H5R.c @@ -603,7 +603,7 @@ H5Rdereference2(hid_t obj_id, hid_t oapl_id, H5R_type_t ref_type, const void *_r file = loc.oloc->file; /* Create reference */ - if((ret_value = H5R_dereference(file, oapl_id, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0) + if((ret_value = H5R_dereference(file, oapl_id, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to dereference object") done: @@ -1026,7 +1026,7 @@ H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name, file = loc.oloc->file; /* Get name */ - if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, _ref, name, size)) < 0) + if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_ind_dxpl_id, id, ref_type, _ref, name, size)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path") done: diff --git a/src/H5RS.c b/src/H5RS.c index dc6795e..5bbdabd 100644 --- a/src/H5RS.c +++ b/src/H5RS.c @@ -139,7 +139,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ H5RS_str_t * -H5RS_wrap(const char *s) +H5RS_wrap(char *s) { H5RS_str_t *ret_value; /* Return value */ @@ -150,7 +150,7 @@ H5RS_wrap(const char *s) HGOTO_ERROR(H5E_RS, H5E_NOSPACE, NULL, "memory allocation failed") /* Set the internal fields */ - ret_value->s = (char *)s; /* (Cast away const OK - QAK) */ + ret_value->s = s; ret_value->wrapped = 1; ret_value->n = 1; diff --git a/src/H5RSprivate.h b/src/H5RSprivate.h index c46f53c..757e0e4 100644 --- a/src/H5RSprivate.h +++ b/src/H5RSprivate.h @@ -46,7 +46,7 @@ typedef struct H5RS_str_t H5RS_str_t; /* Private routines */ /********************/ H5_DLL H5RS_str_t *H5RS_create(const char *s); -H5_DLL H5RS_str_t *H5RS_wrap(const char *s); +H5_DLL H5RS_str_t *H5RS_wrap(char *s); H5_DLL H5RS_str_t *H5RS_own(char *s); H5_DLL herr_t H5RS_decr(H5RS_str_t *rs); H5_DLL herr_t H5RS_incr(H5RS_str_t *rs); diff --git a/src/H5Rdeprec.c b/src/H5Rdeprec.c index ea30913..9877f42 100644 --- a/src/H5Rdeprec.c +++ b/src/H5Rdeprec.c @@ -228,7 +228,7 @@ H5Rdereference1(hid_t obj_id, H5R_type_t ref_type, const void *_ref) file = loc.oloc->file; /* Create reference */ - if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0) + if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable dereference object") done: diff --git a/src/H5S.c b/src/H5S.c index a9812695..4a1783e 100644 --- a/src/H5S.c +++ b/src/H5S.c @@ -482,6 +482,12 @@ H5Sextent_copy(hid_t dst_id,hid_t src_id) if(H5S_extent_copy(&(dst->extent), &(src->extent), TRUE) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy extent") + /* If the selection is 'all', update the number of elements selected in the + * destination space */ + if(H5S_SEL_ALL == H5S_GET_SELECT_TYPE(dst)) + if(H5S_select_all(dst, FALSE) < 0) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection") + done: FUNC_LEAVE_API(ret_value) } /* end H5Sextent_copy() */ diff --git a/src/H5Sdbg.c b/src/H5Sdbg.c index df033da..0cbe4f2 100644 --- a/src/H5Sdbg.c +++ b/src/H5Sdbg.c @@ -113,6 +113,7 @@ H5S_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE *stream, int indent, indent + 3, MAX(0, fwidth - 3)); break; + case H5S_NO_CLASS: default: fprintf(stream, "%*s%-*s **UNKNOWN-%ld**\n", indent, "", fwidth, "Space class:", (long)(H5S_GET_EXTENT_TYPE(mesg))); diff --git a/src/H5T.c b/src/H5T.c index c67f958..fa3ad8e 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -1045,24 +1045,24 @@ H5T_init_interface(void) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype") status = 0; - status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); /* * Native conversions should be listed last since we can use hardware to @@ -1073,272 +1073,220 @@ H5T_init_interface(void) */ /* floating point */ -#if H5T_CONV_INTERNAL_FP_FP - status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_dxpl_id, FALSE); -#endif /*H5T_CONV_INTERNAL_FP_FP*/ -#if H5T_CONV_INTERNAL_FP_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_dxpl_id, FALSE); -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ + status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_ind_dxpl_id, FALSE); +#if H5_SIZEOF_LONG_DOUBLE != 0 + status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_ind_dxpl_id, FALSE); +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /* from long long */ - status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_ind_dxpl_id, FALSE); /* From long */ - status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_ind_dxpl_id, FALSE); /* From short */ - status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_ind_dxpl_id, FALSE); /* From int */ - status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_ind_dxpl_id, FALSE); /* From char */ - status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_ind_dxpl_id, FALSE); /* From char to floats */ - status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned char to floats */ - status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_ind_dxpl_id, FALSE); /* From short to floats */ - status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned short to floats */ - status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_ind_dxpl_id, FALSE); /* From int to floats */ - status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned int to floats */ - status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_ind_dxpl_id, FALSE); /* From long to floats */ - status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned long to floats */ -#if H5T_CONV_INTERNAL_ULONG_FLT - status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ -#if H5T_CONV_INTERNAL_ULONG_DBL - status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ -#if H5T_CONV_INTERNAL_ULONG_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From long long to floats */ - status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_dxpl_id, FALSE); -#ifdef H5T_CONV_INTERNAL_LLONG_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned long long to floats */ -#if H5T_CONV_INTERNAL_ULLONG_FP - status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULLONG_FP */ -#ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE - status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */ + status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From floats to char */ - status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned char */ - status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_ind_dxpl_id, FALSE); /* From floats to short */ - status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned short */ - status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_ind_dxpl_id, FALSE); /* From floats to int */ - status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned int */ - status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_UINT - status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */ - - status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_ind_dxpl_id, FALSE); + + status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned long */ - status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE); -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER - status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ + status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_ind_dxpl_id, FALSE); /* From floats to long long */ -#if H5T_CONV_INTERNAL_FP_LLONG - status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_FP_LLONG */ -#ifdef H5T_CONV_INTERNAL_LDOUBLE_LLONG - status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */ + status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned long long */ -#if H5T_CONV_INTERNAL_FP_ULLONG - status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_FP_ULLONG */ -#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG - status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */ + status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_ind_dxpl_id, FALSE); /* * The special no-op conversion is the fastest, so we list it last. The * data types we use are not important as long as the source and * destination are equal. */ - status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_ind_dxpl_id, FALSE); /* Initialize the +/- Infinity values for floating-point types */ status |= H5T_init_inf(); @@ -1453,7 +1401,7 @@ H5T_term_interface(void) H5T__print_stats(path, &nprint/*in,out*/); path->cdata.command = H5T_CONV_FREE; if((path->func)((hid_t)FAIL, (hid_t)FAIL, &(path->cdata), (size_t)0, - (size_t)0, (size_t)0, NULL, NULL,H5AC_dxpl_id) < 0) { + (size_t)0, (size_t)0, NULL, NULL,H5AC_ind_dxpl_id) < 0) { #ifdef H5T_DEBUG if (H5DEBUG(T)) { fprintf(H5DEBUG(T), "H5T: conversion function " @@ -2977,7 +2925,7 @@ H5T_decode(const unsigned char *buf) HGOTO_ERROR(H5E_DATATYPE, H5E_VERSION, NULL, "unknown version of encoded datatype") /* Decode the serialized datatype message */ - if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_dxpl_id, NULL, H5O_DTYPE_ID, buf))) + if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_ind_dxpl_id, NULL, H5O_DTYPE_ID, buf))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode object") /* Mark datatype as being in memory now */ diff --git a/src/H5TS.c b/src/H5TS.c index b69bd4d..d4b90db 100644 --- a/src/H5TS.c +++ b/src/H5TS.c @@ -489,7 +489,7 @@ H5TS_win32_thread_exit(void) *-------------------------------------------------------------------------- */ H5TS_thread_t -H5TS_create_thread(void *func, H5TS_attr_t *attr, void *udata) +H5TS_create_thread(void *(*func)(void *), H5TS_attr_t *attr, void *udata) { H5TS_thread_t ret_value; diff --git a/src/H5TSprivate.h b/src/H5TSprivate.h index cc22f96..5394b77 100644 --- a/src/H5TSprivate.h +++ b/src/H5TSprivate.h @@ -122,7 +122,7 @@ H5_DLL herr_t H5TS_mutex_lock(H5TS_mutex_t *mutex); H5_DLL herr_t H5TS_mutex_unlock(H5TS_mutex_t *mutex); H5_DLL herr_t H5TS_cancel_count_inc(void); H5_DLL herr_t H5TS_cancel_count_dec(void); -H5_DLL H5TS_thread_t H5TS_create_thread(void * func, H5TS_attr_t * attr, void *udata); +H5_DLL H5TS_thread_t H5TS_create_thread(void *(*func)(void *), H5TS_attr_t * attr, void *udata); #if defined c_plusplus || defined __cplusplus } diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c index 7359a56..024cc83 100644 --- a/src/H5Tcommit.c +++ b/src/H5Tcommit.c @@ -558,7 +558,7 @@ H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id) H5O_type_t obj_type; /* Type of object at location */ H5G_loc_t type_loc; /* Group object for datatype */ hbool_t obj_found = FALSE; /* Object at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */ hid_t ret_value = FAIL; /* Return value */ FUNC_ENTER_API(FAIL) diff --git a/src/H5Tconv.c b/src/H5Tconv.c index 58b0b46..df85553 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -7086,7 +7086,6 @@ H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * destination values are packed. *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_FP herr_t H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7095,7 +7094,6 @@ H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(FLOAT, DOUBLE, float, double, -, -); } -#endif /* H5T_CONV_INTERNAL_FP_FP */ /*------------------------------------------------------------------------- @@ -7113,7 +7111,7 @@ H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7122,7 +7120,7 @@ H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(FLOAT, LDOUBLE, float, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7147,7 +7145,6 @@ H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * destination values are packed. *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_FP herr_t H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7156,7 +7153,6 @@ H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(DOUBLE, FLOAT, double, float, -FLT_MAX, FLT_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_FP*/ /*------------------------------------------------------------------------- @@ -7174,7 +7170,7 @@ H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7183,7 +7179,7 @@ H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_fF(DOUBLE, LDOUBLE, double, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7201,7 +7197,7 @@ H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7210,7 +7206,7 @@ H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(LDOUBLE, FLOAT, long double, float, -FLT_MAX, FLT_MAX); } -#endif /* H5T_CONV_INTERNAL_FP_LDOUBLE */ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7228,7 +7224,7 @@ H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LDOUBLE +#if H5_SIZEOF_LONG_DOUBLE != 0 herr_t H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7237,7 +7233,7 @@ H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Ff(LDOUBLE, DOUBLE, long double, double, -DBL_MAX, DBL_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/ +#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /*------------------------------------------------------------------------- @@ -7305,7 +7301,6 @@ H5T__conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7314,7 +7309,6 @@ H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7382,7 +7376,6 @@ H5T__conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7391,7 +7384,6 @@ H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7459,7 +7451,6 @@ H5T__conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7468,7 +7459,6 @@ H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7536,7 +7526,6 @@ H5T__conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7545,7 +7534,6 @@ H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7613,7 +7601,6 @@ H5T__conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7622,7 +7609,6 @@ H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7690,7 +7676,6 @@ H5T__conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7699,7 +7684,6 @@ H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7767,7 +7751,6 @@ H5T__conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE herr_t H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7776,7 +7759,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7794,7 +7776,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_FLT herr_t H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7803,7 +7784,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ /*------------------------------------------------------------------------- @@ -7821,7 +7801,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_DBL herr_t H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7830,7 +7809,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ /*------------------------------------------------------------------------- @@ -7848,7 +7826,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_LDOUBLE herr_t H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7857,7 +7834,6 @@ H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7925,7 +7901,6 @@ H5T__conv_llong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LLONG_LDOUBLE herr_t H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7934,7 +7909,6 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(LLONG, LDOUBLE, long long, long double, -, -); } -#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */ /*------------------------------------------------------------------------- @@ -7952,7 +7926,6 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_FP herr_t H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7961,7 +7934,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, FLOAT, unsigned long long, float, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/ /*------------------------------------------------------------------------- @@ -7979,7 +7951,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_FP herr_t H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -7988,7 +7959,6 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, DOUBLE, unsigned long long, double, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/ /*------------------------------------------------------------------------- @@ -8006,7 +7976,6 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULLONG_LDOUBLE herr_t H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8015,7 +7984,6 @@ H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_xF(ULLONG, LDOUBLE, unsigned long long, long double, -, -); } -#endif /*H5T_CONV_INTERNAL_ULLONG_LDOUBLE*/ /*------------------------------------------------------------------------- @@ -8141,7 +8109,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8152,7 +8119,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8170,7 +8136,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8181,7 +8146,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8307,7 +8271,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8318,7 +8281,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/ /*------------------------------------------------------------------------- @@ -8336,7 +8298,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8347,7 +8308,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8473,7 +8433,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8484,7 +8443,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8502,7 +8460,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_UINT herr_t H5T__conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8513,7 +8470,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */ /*------------------------------------------------------------------------- @@ -8639,7 +8595,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8650,7 +8605,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/ /*------------------------------------------------------------------------- @@ -8668,7 +8622,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER herr_t H5T__conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8679,7 +8632,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */ /*------------------------------------------------------------------------- @@ -8697,7 +8649,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LLONG herr_t H5T__conv_float_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8708,7 +8659,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(FLOAT, LLONG, float, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /* H5T_CONV_INTERNAL_FP_LLONG */ /*------------------------------------------------------------------------- @@ -8726,7 +8676,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_ULLONG herr_t H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8735,7 +8684,6 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/ /*------------------------------------------------------------------------- @@ -8753,7 +8701,6 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_LLONG herr_t H5T__conv_double_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8764,7 +8711,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(DOUBLE, LLONG, double, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_FP_LLONG*/ /*------------------------------------------------------------------------- @@ -8782,7 +8728,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_FP_ULLONG herr_t H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8791,7 +8736,6 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/ /*------------------------------------------------------------------------- @@ -8809,7 +8753,6 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_LLONG herr_t H5T__conv_ldouble_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8820,7 +8763,6 @@ H5_GCC_DIAG_OFF(float-equal) H5T_CONV_Fx(LDOUBLE, LLONG, long double, long long, LLONG_MIN, LLONG_MAX); H5_GCC_DIAG_ON(float-equal) } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_LLONG*/ /*------------------------------------------------------------------------- @@ -8838,7 +8780,6 @@ H5_GCC_DIAG_ON(float-equal) * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG herr_t H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8847,7 +8788,6 @@ H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, { H5T_CONV_Fx(LDOUBLE, ULLONG, long double, unsigned long long, 0, ULLONG_MAX); } -#endif /*H5T_CONV_INTERNAL_LDOUBLE_ULLONG*/ /*------------------------------------------------------------------------- diff --git a/src/H5Tdeprec.c b/src/H5Tdeprec.c index a8881fb..f1586bd 100644 --- a/src/H5Tdeprec.c +++ b/src/H5Tdeprec.c @@ -200,7 +200,7 @@ H5Topen1(hid_t loc_id, const char *name) H5O_type_t obj_type; /* Type of object at location */ H5G_loc_t type_loc; /* Group object for datatype */ hbool_t obj_found = FALSE; /* Object at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */ hid_t ret_value = FAIL; FUNC_ENTER_API(FAIL) diff --git a/src/H5Tnative.c b/src/H5Tnative.c index 1a97f39..960a811 100644 --- a/src/H5Tnative.c +++ b/src/H5Tnative.c @@ -396,7 +396,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value") HDmemcpy(memb_value, tmp_memb_value, H5T_get_size(super_type)); - if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DEFAULT) < 0) + if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DATASET_XFER_DEFAULT) < 0) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value") if(H5T__enum_insert(new_type, memb_name, memb_value) < 0) diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index bd37829..4697bfc 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -111,123 +111,6 @@ /* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */ -/* Define an internal macro for converting between floating number(float and double) and floating number. - * All Cray compilers don't support denormalized floating values generating exception(?). */ -#if H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_FP 1 -#endif /*H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting between floating number(float and double) and long double. - * All Cray compilers don't support denormalized floating values generating exception(?). NEC doesn't - * support long double. */ -#if H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_LDOUBLE 1 -#endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting all integers to long double. SGI compilers give some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long to float. - * Pathscale compiler on Sandia's Linux machine has some problem. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_FLT 1 -#endif - -/* Define an internal macro for converting unsigned (long) long to double. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_DBL 1 -#endif - -/* Define an internal macro for converting unsigned long to long double. SGI compilers give some - * incorrect conversions. 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long long to long double. Mac OS 10.4 gives some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_LLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long long to floating numbers. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_FP 1 -#endif - -/* Define an internal macro for converting unsigned long long to long double. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. For FreeBSD(sleipnir), the last 2 bytes of mantissa are lost when - * compiler tries to do the conversion. For Cygwin, compiler doesn't do rounding correctly. - * Mac OS 10.4 gives some incorrect result. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE && \ - defined(H5_ULLONG_TO_LDOUBLE_PRECISION) && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY && \ - H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 -#endif - -/* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux - * give incorrect values. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 -#endif - -/* Define an internal macro for converting floating numbers to long long. The hard conversion on Windows - * .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_LLONG 1 -#endif - -/* Define an internal macro for converting long double to long long. SGI compilers give some incorrect - * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. - * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 -#endif - -/* Define an internal macro for converting floating numbers to unsigned long long. PGI compiler does - * roundup when the source fraction part is greater than 0.5. HP-UX compilers set the maximal number - * for unsigned long long as 0x7fffffffffffffff during conversion. */ -#if (H5_WANT_DATA_ACCURACY && H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_FP_ULLONG 0 -#endif - -/* Define an internal macro for converting long double to unsigned long long. SGI compilers give some - * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates - * floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ - H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 0 -#endif - /* Statistics about a conversion function */ struct H5T_stats_t { unsigned ncalls; /*num calls to conversion function */ diff --git a/src/H5VM.c b/src/H5VM.c index 2fb56c4..10ea511 100644 --- a/src/H5VM.c +++ b/src/H5VM.c @@ -418,8 +418,7 @@ H5VM_hyper_disjointp(unsigned n, HGOTO_DONE(TRUE) for(u = 0; u < n; u++) { - HDassert(size1[u] < HSIZET_MAX); - HDassert(size2[u] < HSIZET_MAX); + HDcompile_assert(sizeof(uint32_t) <= sizeof(hsize_t)); if(0 == size1[u] || 0 == size2[u]) HGOTO_DONE(TRUE) diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h index fe7baed..7f654e1 100644 --- a/src/H5VMprivate.h +++ b/src/H5VMprivate.h @@ -396,26 +396,17 @@ H5VM_log2_gen(uint64_t n) unsigned r; /* r will be log2(n) */ register unsigned int t, tt, ttt; /* temporaries */ -#ifdef H5_BAD_LOG2_CODE_GENERATED - if(n > (uint64_t)0x7fffffffffffffff) - r = 63; - else { - n &= (uint64_t)0x7fffffffffffffff; -#endif /* H5_BAD_LOG2_CODE_GENERATED */ - if((ttt = (unsigned)(n >> 32))) - if((tt = (unsigned)(n >> 48))) - r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; - else - r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; + if((ttt = (unsigned)(n >> 32))) + if((tt = (unsigned)(n >> 48))) + r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; else - if((tt = (unsigned)(n >> 16))) - r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; - else - /* Added 'uint8_t' cast to pacify PGCC compiler */ - r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; -#ifdef H5_BAD_LOG2_CODE_GENERATED - } /* end else */ -#endif /* H5_BAD_LOG2_CODE_GENERATED */ + r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; + else + if((tt = (unsigned)(n >> 16))) + r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; + else + /* Added 'uint8_t' cast to pacify PGCC compiler */ + r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; return(r); } /* H5VM_log2_gen() */ diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c index 1b8c096..7a94487 100644 --- a/src/H5Ztrans.c +++ b/src/H5Ztrans.c @@ -160,35 +160,6 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Unexpected type conversion operation") \ } -/* Due to the undefined nature of embedding macros/conditionals within macros, we employ - * this clever little hack. We always compile in the code for the type conversion, even if - * it isn't supported in the compiler. To avoid errors, we define ULLONG_TO_FP_XFORM_TYPE_OP_ERROR on - * unsupported compilers, which will cause the code to execute HGOTO_ERROR and skip the code - * that does the actual conversion */ - - -#ifndef H5_ULLONG_TO_FP_CAST_WORKS -#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ -{ \ - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from unsigned long long to double: required for data transform") \ -} -#else -#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ - H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE) -#endif - -/* Windows Intel 8.1 compiler has error converting long long to double. - * Hard code it in. - */ -#ifndef H5_LLONG_TO_FP_CAST_WORKS -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ -{ \ - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from long long to double: required for data transform") \ -} -#else -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ - H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE) -#endif #if H5_SIZEOF_LONG_DOUBLE !=0 #define H5Z_XFORM_TYPE_OP(RESL,RESR,TYPE,OP,SIZE) \ { \ @@ -211,9 +182,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ - H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_DOUBLE) \ @@ -243,9 +214,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ - H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_DOUBLE) \ diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h index 845a9a0..7602310 100644 --- a/src/H5api_adpt.h +++ b/src/H5api_adpt.h @@ -21,59 +21,16 @@ #ifndef H5API_ADPT_H #define H5API_ADPT_H +#ifdef __cplusplus +#define __attribute__(X) /*void*/ +#endif /* __cplusplus */ +#ifndef H5_HAVE_ATTRIBUTE +#define __attribute__(X) /*void*/ +#endif /* H5_HAVE_ATTRIBUTE */ + /* This will only be defined if HDF5 was built with CMake */ #ifdef H5_BUILT_AS_DYNAMIC_LIB -#if defined (hdf5_EXPORTS) - #define _HDF5DLL_ -#else - #define _HDF5USEDLL_ -#endif - -#if defined (hdf5_test_EXPORTS) - #define _HDF5TESTDLL_ -#else - #define _HDF5TESTUSEDLL_ -#endif - -#if defined (hdf5_tools_EXPORTS) - #define _HDF5TOOLSDLL_ -#else - #define _HDF5TOOLSUSEDLL_ -#endif - -#if defined (hdf5_cpp_EXPORTS) - #define HDF5_CPPDLL_EXPORTS -#else - #define HDF5CPP_USEDLL -#endif - -#if defined (hdf5_hl_EXPORTS) - #define _HDF5_HLDLL_EXPORTS_ -#else - #define _HDF5USEHLDLL_ -#endif - -#if defined (hdf5_hl_cpp_EXPORTS) - #define HDF5_HL_CPPDLL_EXPORTS -#else - #define HDF5USE_HLCPPDLL -#endif - -#if defined (hdf5_f90cstub_EXPORTS) - #define HDF5FORT_CSTUB_DLL_EXPORTS -#else - #define HDF5FORT_CSTUB_USEDLL -#endif - -#if defined (hdf5_test_f90cstub_EXPORTS) - #define HDF5FORTTEST_CSTUB_DLL_EXPORTS -#endif - -#if defined (hdf5_hl_f90cstub_EXPORTS) - #define HDF5_HL_F90CSTUBDLL_EXPORTS -#endif - #if defined(hdf5_EXPORTS) #if defined (_MSC_VER) /* MSVC Compiler Case */ #define H5_DLL __declspec(dllexport) @@ -281,144 +238,25 @@ #define HDF5_HL_F90CSTUBDLLVAR extern #endif /* HDF5_HL_F90CSTUBDLL */ -#elif defined(H5_BUILT_AS_STATIC_LIB) +#else #define H5_DLL - #define H5_HLDLL - #define H5_HLCPPDLL - #define HDF5_HL_F90CSTUBDLL #define H5_DLLVAR extern - #define H5_DLLCPP #define H5TEST_DLL #define H5TEST_DLLVAR extern #define H5TOOLS_DLL #define H5TOOLS_DLLVAR extern + #define H5_DLLCPP + #define H5_DLLCPPVAR extern + #define H5_HLDLL + #define H5_HLDLLVAR extern + #define H5_HLCPPDLL + #define H5_HLCPPDLLVAR extern #define H5_FCDLL #define H5_FCDLLVAR extern #define H5_FCTESTDLL #define H5_FCTESTDLLVAR extern - -#else -/* This is the original HDFGroup defined preprocessor code which should still work - * with the VS projects that are maintained by "The HDF Group" - * The Visual Studio project files will not be supported in the next major release of 1.10. - */ - -#if defined(H5_HAVE_WIN32_API) - -#if defined(_HDF5DLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_DLL __declspec(dllexport) -#define H5_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5USEDLL_) -#define H5_DLL __declspec(dllimport) -#define H5_DLLVAR __declspec(dllimport) -#else -#define H5_DLL -#define H5_DLLVAR extern -#endif /* _HDF5DLL_ */ - -#if defined(_HDF5TESTDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TEST_DLL __declspec(dllexport) -#define H5TEST_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TESTUSEDLL_) -#define H5TEST_DLL __declspec(dllimport) -#define H5TEST_DLLVAR __declspec(dllimport) -#else -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#endif /* _HDF5TESTDLL_ */ - -#if defined(_HDF5TOOLSDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TOOLS_DLL __declspec(dllexport) -#define H5TOOLS_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TOOLSUSEDLL_) -#define H5TOOLS_DLL __declspec(dllimport) -#define H5TOOLS_DLLVAR __declspec(dllimport) -#else -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#endif /* _HDF5TOOLSDLL_ */ - -#if defined(_HDF5_HLDLL_EXPORTS_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLDLL __declspec(dllexport) -#elif defined(_HDF5USEHLDLL_) -#define H5_HLDLL __declspec(dllimport) -#else -#define H5_HLDLL -#endif /* _HDF5_HLDLL_EXPORTS */ - -#if defined(HDF5_HL_CPPDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLCPPDLL __declspec(dllexport) -#elif defined(HDF5USE_HLCPPDLL) -#define H5_HLCPPDLL __declspec(dllimport) -#else -#define H5_HLCPPDLL -#endif /*HDF5_HL_CPPDLL_EXPORTS*/ - -#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define HDF5_HL_F90CSTUBDLL __declspec(dllexport) -#elif defined(HDF5USE_HLF90CSTUBDLL) -#define HDF5_HL_F90CSTUBDLL __declspec(dllimport) -#else -#define HDF5_HL_F90CSTUBDLL -#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/ - - -#if defined(HDF5FORT_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCDLL __declspec(dllexport) -#define H5_FCDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORT_CSTUB_USEDLL) -#define H5_FCDLL __declspec(dllimport) -#define H5_FCDLLVAR __declspec(dllimport) -#else -#define H5_FCDLL -#define H5_FCDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCTESTDLL __declspec(dllexport) -#define H5_FCTESTDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORTTEST_CSTUB_USEDLL) -#define H5_FCTESTDLL __declspec(dllimport) -#define H5_FCTESTDLLVAR __declspec(dllimport) -#else -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -/* Added to export or to import C++ APIs - BMR (02-15-2002) */ -#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */ -#define H5_DLLCPP __declspec(dllexport) -#elif defined(HDF5CPP_USEDLL) -#define H5_DLLCPP __declspec(dllimport) -#else -#define H5_DLLCPP -#endif /* HDF5_CPPDLL_EXPORTS */ - -#else /*H5_HAVE_WIN32_API*/ -#define H5_DLL -#define H5_HLDLL -#define H5_HLCPPDLL -#define HDF5_HL_F90CSTUBDLL -#define H5_DLLVAR extern -#define H5_DLLCPP -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#define H5_FCDLL -#define H5_FCDLLVAR extern -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /*H5_HAVE_WIN32_API*/ + #define HDF5_HL_F90CSTUBDLL + #define HDF5_HL_F90CSTUBDLLVAR extern +#endif /* H5_BUILT_AS_DYNAMIC_LIB */ #endif /* H5API_ADPT_H */ - -#endif /* */ diff --git a/src/H5config.h.in b/src/H5config.h.in index a2fa0ad..c089cd3 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -3,17 +3,10 @@ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD -/* Define if your system generates wrong code for log2 routine. */ -#undef BAD_LOG2_CODE_GENERATED - /* Define if the memory buffers being written to disk should be cleared before writing. */ #undef CLEAR_MEMORY -/* Define if your system can handle converting denormalized floating-point - values. */ -#undef CONVERT_DENORMAL_FLOAT - /* Define if C++ compiler recognizes offsetof */ #undef CXX_HAVE_OFFSETOF @@ -37,18 +30,6 @@ /* As FC_FUNC, but for C identifiers containing underscores. */ #undef FC_FUNC_ -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#undef FP_TO_INTEGER_OVERFLOW_WORKS - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#undef FP_TO_ULLONG_ACCURATE - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -#undef FP_TO_ULLONG_RIGHT_MAXIMUM - /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM @@ -375,42 +356,13 @@ /* Define to 1 if you have the `_scrsize' function. */ #undef HAVE__SCRSIZE -/* Define if your system can't handle converting floating-point values to long - long. */ -#undef HW_FP_TO_LLONG_NOT_WORKS - /* Define if HDF5's high-level library headers should be included in hdf5.h */ #undef INCLUDE_HL -/* Define if your system can accurately convert from integers to long double - values. */ -#undef INTEGER_TO_LDOUBLE_ACCURATE - -/* Define if your system can convert long double to integers accurately. */ -#undef LDOUBLE_TO_INTEGER_ACCURATE - -/* Define if your system can convert from long double to integer values. */ -#undef LDOUBLE_TO_INTEGER_WORKS - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#undef LDOUBLE_TO_LLONG_ACCURATE - /* Define if your system converts long double to (unsigned) long values with special algorithm. */ #undef LDOUBLE_TO_LONG_SPECIAL -/* Define if your system can convert long double to unsigned int values - correctly. */ -#undef LDOUBLE_TO_UINT_ACCURATE - -/* Define if your system can compile long long to floating-point casts. */ -#undef LLONG_TO_FP_CAST_WORKS - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#undef LLONG_TO_LDOUBLE_CORRECT - /* Define if your system can convert (unsigned) long to long double values with special algorithm. */ #undef LONG_TO_LDOUBLE_SPECIAL @@ -582,22 +534,6 @@ /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#undef ULLONG_TO_FP_CAST_WORKS - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#undef ULLONG_TO_LDOUBLE_PRECISION - -/* Define if your system accurately converting unsigned long to float values. - */ -#undef ULONG_TO_FLOAT_ACCURATE - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#undef ULONG_TO_FP_BOTTOM_BIT_ACCURATE - /* Define using v1.6 public API symbols by default */ #undef USE_16_API_DEFAULT @@ -609,13 +545,6 @@ /* Version number of package */ #undef VERSION -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -#undef VSNPRINTF_WORKS - -/* Data accuracy is prefered to speed during data conversions */ -#undef WANT_DATA_ACCURACY - /* Check exception handling functions during data conversions */ #undef WANT_DCONV_EXCEPTION diff --git a/src/H5private.h b/src/H5private.h index 3ac8633..f4dbe53 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -275,12 +275,10 @@ #endif /* - * Does the compiler support the __attribute__(()) syntax? This is how gcc - * suppresses warnings about unused function arguments. It's no big deal if - * we don't. + * Does the compiler support the __attribute__(()) syntax? It's no + * big deal if we don't. */ #ifdef __cplusplus -# define __attribute__(X) /*void*/ # define UNUSED /*void*/ # define NORETURN /*void*/ #else /* __cplusplus */ @@ -288,7 +286,6 @@ # define UNUSED __attribute__((unused)) # define NORETURN __attribute__((noreturn)) #else -# define __attribute__(X) /*void*/ # define UNUSED /*void*/ # define NORETURN /*void*/ #endif diff --git a/src/H5public.h b/src/H5public.h index 62b5d2b..f4df047 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -94,10 +94,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 216 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 217 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "swmr0" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.216-swmr0" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.217-swmr0" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index 11ec806..9862c48 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -472,7 +472,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -504,7 +503,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -528,11 +526,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -595,7 +591,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ @@ -731,7 +726,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # Our main target, the HDF5 library diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 83f82bd..55b3c44 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,7 +27,7 @@ set (TEST_LIB_HEADERS ) add_library (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS}) -TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} " " " ") if (MSVC) target_link_libraries (${HDF5_TEST_LIB_TARGET} "ws2_32.lib") endif (MSVC) @@ -68,7 +68,7 @@ if (BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c) - TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ") + TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME} @@ -99,7 +99,7 @@ if (BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c) - TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ") + TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME} @@ -154,14 +154,14 @@ set (testhdf5_SRCS #-- Adding test for testhdf5 add_executable (testhdf5 ${testhdf5_SRCS}) TARGET_NAMING (testhdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (testhdf5 " " " ") +TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (testhdf5 PROPERTIES FOLDER test) MACRO (ADD_H5_EXE file) add_executable (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${file} " " " ") + TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ") target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (${file} PROPERTIES FOLDER test) ENDMACRO (ADD_H5_EXE file) @@ -237,21 +237,21 @@ endforeach (test ${H5_TESTS}) #-- Adding test for cache add_executable (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache " " " ") +TARGET_C_PROPERTIES (cache ${LIB_TYPE} " " " ") target_link_libraries (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache PROPERTIES FOLDER test) #-- Adding test for cache_api add_executable (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache_api ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache_api " " " ") +TARGET_C_PROPERTIES (cache_api ${LIB_TYPE} " " " ") target_link_libraries (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache_api PROPERTIES FOLDER test) #-- Adding test for cache_tagging add_executable (cache_tagging ${HDF5_TEST_SOURCE_DIR}/cache_tagging.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) TARGET_NAMING (cache_tagging ${LIB_TYPE}) -TARGET_C_PROPERTIES (cache_tagging " " " ") +TARGET_C_PROPERTIES (cache_tagging ${LIB_TYPE} " " " ") target_link_libraries (cache_tagging ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (cache_tagging PROPERTIES FOLDER test) @@ -264,7 +264,7 @@ add_executable (ttsafe ${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c ) TARGET_NAMING (ttsafe ${LIB_TYPE}) -TARGET_C_PROPERTIES (ttsafe " " " ") +TARGET_C_PROPERTIES (ttsafe ${LIB_TYPE} " " " ") target_link_libraries (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (ttsafe PROPERTIES FOLDER test) @@ -272,7 +272,7 @@ set_target_properties (ttsafe PROPERTIES FOLDER test) if (HDF5_ENABLE_DEPRECATED_SYMBOLS) add_executable (err_compat ${HDF5_TEST_SOURCE_DIR}/err_compat.c) TARGET_NAMING (err_compat ${LIB_TYPE}) - TARGET_C_PROPERTIES (err_compat " " " ") + TARGET_C_PROPERTIES (err_compat ${LIB_TYPE} " " " ") target_link_libraries (err_compat ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (err_compat PROPERTIES FOLDER test) endif (HDF5_ENABLE_DEPRECATED_SYMBOLS) @@ -280,14 +280,14 @@ endif (HDF5_ENABLE_DEPRECATED_SYMBOLS) #-- Adding test for error_test add_executable (error_test ${HDF5_TEST_SOURCE_DIR}/error_test.c) TARGET_NAMING (error_test ${LIB_TYPE}) -TARGET_C_PROPERTIES (error_test " " " ") +TARGET_C_PROPERTIES (error_test ${LIB_TYPE} " " " ") target_link_libraries (error_test ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (error_test PROPERTIES FOLDER test) #-- Adding test for links_env add_executable (links_env ${HDF5_TEST_SOURCE_DIR}/links_env.c) TARGET_NAMING (links_env ${LIB_TYPE}) -TARGET_C_PROPERTIES (links_env " " " ") +TARGET_C_PROPERTIES (links_env ${LIB_TYPE} " " " ") target_link_libraries (links_env ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (links_env PROPERTIES FOLDER test) @@ -308,8 +308,8 @@ endif (\${TEST_RESULT} STREQUAL \"0\") ############################################################################## if (BUILD_SHARED_LIBS) add_executable (plugin ${HDF5_TEST_SOURCE_DIR}/plugin.c) - TARGET_NAMING (plugin ${LIB_TYPE}) - TARGET_C_PROPERTIES (plugin " " " ") + TARGET_NAMING (plugin SHARED) + TARGET_C_PROPERTIES (plugin SHARED " " " ") target_link_libraries (plugin ${HDF5_TEST_PLUGIN_LIB_TARGET}) set_target_properties (plugin PROPERTIES FOLDER test) endif (BUILD_SHARED_LIBS) diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake index f609b7a..92e4574 100644 --- a/test/CMakeTests.cmake +++ b/test/CMakeTests.cmake @@ -727,8 +727,8 @@ endif (HDF5_TEST_VFD) if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) MACRO (ADD_H5_GENERATOR genfile) add_executable (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c) - TARGET_NAMING (${genfile} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${genfile} " " " ") + TARGET_NAMING (${genfile} STATIC) + TARGET_C_PROPERTIES (${genfile} STATIC " " " ") target_link_libraries (${genfile} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (${genfile} PROPERTIES FOLDER generator/test) ENDMACRO (ADD_H5_GENERATOR genfile) diff --git a/test/Makefile.in b/test/Makefile.in index dedc262..05cf231 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -900,7 +900,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -932,7 +931,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -956,11 +954,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -1023,7 +1019,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/test/dsets.c b/test/dsets.c index 7f32e1d..1849d98 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -25,24 +25,16 @@ #include "h5test.h" #include "H5srcdir.h" -#include "H5Dpublic.h" #include "H5VMprivate.h" -#ifdef H5_HAVE_SZLIB_H -# include "szlib.h" -#endif - -/* - * This file needs to access private datatypes from the H5D package. - */ -#define H5D_PACKAGE -#define H5D_TESTING -#include "H5Dpkg.h" /* * This file needs to access private datatypes from the H5Z package. */ #define H5Z_PACKAGE #include "H5Zpkg.h" +#ifdef H5_HAVE_SZLIB_H +# include "szlib.h" +#endif const char *FILENAME[] = { diff --git a/test/dt_arith.c b/test/dt_arith.c index 1e183aa..c5b72d4 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -3294,7 +3294,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) check_mant[1] = HDfrexpl(hw_ld, check_expo+1); #endif } -#ifdef H5_CONVERT_DENORMAL_FLOAT /* Special check for denormalized values */ if(check_expo[0]<(-(int)dst_ebias) || check_expo[1]<(-(int)dst_ebias)) { int expo_diff=check_expo[0]-check_expo[1]; @@ -3317,58 +3316,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) HDfabs(check_mant[0]-check_mant[1]) %s conversions", - name, "unsigned long long", "float"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "unsigned long long", "double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - } -#endif /* H5_ULLONG_TO_FP_CAST_WORKS */ #endif -#if H5_INTEGER_TO_LDOUBLE_ACCURATE #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_SCHAR, H5T_NATIVE_LDOUBLE); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_UCHAR, H5T_NATIVE_LDOUBLE); @@ -5173,50 +5032,10 @@ run_int_fp_conv(const char *name) #endif #endif /* H5_SIZEOF_LONG!=H5_SIZEOF_INT */ #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG -#if H5_LLONG_TO_LDOUBLE_CORRECT nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_LDOUBLE); -#else /* H5_LLONG_TO_LDOUBLE_CORRECT */ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long long", "long double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler error in handling conversion."); - } -#endif /* H5_LLONG_TO_LDOUBLE_CORRECT */ -#if H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_LDOUBLE); -#else /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "unsigned long long", "long double"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to compiler not handling conversion."); - } -#endif /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ #endif #endif -#else /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "all integers", "long double"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE !=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - - } -#endif /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/ return nerrors; } @@ -5240,7 +5059,6 @@ static int run_fp_int_conv(const char *name) { int nerrors = 0; -#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS int test_values; #ifdef H5_VMS @@ -5277,62 +5095,23 @@ run_fp_int_conv(const char *name) #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG if(!strcmp(name, "hw")) { /* Hardware conversion */ - /* Windows .NET 2003 doesn't work for hardware conversion of this case. - * .NET should define this macro H5_HW_FP_TO_LLONG_NOT_WORKS. */ -#ifndef H5_HW_FP_TO_LLONG_NOT_WORKS nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG); -#endif /*H5_HW_FP_TO_LLONG_NOT_WORKS*/ } else { /* Software conversion */ nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG); } -#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_ULLONG); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_ULLONG); -#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "float", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to hardware conversion error."); - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "double", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); - HDputs(" Test skipped due to hardware conversion error."); - } -#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ #endif -#if H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SHORT); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_USHORT); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_INT); -#if H5_LDOUBLE_TO_UINT_ACCURATE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UINT); -#else /*H5_LDOUBLE_TO_UINT_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "unsigned int"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_LDOUBLE_TO_UINT_ACCURATE*/ #if H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0 #ifndef H5_LDOUBLE_TO_LONG_SPECIAL nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LONG); @@ -5355,77 +5134,13 @@ run_fp_int_conv(const char *name) #endif /*H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0 */ #if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG && H5_SIZEOF_LONG_DOUBLE!=0 -#ifdef H5_LDOUBLE_TO_LLONG_ACCURATE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LLONG); -#else /*H5_LDOUBLE_TO_LLONG_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "long long"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/ -#if defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE) nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_ULLONG); -#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ - { - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "unsigned long long"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ #endif #endif -#else /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ - { - char str[256]; /*hello string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "long double", "all integers"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disabled long double."); -#endif - } -#endif /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ #ifndef H5_VMS } /* end for */ #endif /* H5_VMS */ -#else /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */ -/* For Cray X1, the compiler generates floating exception when the - * conversion overflows. So disable all of the conversions from - * floating-point numbers to integers. - */ - char str[256]; /*string */ - - HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions", - name, "all floating-point numbers", "all integers"); - printf("%-70s", str); - SKIPPED(); -#if H5_SIZEOF_LONG_DOUBLE!=0 - HDputs(" Test skipped due to hardware conversion error."); -#else - HDputs(" Test skipped due to disbaled long double."); -#endif -#endif /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */ return nerrors; } diff --git a/test/dtransform.c b/test/dtransform.c index d80c21a..4adbaf5 100644 --- a/test/dtransform.c +++ b/test/dtransform.c @@ -297,20 +297,8 @@ int main(void) TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CONTIG(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); - -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CONTIG(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("contiguous, with type conversion (float->llong)") - SKIPPED() -#endif - -#ifdef H5_ULLONG_TO_FP_CAST_WORKS TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); -#else - TESTING("contiguous, with type conversion (float->ullong)") - SKIPPED() -#endif TEST_TYPE_CONTIG(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); #if H5_SIZEOF_LONG_DOUBLE!=0 @@ -326,19 +314,8 @@ int main(void) TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CHUNK(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CHUNK(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("chunked, with type conversion (float->llong)") - SKIPPED() -#endif - -#ifdef H5_ULLONG_TO_FP_CAST_WORKS TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); -#else - TESTING("chunked, with type conversion (float->ullong)") - SKIPPED() -#endif TEST_TYPE_CHUNK(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); #if H5_SIZEOF_LONG_DOUBLE!=0 diff --git a/test/flush2.c b/test/flush2.c index 8108bba..28ce41e 100644 --- a/test/flush2.c +++ b/test/flush2.c @@ -186,7 +186,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS @@ -209,7 +209,7 @@ main(void) PASSED() else { -#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_ +#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS) SKIPPED(); puts(" DLL will flush the file even when calling _exit, skip this test temporarily"); #elif defined H5_VMS diff --git a/test/gen_filespace.c b/test/gen_filespace.c index 7ee2a7a..e0c42e8 100644 --- a/test/gen_filespace.c +++ b/test/gen_filespace.c @@ -42,7 +42,8 @@ static void gen_file(void) hid_t dataset, space; hsize_t dim[1]; int data[NUM_ELMTS]; - unsigned i, j; /* Local index variable */ + size_t j; /* Local index variable */ + int i; /* Local index variable */ H5F_file_space_type_t fs_type; /* File space handling strategy */ for(j = 0, fs_type = H5F_FILE_SPACE_ALL_PERSIST; j < NELMTS(FILENAMES); j++, fs_type = (H5F_file_space_type_t)(fs_type + 1)) { diff --git a/test/gen_plist.c b/test/gen_plist.c index acc5f3e..e77af73 100644 --- a/test/gen_plist.c +++ b/test/gen_plist.c @@ -280,8 +280,8 @@ main(void) assert(ret > 0); /* Create FAPL for the elink FAPL */ - if((fapl1 = ret = H5Pcreate(ret = H5P_FILE_ACCESS)) < 0) - assert(ret > 0); + if((fapl1 = H5Pcreate(H5P_FILE_ACCESS)) < 0) + assert(fapl1 > 0); if((ret = H5Pset_alignment(fapl1, 2, 1024)) < 0) assert(ret > 0); diff --git a/test/getname.c b/test/getname.c index 2d999b9..dc1ddbe 100644 --- a/test/getname.c +++ b/test/getname.c @@ -103,7 +103,11 @@ test_main(hid_t file_id, hid_t fapl) hid_t space_id; hid_t type_id, type2_id; hsize_t dims[1] = { 5 }; - size_t name_len; /* Name length */ + size_t name_len; /* Name length */ + H5O_info_t oinfo; /* Object info structs */ + hid_t dtype; /* Object identifier for testing */ + hid_t dtype_anon; /* Object identifier for testing anonymous */ + ssize_t size; /* Size returned by H5Iget_name */ /* Initialize the file names */ h5_fixname(FILENAME[1], fapl, filename1, sizeof filename1); @@ -2355,7 +2359,58 @@ test_main(hid_t file_id, hid_t fapl) H5Gclose(group_id); H5Gclose(group2_id); H5Fclose(file1_id); - H5Fclose(file2_id); + + PASSED(); + + /*------------------------------------------------------------------------- + * Test H5Iget_name with anonymous datatypes + *------------------------------------------------------------------------- + */ + + TESTING("H5Iget_name with anonymous datatypes"); + + /* Commit the type anonymously and link it in */ + if((dtype = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR + /* Test H5Iget_name with created datatype, should fail because not committed */ + H5E_BEGIN_TRY { + if((size = H5Iget_name(dtype, NULL, 0)) >= 0) TEST_ERROR + } H5E_END_TRY; + + if(H5Tcommit_anon(file2_id, dtype, H5P_DEFAULT, H5P_DEFAULT)) TEST_ERROR + + /* Test H5Iget_name with anonymously created datatype, should pass because committed */ + if((size = H5Iget_name(dtype, NULL, 0)) != 0) TEST_ERROR + + /* Create a link to the object */ + if( H5Olink(dtype, file2_id, "datatype", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Commit a second datatype with no links to it and commit it */ + if((dtype_anon = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR + if(H5Tcommit_anon(file2_id, dtype_anon, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Test H5Iget_name with anonymously created datatype, should pass because committed */ + if((size = H5Iget_name(dtype_anon, NULL,0)) != 0) TEST_ERROR + + /* Store the address of the datatype for later use */ + if(H5Oget_info(dtype_anon, &oinfo) < 0) TEST_ERROR + + /* Update the reference count to dtype_anon to preserve the datatype */ + if(H5Oincr_refcount(dtype_anon) < 0) TEST_ERROR + + if(H5Tclose(dtype) < 0) TEST_ERROR + if(H5Tclose(dtype_anon) < 0) TEST_ERROR + if(H5Fclose(file2_id) < 0) TEST_ERROR + + /* Re-open the file and check that the anonymous datatypes persist */ + if( (file2_id = H5Fopen(filename2, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR + + /* Check the H5Iget_name does not return an error for anon committed datatypes */ + if((dtype_anon = H5Oopen_by_addr(file2_id, oinfo.addr)) < 0) TEST_ERROR + + if((size = H5Iget_name(dtype_anon,NULL,0)) != 0) TEST_ERROR + + if(H5Tclose(dtype_anon) < 0) TEST_ERROR + if(H5Fclose(file2_id) < 0) TEST_ERROR PASSED(); diff --git a/test/plugin.c b/test/plugin.c index 02007d5..74a8f4b 100644 --- a/test/plugin.c +++ b/test/plugin.c @@ -536,16 +536,17 @@ error: *------------------------------------------------------------------------- */ static herr_t -test_noread_data(hid_t dataset, int *origin_data) +test_noread_data(hid_t dataset) { - int check[DSET_DIM1][DSET_DIM2]; - const hsize_t size[2] = {DSET_DIM1, DSET_DIM2}; /* Dataspace dimensions */ - int *data_p = origin_data; - size_t i, j; /* Local index variables */ + int check[DSET_DIM1][DSET_DIM2]; + herr_t ret; /* Read the dataset back */ - if(H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, check) >= 0) - TEST_ERROR; + H5E_BEGIN_TRY { + ret = H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, check); + } H5E_END_TRY + if(ret >= 0) + TEST_ERROR PASSED(); return 0; @@ -578,7 +579,7 @@ test_noread_with_filters(hid_t file) if((dset = H5Dopen2(file,DSET_DYNLIB1_NAME,H5P_DEFAULT)) < 0) TEST_ERROR - if(test_noread_data(dset, (int *)points_dynlib1) < 0) TEST_ERROR + if(test_noread_data(dset) < 0) TEST_ERROR if(H5Dclose(dset) < 0) TEST_ERROR diff --git a/test/th5s.c b/test/th5s.c index 9d51ec8..7c1c46e 100644 --- a/test/th5s.c +++ b/test/th5s.c @@ -2224,6 +2224,8 @@ test_h5s_extent_copy(void) hsize_t d3_dims1[3] = {10, 10, 10}, /* 3-D dimensions */ d3_dims2[3] = {20, 20, 20}, d3_dims3[3] = {H5S_UNLIMITED, H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t npoints[14]; /* Expected number of points in selection for each element in spaces */ + hssize_t npoints_ret; /* Number of points returned by H5Sget_select_npoints() */ htri_t ext_equal; /* Whether two dataspace extents are equal */ const unsigned num_spaces = sizeof(spaces) / sizeof(spaces[0]); unsigned i, j; @@ -2232,36 +2234,50 @@ test_h5s_extent_copy(void) /* Create dataspaces */ spaces[0] = H5Screate(H5S_NULL); CHECK(spaces[0], FAIL, "H5Screate"); + npoints[0] = (hsize_t)0; spaces[1] = H5Screate(H5S_SCALAR); CHECK(spaces[1], FAIL, "H5Screate"); + npoints[1] = (hsize_t)1; spaces[2] = H5Screate_simple(1, d1_dims1, NULL); CHECK(spaces[2], FAIL, "H5Screate"); + npoints[2] = d1_dims1[0]; spaces[3] = H5Screate_simple(1, d1_dims2, NULL); CHECK(spaces[3], FAIL, "H5Screate"); + npoints[3] = d1_dims2[0]; spaces[4] = H5Screate_simple(1, d1_dims1, d1_dims2); CHECK(spaces[4], FAIL, "H5Screate"); + npoints[4] = d1_dims1[0]; spaces[5] = H5Screate_simple(1, d1_dims1, d1_dims3); CHECK(spaces[5], FAIL, "H5Screate"); + npoints[5] = d1_dims1[0]; spaces[6] = H5Screate_simple(2, d2_dims1, NULL); CHECK(spaces[6], FAIL, "H5Screate"); + npoints[6] = d2_dims1[0] * d2_dims1[1]; spaces[7] = H5Screate_simple(2, d2_dims2, NULL); CHECK(spaces[7], FAIL, "H5Screate"); + npoints[7] = d2_dims2[0] * d2_dims2[1]; spaces[8] = H5Screate_simple(2, d2_dims1, d2_dims2); CHECK(spaces[8], FAIL, "H5Screate"); + npoints[8] = d2_dims1[0] * d2_dims1[1]; spaces[9] = H5Screate_simple(2, d2_dims1, d2_dims3); CHECK(spaces[9], FAIL, "H5Screate"); + npoints[9] = d2_dims1[0] * d2_dims1[1]; spaces[10] = H5Screate_simple(3, d3_dims1, NULL); CHECK(spaces[10], FAIL, "H5Screate"); + npoints[10] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; spaces[11] = H5Screate_simple(3, d3_dims2, NULL); CHECK(spaces[11], FAIL, "H5Screate"); + npoints[11] = d3_dims2[0] * d3_dims2[1] * d3_dims2[2]; spaces[12] = H5Screate_simple(3, d3_dims1, d3_dims2); CHECK(spaces[12], FAIL, "H5Screate"); + npoints[12] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; spaces[13] = H5Screate_simple(3, d3_dims1, d3_dims3); CHECK(spaces[13], FAIL, "H5Screate"); + npoints[13] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2]; tmp_space = H5Screate(H5S_NULL); CHECK(tmp_space, FAIL, "H5Screate"); @@ -2275,14 +2291,26 @@ test_h5s_extent_copy(void) * will test copying from i/j to i/j */ ret = H5Sextent_copy(tmp_space, spaces[j]); CHECK(ret, FAIL, "H5Sextent_copy"); + + /* Verify that the extents are equal */ ext_equal = H5Sextent_equal(tmp_space, spaces[j]); VERIFY(ext_equal, TRUE, "H5Sextent_equal"); + /* Verify that the correct number of elements is selected */ + npoints_ret = H5Sget_select_npoints(tmp_space); + VERIFY((hsize_t)npoints_ret, npoints[j], "H5Sget_select_npoints"); + /* Copy from j to i */ ret = H5Sextent_copy(tmp_space, spaces[i]); CHECK(ret, FAIL, "H5Sextent_copy"); + + /* Verify that the extents are equal */ ext_equal = H5Sextent_equal(tmp_space, spaces[i]); VERIFY(ext_equal, TRUE, "H5Sextent_equal"); + + /* Verify that the correct number of elements is selected */ + npoints_ret = H5Sget_select_npoints(tmp_space); + VERIFY((hsize_t)npoints_ret, npoints[i], "H5Sget_select_npoints"); } /* end for */ /* Close dataspaces */ diff --git a/test/tmisc.c b/test/tmisc.c index 68a30eb..869557c 100644 --- a/test/tmisc.c +++ b/test/tmisc.c @@ -1847,9 +1847,21 @@ test_misc11(void) ret = H5Pset_sizes(fcpl, (size_t)MISC11_SIZEOF_OFF, (size_t)MISC11_SIZEOF_LEN); CHECK(ret, FAIL, "H5Pset_sizes"); + /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */ + H5E_BEGIN_TRY { + ret=H5Pset_sym_k(fcpl, 32770, 0); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Pset_sym_k"); + ret=H5Pset_sym_k(fcpl,MISC11_SYM_IK,MISC11_SYM_LK); CHECK(ret, FAIL, "H5Pset_sym_k"); + /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */ + H5E_BEGIN_TRY { + ret=H5Pset_istore_k(fcpl, 32770); + } H5E_END_TRY; + VERIFY(ret, FAIL, "H5Pset_istore_k"); + ret=H5Pset_istore_k(fcpl,MISC11_ISTORE_IK); CHECK(ret, FAIL, "H5Pset_istore_k"); diff --git a/test/ttsafe_cancel.c b/test/ttsafe_cancel.c index 56f431e..d8ed462 100644 --- a/test/ttsafe_cancel.c +++ b/test/ttsafe_cancel.c @@ -123,7 +123,7 @@ void tts_cancel(void) void *tts_cancel_thread(void UNUSED *arg) { int datavalue; - int *buffer; + int buffer; hid_t dataspace, datatype, dataset; hsize_t dimsf[1]; /* dataset dimensions */ cancel_cleanup_t *cleanup_structure; @@ -156,10 +156,9 @@ void *tts_cancel_thread(void UNUSED *arg) ret=H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &datavalue); assert(ret>=0); - buffer = HDmalloc(sizeof(int)); - ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); + ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &buffer); assert(ret>=0); - ret=H5Diterate(buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset); + ret=H5Diterate(&buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset); assert(ret>=0); sleep(3); diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt index d1db0b7..70e0246 100644 --- a/testpar/CMakeLists.txt +++ b/testpar/CMakeLists.txt @@ -29,14 +29,14 @@ set (testphdf5_SRCS #-- Adding test for testhdf5 add_executable (testphdf5 ${testphdf5_SRCS}) TARGET_NAMING (testphdf5 ${LIB_TYPE}) -TARGET_C_PROPERTIES (testphdf5 " " " ") +TARGET_C_PROPERTIES (testphdf5 ${LIB_TYPE} " " " ") target_link_libraries (testphdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_target_properties (testphdf5 PROPERTIES FOLDER test/par) MACRO (ADD_H5P_EXE file) add_executable (${file} ${HDF5_TEST_PAR_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file} ${LIB_TYPE}) - TARGET_C_PROPERTIES (${file} " " " ") + TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ") target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS}) set_target_properties (${file} PROPERTIES FOLDER test/par) ENDMACRO (ADD_H5P_EXE file) diff --git a/testpar/Makefile.in b/testpar/Makefile.in index 44c30fc..7787a65 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -435,7 +435,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -467,7 +466,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -491,11 +489,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -558,7 +554,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/Makefile.in b/tools/Makefile.in index aa0247c..974e6b4 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -406,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -438,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -462,11 +460,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt index 8c27536..7291197 100644 --- a/tools/h5copy/CMakeLists.txt +++ b/tools/h5copy/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c) TARGET_NAMING (h5copy ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5copy " " " ") +TARGET_C_PROPERTIES (h5copy ${LIB_TYPE} " " " ") target_link_libraries (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5copy PROPERTIES FOLDER tools) @@ -20,8 +20,8 @@ set (H5_DEP_EXECUTABLES h5copy) if (BUILD_TESTING) if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5copygentest ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copygentest.c) - TARGET_NAMING (h5copygentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5copygentest " " " ") + TARGET_NAMING (h5copygentest STATIC) + TARGET_C_PROPERTIES (h5copygentest STATIC " " " ") target_link_libraries (h5copygentest ${HDF5_LIB_TARGET}) set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5copy/Makefile.in b/tools/h5copy/Makefile.in index 3ba120c..e128cfe 100644 --- a/tools/h5copy/Makefile.in +++ b/tools/h5copy/Makefile.in @@ -414,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -446,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -470,11 +468,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -537,7 +533,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt index f539d20..39095a5 100644 --- a/tools/h5diff/CMakeLists.txt +++ b/tools/h5diff/CMakeLists.txt @@ -14,7 +14,7 @@ add_executable (h5diff ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c ) TARGET_NAMING (h5diff ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5diff " " " ") +TARGET_C_PROPERTIES (h5diff ${LIB_TYPE} " " " ") target_link_libraries (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5diff PROPERTIES FOLDER tools) @@ -26,7 +26,7 @@ if (H5_HAVE_PARALLEL) ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/ph5diff_main.c ) TARGET_NAMING (ph5diff ${LIB_TYPE}) - TARGET_C_PROPERTIES (ph5diff " " " ") + TARGET_C_PROPERTIES (ph5diff ${LIB_TYPE} " " " ") target_link_libraries (ph5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (ph5diff PROPERTIES FOLDER tools) endif (H5_HAVE_PARALLEL) @@ -37,8 +37,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c) - TARGET_NAMING (h5diffgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5diffgentest " " " ") + TARGET_NAMING (h5diffgentest STATIC) + TARGET_C_PROPERTIES (h5diffgentest STATIC " " " ") target_link_libraries (h5diffgentest ${HDF5_LIB_TARGET}) set_target_properties (h5diffgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5diff/Makefile.in b/tools/h5diff/Makefile.in index 50534f4..c95967d 100644 --- a/tools/h5diff/Makefile.in +++ b/tools/h5diff/Makefile.in @@ -421,7 +421,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -453,7 +452,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -477,11 +475,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -544,7 +540,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index 4559ae3..7658c04 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -15,7 +15,7 @@ add_executable (h5dump ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_xml.c ) TARGET_NAMING (h5dump ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5dump " " " ") +TARGET_C_PROPERTIES (h5dump ${LIB_TYPE} " " " ") target_link_libraries (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5dump PROPERTIES FOLDER tools) @@ -27,8 +27,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c) - TARGET_NAMING (h5dumpgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5dumpgentest " " " ") + TARGET_NAMING (h5dumpgentest STATIC) + TARGET_C_PROPERTIES (h5dumpgentest STATIC " " " ") target_link_libraries (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5dumpgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake index afb482e..00ec760 100644 --- a/tools/h5dump/CMakeTests.cmake +++ b/tools/h5dump/CMakeTests.cmake @@ -1340,30 +1340,14 @@ set (USE_FILTER_SZIP "true") endif (H5_HAVE_FILTER_SZIP) - if (H5_HAVE_FILTER_SHUFFLE) - set (USE_FILTER_SHUFFLE "true") - endif (H5_HAVE_FILTER_SHUFFLE) - - if (H5_HAVE_FILTER_FLETCHER32) - set (USE_FILTER_FLETCHER32 "true") - endif (H5_HAVE_FILTER_FLETCHER32) - - if (H5_HAVE_FILTER_NBIT) - set (USE_FILTER_NBIT "true") - endif (H5_HAVE_FILTER_NBIT) - - if (H5_HAVE_FILTER_SCALEOFFSET) - set (USE_FILTER_SCALEOFFSET "true") - endif (H5_HAVE_FILTER_SCALEOFFSET) - - if (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET) + if (USE_FILTER_DEFLATE) # data read internal filters ADD_H5_TEST (treadintfilter 0 --enable-error-stack -d deflate -d shuffle -d fletcher32 -d nbit -d scaleoffset tfilters.h5) if (HDF5_ENABLE_SZIP_SUPPORT) # data read all filters ADD_H5_TEST (treadfilter 0 --enable-error-stack -d all -d szip tfilters.h5) endif (HDF5_ENABLE_SZIP_SUPPORT) - endif (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET) + endif (USE_FILTER_DEFLATE) # test for displaying objects with very long names ADD_H5_TEST (tlonglinks 0 --enable-error-stack tlonglinks.h5) diff --git a/tools/h5dump/CMakeTestsXML.cmake b/tools/h5dump/CMakeTestsXML.cmake index a939d78..0a667c4 100644 --- a/tools/h5dump/CMakeTestsXML.cmake +++ b/tools/h5dump/CMakeTestsXML.cmake @@ -411,14 +411,6 @@ ADD_XML_H5_TEST (tempty-dtd.h5 0 --use-dtd tempty.h5) ADD_XML_H5_TEST (tempty-dtd-2.h5 0 -u tempty.h5) - # The lone colon here confuses some systems (Cray X1). Skip - # it if configure detects that this is a problem. - set (TESTTYPE "TEST") - if (NOT ${H5_LONE_COLON}) - set (TESTTYPE "SKIP") - endif (NOT ${H5_LONE_COLON}) - ADD_XML_SKIP_H5_TEST (tempty-nons.h5 0 ${TESTTYPE} -X : tempty.h5) - ADD_XML_H5_TEST (tempty-nons-2.h5 0 --xml-ns=: tempty.h5) ## Some of these combinations are syntactically correct but diff --git a/tools/h5dump/Makefile.in b/tools/h5dump/Makefile.in index aee2a6c..7371adf 100644 --- a/tools/h5dump/Makefile.in +++ b/tools/h5dump/Makefile.in @@ -420,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -452,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -476,11 +474,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -543,7 +539,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5dump/binread.c b/tools/h5dump/binread.c index 5abb9af..74db92c 100644 --- a/tools/h5dump/binread.c +++ b/tools/h5dump/binread.c @@ -49,8 +49,7 @@ static void usage (void) { - fprintf(stderr, "\ - usage: binread FILE_NAME\n"); + fprintf(stderr, "usage: binread FILE_NAME\n"); } /*------------------------------------------------------------------------- @@ -64,38 +63,35 @@ usage (void) int main (int argc, const char *argv[]) { - FILE *stream; - int numread; - TYPE buf[NELMTS]; - size_t i, nelmts = NELMTS; - char *fname=NULL; - - if (argc != 2) - { - usage(); - exit(1); - } - - fname = strdup(argv[1]); - - if( (stream = fopen(fname, "rb" )) != NULL ) - { - numread = fread( buf, sizeof( TYPE ), nelmts, stream ); - printf( "Number of items read = %d\n", numread ); - - for (i = 0; i < nelmts; i++) - { - printf(FORMAT,buf[i]); - } - printf("\n"); - - fclose( stream ); - } - else - printf( "File %s could not be opened\n",fname ); - - free(fname); - - return 0; + FILE *stream; + size_t numread; + TYPE buf[NELMTS]; + size_t i, nelmts = NELMTS; + char *fname=NULL; + + if (argc != 2) { + usage(); + exit(1); + } + + fname = strdup(argv[1]); + + if((stream = fopen(fname, "rb")) != NULL) { + numread = fread(buf, sizeof( TYPE ), nelmts, stream); + printf("Number of items read = %llu\n", (unsigned long long)numread); + + for (i = 0; i < nelmts; i++) { + printf(FORMAT,buf[i]); + } + printf("\n"); + + fclose(stream); + } + else + printf("File %s could not be opened\n", fname); + + free(fname); + + return 0; } diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 36f12a0..95f8091 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -436,8 +436,21 @@ TESTING() { # the actual output file is calculated by replacing the `.ddl' with # `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a # non-zero value. +# If $1 == ignorecase then do caseless CMP and DIFF. # ADD_H5_TEST TOOLTEST() { + # check if caseless compare and diff requested + if [ "$1" = ignorecase ]; then + caseless="-i" + # replace cmp with diff which runs much longer. + xCMP="$DIFF -i" + shift + else + caseless="" + # stick with faster cmp if ignorecase is not requested. + xCMP="$CMP" + fi + expect="$TESTDIR/$1" actual="$TESTDIR/`basename $1 .ddl`.out" actual_err="$TESTDIR/`basename $1 .ddl`.err" @@ -463,13 +476,13 @@ TOOLTEST() { # Create the expect file if it doesn't yet exist. echo " CREATED" cp $actual $expect - elif $CMP $expect $actual; then + elif $xCMP $expect $actual > /dev/null 2>&1 ; then echo " PASSED" else echo "*FAILED*" echo " Expected result (*.ddl) differs from actual result (*.out)" nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' + test yes = "$verbose" && $DIFF $caseless $expect $actual |sed 's/^/ /' fi # Clean up output file diff --git a/tools/h5dump/testh5dumpxml.sh.in b/tools/h5dump/testh5dumpxml.sh.in index 4dad9cd..1efde85 100644 --- a/tools/h5dump/testh5dumpxml.sh.in +++ b/tools/h5dump/testh5dumpxml.sh.in @@ -21,8 +21,6 @@ TESTNAME=h5dumpxml EXIT_SUCCESS=0 EXIT_FAILURE=1 -H5_LONE_COLON="@H5_LONE_COLON@" - DUMPER=h5dump # The tool name DUMPER_BIN=`pwd`/$DUMPER # The path of the tool binary @@ -356,15 +354,7 @@ TOOLTEST tnamed_dtype_attr.h5.xml --xml tnamed_dtype_attr.h5 TOOLTEST tempty-dtd.h5.xml --xml --use-dtd tempty.h5 TOOLTEST tempty-dtd-2.h5.xml --xml -u tempty.h5 - -# The lone colon here confuses some systems (Cray X1). Skip -# it if configure detects that this is a problem. -if test "X$H5_LONE_COLON" != "Xno"; then - TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5 -else - SKIP tempty-nons.h5.xml --xml -X ":" tempty.h5 -fi - +TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5 TOOLTEST tempty-nons-2.h5.xml --xml --xml-ns=":" tempty.h5 ## Some of these combinations are syntactically correct but diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt index 2ba2b78..bf1515e 100644 --- a/tools/h5import/CMakeLists.txt +++ b/tools/h5import/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c) TARGET_NAMING (h5import ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5import " " " ") +TARGET_C_PROPERTIES (h5import ${LIB_TYPE} " " " ") target_link_libraries (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) #set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT) set_target_properties (h5import PROPERTIES FOLDER tools) @@ -24,7 +24,7 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- add_executable (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c) TARGET_NAMING (h5importtest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5importtest " " " ") + TARGET_C_PROPERTIES (h5importtest ${LIB_TYPE} " " " ") target_link_libraries (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5importtest PROPERTIES FOLDER tools) diff --git a/tools/h5import/Makefile.in b/tools/h5import/Makefile.in index 01ec73b..0778fc2 100644 --- a/tools/h5import/Makefile.in +++ b/tools/h5import/Makefile.in @@ -414,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -446,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -470,11 +468,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -537,7 +533,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt index 412a2f0..4498132 100644 --- a/tools/h5jam/CMakeLists.txt +++ b/tools/h5jam/CMakeLists.txt @@ -11,25 +11,25 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c) TARGET_NAMING (h5jam ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5jam " " " ") +TARGET_C_PROPERTIES (h5jam ${LIB_TYPE} " " " ") target_link_libraries (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5jam PROPERTIES FOLDER tools) add_executable (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c) TARGET_NAMING (getub ${LIB_TYPE}) -TARGET_C_PROPERTIES (getub " " " ") +TARGET_C_PROPERTIES (getub ${LIB_TYPE} " " " ") target_link_libraries (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (getub PROPERTIES FOLDER tools) add_executable (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c) TARGET_NAMING (tellub ${LIB_TYPE}) -TARGET_C_PROPERTIES (tellub " " " ") +TARGET_C_PROPERTIES (tellub ${LIB_TYPE} " " " ") target_link_libraries (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (tellub PROPERTIES FOLDER tools) add_executable (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c) TARGET_NAMING (h5unjam ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5unjam " " " ") +TARGET_C_PROPERTIES (h5unjam ${LIB_TYPE} " " " ") target_link_libraries (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5unjam PROPERTIES FOLDER tools) @@ -47,7 +47,7 @@ if (BUILD_TESTING) if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c) TARGET_NAMING (h5jamgentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (testhdf5 " " " ") + TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ") target_link_libraries (h5jamgentest ${HDF5_LIB_TARGET}) set_target_properties (h5jamgentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5jam/Makefile.in b/tools/h5jam/Makefile.in index acf5a03..ed8151f 100644 --- a/tools/h5jam/Makefile.in +++ b/tools/h5jam/Makefile.in @@ -426,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -458,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -482,11 +480,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -549,7 +545,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt index 0d163ce..984b36b 100644 --- a/tools/h5ls/CMakeLists.txt +++ b/tools/h5ls/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) #----------------------------------------------------------------------------- add_executable (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c) TARGET_NAMING (h5ls ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5ls " " " ") +TARGET_C_PROPERTIES (h5ls ${LIB_TYPE} " " " ") target_link_libraries (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5ls PROPERTIES FOLDER tools) diff --git a/tools/h5ls/Makefile.in b/tools/h5ls/Makefile.in index d556d3d..c77784e 100644 --- a/tools/h5ls/Makefile.in +++ b/tools/h5ls/Makefile.in @@ -406,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -438,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -462,11 +460,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -529,7 +525,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index f6c3050..42d9f3d 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -22,7 +22,7 @@ set (REPACK_COMMON_SRCS add_executable (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c) TARGET_NAMING (h5repack ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5repack " " " ") +TARGET_C_PROPERTIES (h5repack ${LIB_TYPE} " " " ") target_link_libraries (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5repack PROPERTIES FOLDER tools) @@ -34,13 +34,13 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- add_executable (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c) TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE}) - TARGET_C_PROPERTIES (testh5repack_detect_szip " " " ") + TARGET_C_PROPERTIES (testh5repack_detect_szip ${LIB_TYPE} " " " ") target_link_libraries (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (testh5repack_detect_szip PROPERTIES FOLDER tools) add_executable (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c) TARGET_NAMING (h5repacktest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repacktest " " " ") + TARGET_C_PROPERTIES (h5repacktest ${LIB_TYPE} " " " ") target_link_libraries (h5repacktest ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5repacktest PROPERTIES FOLDER tools) @@ -54,12 +54,12 @@ if (BUILD_TESTING) add_definitions (${HDF_EXTRA_C_FLAGS}) INCLUDE_DIRECTORIES (${HDF5_SRC_DIR}) - add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${LIB_TYPE} dynlib_rpk.c) - TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} " " " ") + add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c) + TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ") target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) H5_SET_LIB_OPTIONS ( ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME} - ${LIB_TYPE} + SHARED HDF5_TOOL_PLUGIN_LIB_NAME_RELEASE HDF5_TOOL_PLUGIN_LIB_NAME_DEBUG ) diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake index 220c871..3391c3f 100644 --- a/tools/h5repack/CMakeTests.cmake +++ b/tools/h5repack/CMakeTests.cmake @@ -649,22 +649,6 @@ set (USE_FILTER_SZIP "true") endif (H5_HAVE_FILTER_SZIP) - if (H5_HAVE_FILTER_SHUFFLE) - set (USE_FILTER_SHUFFLE "true") - endif (H5_HAVE_FILTER_SHUFFLE) - - if (H5_HAVE_FILTER_FLETCHER32) - set (USE_FILTER_FLETCHER32 "true") - endif (H5_HAVE_FILTER_FLETCHER32) - - if (H5_HAVE_FILTER_NBIT) - set (USE_FILTER_NBIT "true") - endif (H5_HAVE_FILTER_NBIT) - - if (H5_HAVE_FILTER_SCALEOFFSET) - set (USE_FILTER_SCALEOFFSET "true") - endif (H5_HAVE_FILTER_SCALEOFFSET) - # copy files (these files have no filters) ADD_H5_TEST (fill "TEST" ${FILE0}) ADD_H5_TEST (objs "TEST" ${FILE1}) @@ -709,42 +693,26 @@ # shuffle with individual object set (arg ${FILE4} -f dset2:SHUF -l dset2:CHUNK=20x10) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_individual ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_individual "TEST" ${arg}) # shuffle for all set (arg ${FILE4} -f SHUF) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_all ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_all "TEST" ${arg}) # fletcher32 with individual object set (arg ${FILE4} -f dset2:FLET -l dset2:CHUNK=20x10) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_individual ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_individual "TEST" ${arg}) # fletcher32 for all set (arg ${FILE4} -f FLET) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_all ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_all "TEST" ${arg}) # all filters set (arg ${FILE4} -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10) set (TESTTYPE "TEST") - if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE) + if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE) + endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE) ADD_H5_TEST (all_filters ${TESTTYPE} ${arg}) # verbose gzip with individual object @@ -793,90 +761,50 @@ # shuffle copy set (arg ${FILE9}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_copy "TEST" ${arg}) # shuffle remove set (arg ${FILE9} -f dset_shuffle:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SHUFFLE) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SHUFFLE) - ADD_H5_TEST (shuffle_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (shuffle_remove "TEST" ${arg}) # fletcher32 copy set (arg ${FILE10}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_copy "TEST" ${arg}) # fletcher32 remove set (arg ${FILE10} -f dset_fletcher32:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32) - ADD_H5_TEST (fletcher_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (fletcher_remove "TEST" ${arg}) # nbit copy set (arg ${FILE12}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_copy "TEST" ${arg}) # nbit remove set (arg ${FILE12} -f dset_nbit:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_remove "TEST" ${arg}) # nbit add set (arg ${FILE12} -f dset_int31:NBIT) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_NBIT) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_NBIT) - ADD_H5_TEST (nbit_add ${TESTTYPE} ${arg}) + ADD_H5_TEST (nbit_add "TEST" ${arg}) # scaleoffset copy set (arg ${FILE13}) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_copy ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_copy "TEST" ${arg}) # scaleoffset add set (arg ${FILE13} -f dset_none:SOFF=31,IN) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_add ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_add "TEST" ${arg}) # scaleoffset remove set (arg ${FILE13} -f dset_scaleoffset:NONE) - set (TESTTYPE "TEST") - if (NOT USE_FILTER_SCALEOFFSET) - set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_SCALEOFFSET) - ADD_H5_TEST (scale_remove ${TESTTYPE} ${arg}) + ADD_H5_TEST (scale_remove "TEST" ${arg}) # remove all filters set (arg ${FILE11} -f NONE) set (TESTTYPE "TEST") - if (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET) + if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET) + endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER) ADD_H5_TEST (remove_all ${TESTTYPE} ${arg}) #filter conversions @@ -943,14 +871,14 @@ # Use first dset to test. #--------------------------------------------------------------------------- # chunk to chunk - specify chunk dim bigger than any current dim -ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300) + ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300) # chunk to contiguous -ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI) + ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI) # chunk to compact - convert big dataset (should be > 64k) for this purpose, # should remain as original layout (chunk) -ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA) + ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA) #-------------------------------------------------------------------------- # Test -f for some specific cases. Chunked dataset with unlimited max dims. @@ -960,16 +888,16 @@ ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUN # - should not change max dims from unlimit # chunk dim is bigger than dataset dim. ( dset size < 64k ) -ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE) + ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE) # chunk dim is bigger than dataset dim. ( dset size > 64k ) -ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE) + ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE) # chunk dims are smaller than dataset dims. ( dset size < 64k ) -ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE) + ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE) # file input - should not fail -ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) + ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) #-------------------------------------------------------------------------- # Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset @@ -977,9 +905,9 @@ ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) # (HDFFV-8214) #-------------------------------------------------------------------------- # chunk dim is bigger than dataset dim. should succeed. -ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI) + ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI) # chunk dim is smaller than dataset dim. should succeed. -ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI) + ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI) @@ -1008,9 +936,9 @@ ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CO # several global filters set (arg ${FILE4} --filter GZIP=1 --filter SHUF) set (TESTTYPE "TEST") - if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE) + if (NOT USE_FILTER_DEFLATE) set (TESTTYPE "SKIP") - endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE) + endif (NOT USE_FILTER_DEFLATE) ADD_H5_TEST (global_filters ${TESTTYPE} ${arg}) # syntax of -i infile -o outfile diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in index 43fe5c6..6d1bfd6 100644 --- a/tools/h5repack/Makefile.in +++ b/tools/h5repack/Makefile.in @@ -438,7 +438,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -470,7 +469,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -494,11 +492,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -561,7 +557,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in index e3bb939..4a32491 100644 --- a/tools/h5repack/h5repack.sh.in +++ b/tools/h5repack/h5repack.sh.in @@ -93,6 +93,8 @@ $SRC_H5REPACK_TESTFILES/h5repack_layouto.h5 $SRC_H5REPACK_TESTFILES/h5repack_layout2.h5 $SRC_H5REPACK_TESTFILES/h5repack_layout3.h5 $SRC_H5REPACK_TESTFILES/h5repack_named_dtypes.h5 +$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum.h5 +$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum_deflated.h5 $SRC_H5REPACK_TESTFILES/h5repack_nbit.h5 $SRC_H5REPACK_TESTFILES/h5repack_objs.h5 $SRC_H5REPACK_TESTFILES/h5repack_refs.h5 @@ -701,6 +703,12 @@ TOOLTEST hlink h5repack_hlink.h5 TOOLTEST layout h5repack_layout.h5 TOOLTEST early h5repack_early.h5 +# nested 8bit enum in both deflated and non-deflated datafiles +if [ $USE_FILTER_DEFLATE != "yes" ]; then +TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum.h5 +else +TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum_deflated.h5 +fi # use h5repack_layout.h5 to write some filters (this file has no filters) diff --git a/tools/h5repack/testfiles/README b/tools/h5repack/testfiles/README new file mode 100644 index 0000000..4096dee --- /dev/null +++ b/tools/h5repack/testfiles/README @@ -0,0 +1,5 @@ +h5repack_nested_8bit_enum_deflated.h5: +h5repack_nested_8bit_enum.h5: + enuberated 8bit type nested in compount type. Original file provided + by a user (HDFFV-8667) as a test file. Used h5copy to extract only the + Compound type dataset. The non-deflated version is produced by h5repack. diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 new file mode 100644 index 0000000..f1bd8e9 Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 differ diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 new file mode 100644 index 0000000..2e66da2 Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 differ diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt index 2969405..5230693 100644 --- a/tools/h5stat/CMakeLists.txt +++ b/tools/h5stat/CMakeLists.txt @@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) # -------------------------------------------------------------------- add_executable (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c) TARGET_NAMING (h5stat ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5stat " " " ") +TARGET_C_PROPERTIES (h5stat ${LIB_TYPE} " " " ") target_link_libraries (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5stat PROPERTIES FOLDER tools) @@ -23,8 +23,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c) - TARGET_NAMING (h5stat_gentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5stat_gentest " " " ") + TARGET_NAMING (h5stat_gentest STATIC) + TARGET_C_PROPERTIES (h5stat_gentest STATIC " " " ") target_link_libraries (h5stat_gentest ${HDF5_LIB_TARGET}) set_target_properties (h5stat_gentest PROPERTIES FOLDER generator/tools) diff --git a/tools/h5stat/Makefile.in b/tools/h5stat/Makefile.in index bfad3ad..1bbefe9 100644 --- a/tools/h5stat/Makefile.in +++ b/tools/h5stat/Makefile.in @@ -416,7 +416,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -448,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -472,11 +470,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -539,7 +535,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index 35ad46e..dbd72cd 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -38,14 +38,14 @@ set (H5_TOOLS_LIB_HDRS ) add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS}) -TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} " " " ") +TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} " " " ") target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}") H5_SET_LIB_OPTIONS ( ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} ${LIB_TYPE} HDF5_TOOLS_LIB_NAME_RELEASE - HDF5_TOOLS_LIB_NAME_DEBUG + HDF5_TOOLS_LIB_NAME_DEBUG ) #set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES COMPILE_DEFINITIONS H5DIFF_DEBUG) set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES diff --git a/tools/lib/Makefile.in b/tools/lib/Makefile.in index c972bab..0b531b3 100644 --- a/tools/lib/Makefile.in +++ b/tools/lib/Makefile.in @@ -403,7 +403,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -435,7 +434,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -459,11 +457,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -526,7 +522,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c index eb52bc5..4def001 100644 --- a/tools/lib/h5tools_str.c +++ b/tools/lib/h5tools_str.c @@ -164,11 +164,7 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...) * to lack of buffer size, so try one more time after realloc more * buffer size before return NULL. */ - if (nchars < 0 -#ifndef H5_VSNPRINTF_WORKS - && (HDstrlen(str->s) < str->nalloc) -#endif - ) { + if (nchars < 0) { /* failure, such as bad format */ return NULL; } diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c index d7c5adb..fc8cf1d 100644 --- a/tools/lib/h5tools_utils.c +++ b/tools/lib/h5tools_utils.c @@ -89,28 +89,11 @@ void parallel_print(const char* format, ...) HDvprintf(format, ap); else { if(overflow_file == NULL) /*no overflow has occurred yet */ { -#if 0 - printf("calling HDvsnprintf: OUTBUFF_SIZE=%ld, outBuffOffset=%ld, ", (long)OUTBUFF_SIZE, (long)outBuffOffset); -#endif bytes_written = HDvsnprintf(outBuff+outBuffOffset, OUTBUFF_SIZE-outBuffOffset, format, ap); -#if 0 - printf("bytes_written=%ld\n", (long)bytes_written); -#endif HDva_end(ap); HDva_start(ap, format); -#if 0 - printf("Result: bytes_written=%ld, OUTBUFF_SIZE-outBuffOffset=%ld\n", (long)bytes_written, (long)OUTBUFF_SIZE-outBuffOffset); -#endif - - if ((bytes_written < 0) || -#ifdef H5_VSNPRINTF_WORKS - (bytes_written >= (OUTBUFF_SIZE-outBuffOffset)) -#else - ((bytes_written+1) == (OUTBUFF_SIZE-outBuffOffset)) -#endif - ) - { + if((bytes_written < 0) || (bytes_written >= (OUTBUFF_SIZE - outBuffOffset))) { /* Terminate the outbuff at the end of the previous output */ outBuff[outBuffOffset] = '\0'; diff --git a/tools/lib/h5tools_utils.h b/tools/lib/h5tools_utils.h index 3285278..fd588b9 100644 --- a/tools/lib/h5tools_utils.h +++ b/tools/lib/h5tools_utils.h @@ -124,9 +124,9 @@ H5TOOLS_DLLVAR int h5tools_nCols; /*max number of columns for /* Definitions of useful routines */ H5TOOLS_DLL void indentation(int); H5TOOLS_DLL void print_version(const char *progname); -H5TOOLS_DLL void parallel_print(const char* format, ... ); -H5TOOLS_DLL void error_msg(const char *fmt, ...); -H5TOOLS_DLL void warn_msg(const char *fmt, ...); +H5TOOLS_DLL void parallel_print(const char* format, ... )__attribute__((format (printf, 1, 2))); +H5TOOLS_DLL void error_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2))); +H5TOOLS_DLL void warn_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2))); H5TOOLS_DLL void help_ref_msg(FILE *output); H5TOOLS_DLL void free_table(table_t *table); #ifdef H5DUMP_DEBUG diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt index 932948d..e0f94d0 100644 --- a/tools/misc/CMakeLists.txt +++ b/tools/misc/CMakeLists.txt @@ -12,19 +12,19 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib) #-- Misc Executables add_executable (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c) TARGET_NAMING (h5debug ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5debug " " " ") +TARGET_C_PROPERTIES (h5debug ${LIB_TYPE} " " " ") target_link_libraries (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5debug PROPERTIES FOLDER tools) add_executable (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c) TARGET_NAMING (h5repart ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5repart " " " ") +TARGET_C_PROPERTIES (h5repart ${LIB_TYPE} " " " ") target_link_libraries (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart PROPERTIES FOLDER tools) add_executable (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c) TARGET_NAMING (h5mkgrp ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5mkgrp " " " ") +TARGET_C_PROPERTIES (h5mkgrp ${LIB_TYPE} " " " ") target_link_libraries (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (h5mkgrp PROPERTIES FOLDER tools) @@ -47,8 +47,8 @@ if (BUILD_TESTING) # -------------------------------------------------------------------- if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) add_executable (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c) - TARGET_NAMING (h5repart_gentest ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repart_gentest " " " ") + TARGET_NAMING (h5repart_gentest STATIC) + TARGET_C_PROPERTIES (h5repart_gentest STATIC " " " ") target_link_libraries (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart_gentest PROPERTIES FOLDER generator/tools) #add_test (NAME h5repart_gentest COMMAND $) @@ -56,7 +56,7 @@ if (BUILD_TESTING) add_executable (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c) TARGET_NAMING (h5repart_test ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5repart_test " " " ") + TARGET_C_PROPERTIES (h5repart_test ${LIB_TYPE} " " " ") target_link_libraries (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5repart_test PROPERTIES FOLDER tools) diff --git a/tools/misc/Makefile.in b/tools/misc/Makefile.in index 623bc8d..1b8e0eb 100644 --- a/tools/misc/Makefile.in +++ b/tools/misc/Makefile.in @@ -441,7 +441,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -473,7 +472,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -497,11 +495,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -564,7 +560,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ diff --git a/tools/misc/h5cc.in b/tools/misc/h5cc.in index da1a26d..cabd83f 100644 --- a/tools/misc/h5cc.in +++ b/tools/misc/h5cc.in @@ -347,7 +347,7 @@ if test "x$do_link" = "xyes"; then hpux*) flag="-Wl,+b -Wl," ;; freebsd*|solaris*) flag="-R" ;; rs6000*|aix*) flag="-L" ;; - irix*|sgi) flag="-rpath " ;; + sgi) flag="-rpath " ;; *) flag="" ;; esac diff --git a/tools/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt index e6abf7f..17b40fa 100644 --- a/tools/perform/CMakeLists.txt +++ b/tools/perform/CMakeLists.txt @@ -22,7 +22,7 @@ set (h5perf_serial_SRCS ) add_executable (h5perf_serial ${h5perf_serial_SRCS}) TARGET_NAMING (h5perf_serial ${LIB_TYPE}) -TARGET_C_PROPERTIES (h5perf_serial " " " ") +TARGET_C_PROPERTIES (h5perf_serial ${LIB_TYPE} " " " ") target_link_libraries (h5perf_serial ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5perf_serial PROPERTIES FOLDER perform) @@ -33,13 +33,13 @@ if (HDF5_BUILD_PERFORM_STANDALONE) ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c ) add_executable (h5perf_serial_alone ${h5perf_serial_alone_SRCS}) - set_property (TARGET h5perf_serial_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf_serial_alone " " " ") + TARGET_C_PROPERTIES (h5perf_serial_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (h5perf_serial_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_serial_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) #-- Adding test for chunk @@ -48,7 +48,7 @@ set (chunk_SRCS ) ADD_EXECUTABLE(chunk ${chunk_SRCS}) TARGET_NAMING (chunk ${LIB_TYPE}) -TARGET_C_PROPERTIES (chunk " " " ") +TARGET_C_PROPERTIES (chunk ${LIB_TYPE} " " " ") TARGET_LINK_LIBRARIES(chunk ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (chunk PROPERTIES FOLDER perform) @@ -58,7 +58,7 @@ set (iopipe_SRCS ) add_executable (iopipe ${iopipe_SRCS}) TARGET_NAMING (iopipe ${LIB_TYPE}) -TARGET_C_PROPERTIES (iopipe " " " ") +TARGET_C_PROPERTIES (iopipe ${LIB_TYPE} " " " ") target_link_libraries (iopipe ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (iopipe PROPERTIES FOLDER perform) @@ -68,7 +68,7 @@ set (overhead_SRCS ) add_executable (overhead ${overhead_SRCS}) TARGET_NAMING (overhead ${LIB_TYPE}) -TARGET_C_PROPERTIES (overhead " " " ") +TARGET_C_PROPERTIES (overhead ${LIB_TYPE} " " " ") target_link_libraries (overhead ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET}) set_target_properties (overhead PROPERTIES FOLDER perform) @@ -79,7 +79,7 @@ if (BUILD_TESTING) ) add_executable (perf_meta ${perf_meta_SRCS}) TARGET_NAMING (perf_meta ${LIB_TYPE}) - TARGET_C_PROPERTIES (perf_meta " " " ") + TARGET_C_PROPERTIES (perf_meta ${LIB_TYPE} " " " ") target_link_libraries (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (perf_meta PROPERTIES FOLDER perform) endif (BUILD_TESTING) @@ -90,7 +90,7 @@ set (zip_perf_SRCS ) add_executable (zip_perf ${zip_perf_SRCS}) TARGET_NAMING (zip_perf ${LIB_TYPE}) -TARGET_C_PROPERTIES (zip_perf " " " ") +TARGET_C_PROPERTIES (zip_perf ${LIB_TYPE} " " " ") target_link_libraries (zip_perf ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET}) set_target_properties (zip_perf PROPERTIES FOLDER perform) @@ -102,7 +102,7 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING) ) add_executable (h5perf ${h5perf_SRCS}) TARGET_NAMING (h5perf ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf " " " ") + TARGET_C_PROPERTIES (h5perf ${LIB_TYPE} " " " ") target_link_libraries (h5perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5perf PROPERTIES FOLDER perform) @@ -113,13 +113,13 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING) ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c ) add_executable (h5perf_alone ${h5perf_alone_SRCS}) - set_property (TARGET h5perf_alone - APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE - ) TARGET_NAMING (h5perf_alone ${LIB_TYPE}) - TARGET_C_PROPERTIES (h5perf_alone " " " ") + TARGET_C_PROPERTIES (h5perf_alone ${LIB_TYPE} " " " ") target_link_libraries (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) set_target_properties (h5perf_alone PROPERTIES FOLDER perform) + set_property (TARGET h5perf_alone + APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE + ) endif (HDF5_BUILD_PERFORM_STANDALONE) endif (H5_HAVE_PARALLEL AND BUILD_TESTING) diff --git a/tools/perform/Makefile.in b/tools/perform/Makefile.in index d28f307..325bc4d 100644 --- a/tools/perform/Makefile.in +++ b/tools/perform/Makefile.in @@ -445,7 +445,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -477,7 +476,6 @@ DIRECT_VFD = @DIRECT_VFD@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ -DYNAMIC_DIRS = @DYNAMIC_DIRS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -501,11 +499,9 @@ GREP = @GREP@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ -H5_CXX_SHARED = @H5_CXX_SHARED@ H5_FCFLAGS = @H5_FCFLAGS@ H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@ H5_LDFLAGS = @H5_LDFLAGS@ -H5_LONE_COLON = @H5_LONE_COLON@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ @@ -568,7 +564,6 @@ R_INTEGER = @R_INTEGER@ R_LARGE = @R_LARGE@ SEARCH = @SEARCH@ SED = @SED@ -SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIZE_T = @SIZE_T@ -- cgit v0.12