ADIOS2 icon indicating copy to clipboard operation
ADIOS2 copied to clipboard

Errors during the execution of the command: make -j 16

Open SachinBM-CE opened this issue 1 year ago • 6 comments

The following errors pop up when make -j 16 command is executed. Please help me to tackle this and proceed with the installation.

[ 12%] Built target cmepoll
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:17,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IOHDF5.cpp:10:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
  247 | typedef long long ssize_t;
      |                   ^~~~~~~
In file included from /usr/include/stdlib.h:395,
                 from /usr/include/c++/11/cstdlib:75,
                 from /usr/include/c++/11/ext/string_conversions.h:41,
                 from /usr/include/c++/11/bits/basic_string.h:6608,
                 from /usr/include/c++/11/string:55,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IO.h:17,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IOHDF5.cpp:8:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
  108 | typedef __ssize_t ssize_t;
      |                   ^~~~~~~
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp:11:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
  247 | typedef long long ssize_t;
      |                   ^~~~~~~
In file included from /mnt/c/clover/Library/include/H5public.h:38,
                 from /mnt/c/clover/Library/include/hdf5.h:22,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp:11:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
  108 | typedef __ssize_t ssize_t;
      |                   ^~~~~~~
[ 12%] Built target cmenet
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:76: source/adios2/CMakeFiles/adios2_hdf5.dir/core/IOHDF5.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:17,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.cpp:11:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
  247 | typedef long long ssize_t;
      |                   ^~~~~~~
In file included from /usr/include/stdlib.h:395,
                 from /usr/include/c++/11/cstdlib:75,
                 from /usr/include/c++/11/ext/string_conversions.h:41,
                 from /usr/include/c++/11/bits/basic_string.h:6608,
                 from /usr/include/c++/11/string:55,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/Engine.h:24,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:14,
                 from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.cpp:11:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
  108 | typedef __ssize_t ssize_t;
      |                   ^~~~~~~
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:104: source/adios2/CMakeFiles/adios2_hdf5.dir/engine/hdf5/HDF5WriterP.cpp.o] Error 1
[ 12%] Linking C shared library ../../../lib/libadios2_dill.so
[ 12%] Built target dill
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:118: source/adios2/CMakeFiles/adios2_hdf5.dir/toolkit/interop/hdf5/HDF5Common.cpp.o] Error 1
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:90: source/adios2/CMakeFiles/adios2_hdf5.dir/engine/hdf5/HDF5ReaderP.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2181: source/adios2/CMakeFiles/adios2_hdf5.dir/all] Error 2
[ 12%] Built target adios2sys_objects
make: *** [Makefile:136: all] Error 2

SachinBM-CE avatar Aug 22 '24 15:08 SachinBM-CE

It'd be easier to sort these errors if you don't add a -j flag to make. That way it's more obvious what file these are coming from. It's not wildly unusual to see problems with ssize_t as it's definition tends to vary from system to system. Sharing the os and compiler might aid in pointing you in the right direction.

eisenhauer avatar Sep 05 '24 15:09 eisenhauer

Thank you !! I'm working on a WSL Ubuntu OS and using a gcc-11 compiler.

SachinBM-CE avatar Sep 05 '24 16:09 SachinBM-CE

Something is not correct with your HDF5 installation, ssize_t is defined in H5public.h only if H5_SIZEOF_SSIZE_T == 0 This constant is defined in H5pubconf.h to be 8 on non __APPLE__ and 4 or 8 on Macs.

Did you build hdf5 and adios with the same compiler? Which version of hdf5 are you using?

pnorbert avatar Sep 06 '24 12:09 pnorbert

Oh, missed the fact this is WSL. So your hdf5 seems to be picked up from Clover installed on Windows. You definitely need to point to a hdf5 install on the Ubuntu WSL.

HDF5_DIR=...your-path...
cmake ... -DCMAKE_PREFIX_PATH="${HDF5_DIR};..." ....

pnorbert avatar Sep 06 '24 14:09 pnorbert

Thank you. My HDF5 Version is 1.10.7

$ git clone https://github.com/ornladios/ADIOS2.git ADIOS2
$ mkdir adios2-build && cd adios2-build
$ HDF5_DIR=/usr/include/hdf5/serial
$ cmake ../ADIOS2 -DADIOS2_BUILD_EXAMPLES=ON -DCMAKE_PREFIX_PATH="${HDF5_DIR}"
$ make

Are these the correct commands to use now?

SachinBM-CE avatar Sep 06 '24 15:09 SachinBM-CE

Yes, but only if you are building adios as a serial library. If you have MPI installed in this case, you have to force it off with -DADIOS2_USE_MPI=OFF. Otherwise, you need a parallel hdf5 installation.

pnorbert avatar Sep 06 '24 16:09 pnorbert

This issue is stale because it has been 1 year with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Sep 07 '25 03:09 github-actions[bot]

This issue was closed because it has been stalled for 30 days with no activity.

github-actions[bot] avatar Oct 08 '25 03:10 github-actions[bot]