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

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

Open
SachinBM-CE opened this issue Aug 22, 2024 · 6 comments
Open

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

SachinBM-CE opened this issue Aug 22, 2024 · 6 comments

Comments

@SachinBM-CE
Copy link

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
@eisenhauer
Copy link
Member

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.

@SachinBM-CE
Copy link
Author

SachinBM-CE commented Sep 5, 2024

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

@pnorbert
Copy link
Contributor

pnorbert commented Sep 6, 2024

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
Copy link
Contributor

pnorbert commented Sep 6, 2024

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};..." ....

@SachinBM-CE
Copy link
Author

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?

@pnorbert
Copy link
Contributor

pnorbert commented Sep 6, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants