40 Commits
Author SHA1 Message Date
Scot Breitenfeld d8ec63966c Fix segfault in ph5_f90_filtered_writes_no_sel example: swap inverted mem_space_id (#6633)
The Fortran example set sel_type = H5S_BLOCK_F on the branch where a rank
calls H5Sselect_none (no data to contribute) and H5S_ALL_F on the branch
where a rank sets a real hyperslab, which is backwards. The equivalent C
example (ph5_filtered_writes_no_sel.c) does the opposite:

    H5Dwrite(..., no_selection ? H5S_ALL : H5S_BLOCK, ...);

i.e. H5S_ALL when there is no selection (mirrors the file dataspace's own
empty selection) and H5S_BLOCK when a hyperslab was set (memory buffer
matches the block shape of the file selection).

With the inversion, H5Dwrite_f feeds a bogus selection into the collective
filtered I/O path, corrupting the element/byte-length accounting in
H5D__mpio_collective_filtered_chunk_update, which segfaults inside
H5D_select_io_mem -> H5VM_memcpyvv on 12 MPI ranks. Reproduces on current
develop; the bug has been present since the example was added in #3916.
2026-08-25 12:07:04 -05:00
jhendersonHDF 3f4d26f90a Skip some parallel example tests for small MPIEXEC_MAX_NUMPROCS values (#6224) 2026-02-23 14:57:10 -06:00
Julien Schueller d58638be09 CMake: Fix Fortran cross-compilation support
Refactor the cross-compilation infrastructure to rely on the standard
CMAKE_CROSSCOMPILING_EMULATOR variable instead of the custom
CROSSCOMPILING_PATH environment hack.

Key changes:
- Removed `ENVIRONMENT "${CROSSCOMPILING_PATH}"` from all test definitions.
- Updated custom commands (e.g., H5match_types, H5_gen) to invoke the
  emulator explicitly when cross-compiling.
- Updated ConfigureChecks.cmake and HDF5UseFortran.cmake to enable
  `try_run` checks when an emulator is defined.
- Added config/toolchain/mingw-w64-x86-64-wine.sh wrapper to automatically
  locate MinGW runtime libraries (like libgfortran) for Wine execution.
- Cleaned up toolchain files to remove hardcoded emulator paths, deferring
  configuration to the build environment.
2026-02-13 14:45:02 -06:00
Scot Breitenfeld 49ae2f225a Updates to #6205 (#6208)
* Fix MPI Fortran configuration for HDF5Examples (#6205)

When building Fortran parallel examples standalone without MPI
wrappers, the compiler cannot find mpi.mod because
MPI_Fortran_INCLUDE_DIRS is not populated.

* Use MPI::MPI_Fortran imported target instead of raw MPI variables

Replace manual MPI_Fortran_LIBRARIES, MPI_Fortran_LINK_FLAGS, and
MPI_Fortran_INCLUDE_DIRS usage with the MPI::MPI_Fortran imported
target, which transitively carries all include dirs, compile flags,
and link flags. This eliminates the CMAKE_Fortran_EXE_LINKER_FLAGS
hack and the manual target_include_directories in H5PAR.
2026-02-12 14:10:39 -06:00
Allen Byrne fb35cde24a Rework Fortran configure to allow cross compile overrides (#5720)
Behavior:
Modify HDF5UseFortran.cmake to handle cross-compilation by providing default KINDs and sizes when CMAKE_CROSSCOMPILING is true.
Default values for INTEGER and REAL KINDs and their sizes are set when cross-compiling.
Error messages are adjusted to reflect cross-compilation scenarios.
Logic:
Conditional checks added for CMAKE_CROSSCOMPILING to determine if default values should be used.
Default values include INTEGER KINDs {1,2,4,8,16} and REAL KINDs {4,8,10,16}.
Default sizes for native kinds are set to 4 for INTEGER and REAL, and 8 for DOUBLE PRECISION when cross-compiling.
Misc:
Adjustments to verbose messages to indicate when defaults are used during cross-compilation.
2025-10-12 17:30:46 -05:00
Allen Byrne 701b46daed Rename the HDF5Examples build option prefix (#5906)
Renamed all HDF5 examples build options from H5EX_* to H5EXAMPLE_* to better distinguish them from library options when building examples alongside the library.

Updated all CMake files, including:
Main examples CMakeLists.txt files
CMake configuration files in config/ directory
CMake preset files
Updated documentation files to reflect new option names
2025-10-08 15:53:44 -05:00
H. Joe Lee c38b148052 chore: improve comment consistency (#5879)
Add a space and capitalize.
2025-09-26 13:45:33 -05:00
Allen Byrne 05ce57609c Rename the install config variables to indicate library state (#5716)
This update systematically renames variables across 2.0+ CMake files in the HDF5Examples directory and configuration templates. The goal is to change variables from sounding like build "options" (e.g., HDF5_BUILD_TOOLS, HDF5_ENABLE_PARALLEL) to reflecting library "state" (e.g., what features the installed library provides).
2025-08-28 10:06:37 -05:00
Allen Byrne 63803d7115 allow better CMake version testing (#5727)
* add cmake latest workflow with lukka/get-cmake@latest
* Upgrade minimum CMake version to 3.26
2025-08-23 06:43:20 -05:00
jhendersonHDF 4a12cfec19 Align CMake compiler wrappers with old Autotools versions (#5649)
Implemented missing --help/-h, -c, -echo and -shlib/-noshlib options

Added new -nohl option to avoid building and linking against
high-level HDF5 libraries if desired

Implemented adding of HDF5 installation library directory to rpath of
resulting executable/library and added new -norpath option to avoid
this behavior if desired

Added parsing of HDF5_USE_SHLIB environment variable to determine
whether to link against shared or static HDF5 libraries

Added parsing of HDF5_PKG_CONFIG_ARGS environment variable to separate
pkg-config-specific options from compiler-specific options and prevent
conflicts
2025-07-28 07:42:52 -05:00
Allen Byrne 968cc9dd44 Add script to test examples with h5*cc pkg-config wrappers (#5486) 2025-07-16 13:57:43 -05:00
jhendersonHDF 51dd7758fe Fix resource leak in Subfiling example programs and tests (#5617) 2025-06-20 06:54:37 -05:00
Allen Byrne d6ca8411de Correct name of CMake option to HDF5_ENABLE_DEPRECATED_SYMBOLS (#5587) 2025-06-12 18:47:01 -05:00
Allen Byrne 4cc7161fc2 refactor run scripts to a single macros with includes (#5538)
* Refactor the CMake scripts into a single script
* Adjust args to do grep testing
2025-05-24 16:26:46 -05:00
Allen Byrne 1602e1fbfe Remove autotools files and docs (#5358) 2025-03-14 13:28:44 -05:00
Allen Byrne d09ea66934 Rename HDF5_ENABLE_Z_LIB_SUPPORT to HDF5_ENABLE_ZLIB_SUPPORT (#5074) 2024-11-05 15:59:28 -06:00
Allen Byrne ad3ea2633a Move hl example into HDF5Examples (#5057) 2024-11-04 05:22:27 -08:00
Allen Byrne 5425a571e0 Convert develop to v2.0.0 (#5006)
Switches previous 1.16/17/18 values to 2.0
2024-10-27 21:51:07 -07:00
Dana Robinson 7f1e49206d Renamed COPYING to LICENSE (#4978)
This is where most people will expect to find license information. The
COPYING_LBNL_HDF5 file has also been renamed to LICENSE_LBNL_HDF5.
The licenses are unchanged.
2024-10-18 21:13:04 -07:00
Allen Byrne 5e94301e71 Add THREADS check to configuration file (#4746)
* Cleanup threads package checks

* Check first if package was found

* Remove unnecessary dependent checks

* Remove Unused options and fix names of option prefix
2024-09-07 20:45:12 -05:00
Larry Knox f54abf7032 Remove outdated line from Copyright header in new files. (#4676) 2024-07-29 12:57:36 -05:00
Allen Byrne 6fa09bdb15 Add h5* compiler wrapper testing for CMake #4605 (#4613)
* Add show option

* remove non-static libs and correct names of static libs

* Fixup the pkg-config libs and comp builds

* Fix commands and add fortran pkg-config test scripts

* Add help usage option
2024-07-15 10:16:16 -05:00
Allen Byrne dca6370691 Move C++ and Fortran and examples to HDF5Examples folder (#4552) 2024-06-08 06:46:09 -05:00
Allen Byrne 69a4e7d68f Correct examples tests to just run under dynamic analysis (#4505) 2024-05-21 07:48:47 -07:00
Allen Byrne 9148f7c563 Prepend MPI_TEST_ to parallel example test names (#4306) 2024-04-02 13:01:02 -05:00
Scot Breitenfeld 6837fe5bc8 Addressed Fortran issues with promoted integers and reals via compilation flags, part 2 (#4221)
* addressed issue wit promoted integers and reals

* fixed h5fcreate_f

* added option to use mpi_f08

* change the kind of logical in the parallel tests

* addressed missing return value from callback
2024-03-25 07:42:03 -05:00
Scot Breitenfeld c1a56f432e Revert "Addressed Fortran issues with promoted integers and reals via compil…" (#4220)
This reverts commit 06c42ff038.
2024-03-23 07:16:43 -07:00
bmribler 62a905ae4a Fix URLs (#4210)
Also removed Copyright.html context because it's no longer valid.
2024-03-22 12:06:09 -05:00
Scot Breitenfeld 06c42ff038 Addressed Fortran issues with promoted integers and reals via compilation flags (#4209)
* addressed issue wit promoted integers and reals

* added option to use mpi_f08
2024-03-22 11:52:58 -05:00
Dana Robinson 0ea1d7280b Clean up off_t usage (#4095)
* Add comments to C++ and Fortran API calls that use off_t
* Remove noise casts for small integers
2024-03-09 09:06:10 -08:00
Christoph Niethammer f1e8f42b5a Replace deprecated Fortran 'include mpif.h' with 'USE mpi' (#4031)
With MPI 4.1 the use of the mpif.h include file has been deprecated. Codes
should transition to USE mpi or USE mpi_f08.

Signed-off-by: Christoph Niethammer <niethammer@hlrs.de>
2024-02-21 14:04:38 -06:00
Scot Breitenfeld 6e42618f53 Fixed spacing issues in example tests. (#3979)
* The space difference in the Fortran examples must be fixed to match the expected output for compression filter examples.
2024-02-01 23:42:58 -06:00
Larry Knox bca1dc10a3 Replace 'T2' with ' ' to avoid failure to match expected output due to (#3975)
system tab difference.
2024-01-31 15:49:25 -06:00
Allen Byrne 45ac12e6b6 Explicitly use PROJECT_BINARY_DIR in target copy location (#3974) 2024-01-30 16:21:21 -06:00
Allen Byrne a00d62f77a Use props for includes and remove global includes (#3921) 2024-01-04 12:06:36 -06:00
Scot Breitenfeld 8f1a93f1a2 New Fortran Examples added (#3916)
* added subfiling example

* Added filtered writes with no selection example
2024-01-03 10:55:17 -06:00
Scot Breitenfeld 695efa94df Added new H5G Fortran HDF5examples (#3908)
* updated traverse example

* added H5PAR success statement

* skipping H5_f90_h5ex_g_traverse
2023-12-22 15:57:16 -06:00
Allen Byrne aa734a5d7e Add VDS examples and fix non-standalone build (#3898)
* Choose a size for rdata dimension

* Fix platform naming conflicts

* Fix doxygen references to point within library repo
2023-12-21 09:53:24 -06:00
Allen Byrne 6f2d22d86e Add variable option syncing for examples (#3885) 2023-12-14 12:50:30 -06:00
Allen Byrne fc88fcde10 Develop merge examples (#3851)
* Merge examples repo into library

* Change grepTest to be more fault-tolerant

* Update examples macro file

* Exclude all Fortran examples from doxygen
2023-11-27 15:30:15 -06:00