Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make gives type error in array_interface.cpp, does not compile #28

Open
bfield1 opened this issue Nov 14, 2024 · 2 comments
Open

make gives type error in array_interface.cpp, does not compile #28

bfield1 opened this issue Nov 14, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@bfield1
Copy link

bfield1 commented Nov 14, 2024

Description

I am attempting to install h5 as a user on the supercomputing cluster I'm on.
I have done my best to follow the instructions and ensure the various dependencies are available.
However, when I get to the make step, the compilation fails in array_interface.cpp, spewing out a bunch of errors complaining that we have mismatched types between long unsigned int* and hsize_t* (a.k.a. long long unsigned int).

Here's the first few lines of the error log. The rest is the same, spitting out every instance of this same error.

/global/home/users/bfield/groups-sw/bfield/h5/h5.src/c++/h5/array_interface.cpp: In function 'h5::dataspace h5::array_interface::{anonymous}::make_mem_dspace(const h5::array_interface::array_view&)':
/global/home/users/bfield/groups-sw/bfield/h5/h5.src/c++/h5/array_interface.cpp:46:77: error: invalid conversion from 'const long unsigned int*' to 'const hsize_t*' {aka 'const long long unsigned int*'} -fpermissive]
   46 |       dataspace dspace = H5Screate_simple(v.slab.rank(), v.parent_shape.data(), nullptr);
      |                                                          ~~~~~~~~~~~~~~~~~~~^~
      |                                                                             |
      |                                                                             const long unsigned int*
In file included from /global/software/rocky-8.x86_64/manual/modules/langs/anaconda3/2024.02-1/include/hdf5.h:38,
                 from /global/home/users/bfield/groups-sw/bfield/h5/h5.src/c++/h5/array_interface.cpp:26:
/global/software/rocky-8.x86_64/manual/modules/langs/anaconda3/2024.02-1/include/H5Spublic.h:297:55: note:   initializing argument 2 of 'hid_t H5Screate_simple(int, const hsize_t*, const hsize_t*)'
  297 | H5_DLL hid_t H5Screate_simple(int rank, const hsize_t dims[], const hsize_t maxdims[]);
      |                                         ~~~~~~~~~~~~~~^~~~~~
/global/home/users/bfield/groups-sw/bfield/h5/h5.src/c++/h5/array_interface.cpp:50:82: error: invalid conversion from 'const long unsigned int*' to 'const hsize_t*' {aka 'const long long unsigned int*'} -fpermissive]
   50 |       herr_t err = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, v.slab.offset.data(), v.slab.stride.data(), v.slab.count.data(),
      |                                                                ~~~~~~~~~~~~~~~~~~^~
      |                                                                                  |
      |                                                                                  const long unsigned int*
/global/software/rocky-8.x86_64/manual/modules/langs/anaconda3/2024.02-1/include/H5Spublic.h:1181:83: note:   initializing argument 3 of 'herr_t H5Sselect_hyperslab(hid_t, H5S_seloper_t, const hsize_t*, const hsize_t*, const hsize_t*, const hsize_t*)'
 1181 | H5_DLL herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op, const hsize_t start[],
      |                                                                     ~~~~~~~~~~~~~~^~~~~~~

Is there some configuration step or flag I'm missing? Some version incompatibility between the dependencies? Is this a bug that needs to be addressed in the source code or the makefiles?

Versions

I am compiling from h5 1.3.0, git hash 18c560f.

It is in the directory h5.src.

I run cmake in the directory h5.build, and tell it to install in h5.install (which is present but empty).
cmake ../h5.src -DCMAKE_INSTALL_PREFIX=/global/home/groups-sw/nano/bfield/h5/h5.install/ -DBuild_Documentation=ON -DCMAKE_BUILD_TYPE=Debug

The output of cmake is below. It prints out the versions of things automagically detected by the make system.

-- The CXX compiler identification is GNU 13.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /global/software/rocky-8.x86_64/gcc/linux-rocky8-x86_64/gcc-8.5.0/gcc-13.2.0-utdynkvgasyrbya2p7eug6257talnpgc/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- h5 version : 1.3.0
-- h5 Git hash: 18c560f0595cf3f11e9536cfdc6e3aff0bd23cf1
-- -------- CMAKE_INSTALL_PREFIX: /global/home/users/bfield/groups-sw/bfield/h5/h5.install --------
-- -------- BUILD-TYPE: Debug --------
--  =============== Configuring Dependency Cpp2Py =============== 
-- Found Git: /usr/bin/git (found version "2.43.5") 
-- -------- BUILD-TYPE: Debug -------------
-- Installation directory will be /global/home/users/bfield/groups-sw/bfield/h5/h5.install
-- -------- cpp2py version and git hash detection -------------
-- Cpp2py version : 2.0.0
-- Git hash : ce58a54976d5a415a3e4fb59301cf78ecd09b5ff
-- -------- LibClang detection -------------
-- Can not find the Clang compiler, hence can not find the option for libclang
-- Could NOT find LibClang (missing: LIBCLANG_CXX_FLAGS) 
-- LibClang location: /global/home/users/bfield/.conda/envs/triqs/lib/libclang.so
-- LibClang additional flags: 
-- -------- Python detection -------------
-- Found Python: /global/home/users/bfield/.conda/envs/triqs/bin/python3.13 (found version "3.13.0") found components: Interpreter Development.Module NumPy 
-- Python_INCLUDE_DIRS: /global/home/users/bfield/.conda/envs/triqs/include/python3.13
-- Python_NumPy_INCLUDE_DIRS: /global/home/users/bfield/.conda/envs/triqs/lib/python3.13/site-packages/numpy/_core/include
-- Python_NumPy_VERSION: 2.1.3
-- CPP2PY_PYTHON_MODULE_EXT: .cpython-313-x86_64-linux-gnu.so
-- Python modules install path: /global/home/users/bfield/groups-sw/bfield/h5/h5.install/lib/python3.13/site-packages
--  =============== End Cpp2Py Configuration =============== 
--  =============== Configuring Dependency GTest =============== 
-- The C compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /global/software/rocky-8.x86_64/gcc/linux-rocky8-x86_64/gcc-8.5.0/gcc-13.2.0-utdynkvgasyrbya2p7eug6257talnpgc/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
--  =============== End GTest Configuration =============== 
-- -------- HDF5 detection -------------
-- Found HDF5: hdf5-shared (found version "1.14.3") found components: C HL 
-- Adding cpp2py Python module storable
-- Adding cpp2py Python module _h5py
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.14") found components: doxygen dot 
-- *********************************************************************************
-- * Custom install Location. Use:                                                  
-- *                                                                                
-- *   source /global/home/users/bfield/groups-sw/bfield/h5/h5.install/share/h5/h5vars.sh  
-- *                                                                                
-- * to set up the environment variables                                            
-- *                                                                          
-- * Consider copying /global/home/users/bfield/groups-sw/bfield/h5/h5.build/share/h5.modulefile  
-- *   into your environment module directories                               
-- *********************************************************************************
-- Configuring done (16.6s)
-- Generating done (1.6s)
-- Build files have been written to: /global/home/users/bfield/groups-sw/bfield/h5/h5.build

I then run make in h5.build and get the reported errors.

My operating system is Rocky Linux 8.8, with an x86_64 architecture.

@bfield1 bfield1 added the bug Something isn't working label Nov 14, 2024
@Wentzell
Copy link
Member

Dear @bfield1,

Thank you for pointing out this issue.
Can you please check if you run into the same issue when using the unstable branch?

@bfield1
Copy link
Author

bfield1 commented Nov 14, 2024

I have just attempted with the unstable branch and found the same issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants