HDF5 broken on Queen Bee

Issue #1823 closed
Erik Schnetter created an issue

I see this output when building on Queen Bee with Simfactory's options:

CST error 1:
  -> Configuration script for thorn HDF5 returned exit code 1
     Error message: 'ERROR in HDF5 configuration:
H5pubconf.h not found in /work/eschnett/Cvanilla/configs/sim-debug/scratch/external/HDF5/lib /work/eschnett/Cvanilla/configs/sim-debug/scratch/externa\
l/HDF5/include /work/eschnett/Cvanilla/configs/sim-debug/scratch/external/HDF5/lib'

Additional requested language support:  Fortran
HDF5 selected, but HDF5_DIR not set. Checking pkg-config ...
HDF5 not found. Checking standard paths ...
HDF5 not found.
Using bundled HDF5...
ERROR: ERROR in HDF5 configuration:
ERROR: H5pubconf.h not found in /work/eschnett/Cvanilla/configs/sim-debug/scratch/external/HDF5/lib /work/eschnett/Cvanilla/configs/sim-debug/scratch/\
external/HDF5/include /work/eschnett/Cvanilla/configs/sim-debug/scratch/external/HDF5/lib
Finished running configuration script for thorn HDF5.

Keyword: confirmed

Comments (15)

  1. Frank Löffler
    • removed comment

    For reference: cases to be tested: - HDF5_DIR not specified, and usable system library present -> find and use - HDF5_DIR not specified, and usable system library not present -> build own and use that - HDF5_DIR set to BUILD -> build and use that, regardless of system libraries - HDF5_DIR set to specific location (anything else than BUILD) -> test that location (see if library is really there) - if yes: use that - if no: error out (or look for other usable library first?)

  2. Roland Haas
    • removed comment

    Replying to [comment:3 knarf]:

    For reference: cases to be tested: - HDF5_DIR not specified, and usable system library present -> find and use - HDF5_DIR not specified, and usable system library not present -> build own and use that - HDF5_DIR set to BUILD -> build and use that, regardless of system libraries - HDF5_DIR set to specific location (anything else than BUILD) -> test that location (see if library is really there) - if yes: use that - if no: error out (or look for other usable library first?)

    There is an important case missing: everything is specified explictly via HDF5_LIB_DIRS HDF5_INC_DIRS HDF5_LIBS (ie the "manual" option). This may or may not be triggered by setting HDF5_DIR to a special value, though right now I believe this is not required (may be nice though).

  3. Frank Löffler
    • removed comment

    In my understanding, HDF5_DIR has to be set (and not to BUILD) for the other variables to be used (if set), and I implemented it that way.

  4. Frank Löffler
    • changed status to resolved
    • removed comment

    Closing the ticket as it now works on queenbee (and should everywhere if nothing was specified and nothing was found).

  5. Erik Schnetter reporter
    • removed comment

    In addition to a directory or {BUILD}, the directory can also be set to {NO_BUILD}.

  6. Erik Schnetter reporter
    • removed comment

    If {HDF5_DIR} is set to a directory, then no special testing takes place. Presumably the user knows what he/she is doing. If you want to test, then the result of the test should be a warning at most. The result of such a test should not (read: currently does not, and thing may break if this is changed) influence what happens.

    {HDF5_INCLUDE_DIRS} can be set explicitly and override what would be deduced from {HDF5_DIR}.

  7. Erik Schnetter reporter
    • removed comment

    For the record: I see Edison, Mike and Stampede broken as well. Frank, you should have access to Mike and Stampede for testing.

  8. Frank Löffler
    • removed comment

    I did test on Mike and Stampede, but recent changes might have changed something. Rerunning now.

  9. Roland Haas
    • removed comment

    I believe that with Debian/Ubuntu and their multi-arch features the replacement

    HDF5_LIB_DIRS="${HDF5_DIR}/lib"
    

    can no longer be used and instead one has to use

    HDF5_LIB_DIRS="${HDF5_DIR}/$(gcc -dumpmachine)/lib"
    

    (see https://trac.einsteintoolkit.org/attachment/ticket/1769/hdf5_dumpmachine.patch) which of course assumes that (a) gcc exists and (b) will break on "normal" non-multiarch OS (ie OSX and older or non-Debian based Linux).

    It ''may'' be useful to still check that the given directory exists and/or that libhdf5 is found in there. Otherwise the linker will silently fall back to a possibly existing system HDF5 library. This is strictly and ''extra'' though since the current code certainly does not do so.

  10. Frank Löffler
    • removed comment

    Debian/Ubuntu use pkg-config for their libraries, so that we don't need to check for these paths at all - we can just ask for them.

  11. Frank Löffler
    • removed comment

    Replying to [comment:9 eschnett]:

    For the record: I see Edison, Mike and Stampede broken as well. Frank, you should have access to Mike and Stampede for testing.

    Please attach a log of your build errors on Mike and Stampede, and even Edison. Both build fine for me (the bundled version, as requested in the option lists.)

  12. Frank Löffler
    • removed comment

    Replying to [comment:9 eschnett]:

    For the record: I see Edison, Mike and Stampede broken as well. Frank, you should have access to Mike and Stampede for testing.

    Can you please upload build logs? I see Mike and Stampede building the bundled versions as they should.

  13. Log in to comment