Question: Rhdf5lib Installation Problem - cp: cannot stat 'hdf5/c++/src/.libs/libhdf5_cpp.a'
0
6 weeks ago by
z.navidi9010
z.navidi9010 wrote:

I would like to install Rhdf5lib package in R and error occurs in the installation process which is shown below. I have googled it and there is just one page with same question with no answer. I don’t know what to do to make it install because I need that for installing another tool. I would appreciate if you could help me find the problem.

The error part of the output is provided below:

CC H5VM.lo CC H5WB.lo CC H5Z.lo CC H5Zdeflate.lo CC H5Zfletcher32.lo CC H5Znbit.lo CC H5Zshuffle.lo CC H5Zscaleoffset.lo CC H5Zszip.lo CC H5Ztrans.lo CCLD libhdf5.la make[2]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/src' make[1]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/src' make[1]: Entering directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++' make[2]: Entering directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++' make[2]: Nothing to be done for 'build-lib'. make[2]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++' + cd src + make lib make[2]: Entering directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++/src' make[3]: Entering directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++/src' CXX H5Exception.lo In file included from /cvmfs/soft.computecanada.ca/nix/var/nix/profiles/gcc-7.3.0/include/c++/7.3.0/cstdlib:75:0 from /cvmfs/soft.computecanada.ca/nix/var/nix/profiles/gcc-7.3.0/include/c++/7.3.0/ext/stringconversions.h:41, from /cvmfs/soft.computecanada.ca/nix/var/nix/profiles/gcc-7.3.0/include/c++/7.3.0/bits/basicstring.h:6349, from /cvmfs/soft.computecanada.ca/nix/var/nix/profiles/gcc-7.3.0/include/c++/7.3.0/string:52 from H5Exception.cpp:14: /cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/include/stdlib.h:471:35: error: expected initializer before 'attributeallocsize' THROW _attributemalloc attributeallocsize ((2)) __wur;

make[3]: * [Makefile:998: H5Exception.lo] Error 1 make[3]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++/src' make[2]: [Makefile:1425: lib] Error 1 make[2]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++/src' make[1]: [Makefile:1260: lib] Error 1 make[1]: Leaving directory '/tmp/RtmpIZMGQT/R.INSTALL2d1eb361364d7/Rhdf5lib/src/hdf5/c++' make: [Makefile:1083: lib] Error 1 configure: HDF5_INCLUDE=hdf5/src configure: HDF5_CXX_INCLUDE=hdf5/c++/src configure: HDF5_LIB=hdf5/src/.libs/libhdf5.a configure: HDF5_CXX_LIB=hdf5/c++/src/.libs/libhdf5_cpp.a configure: SZIP_LIB=hdf5/szip/src/.libs/libsz.a configure: creating ./config.status config.status: creating src/Makevars * libs mkdir -p "/home/znavidi/R/x8664-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/include" cp hdf5/src/*.h /home/znavidi/R/x8664-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/include cp hdf5/c++/src/.h /home/znavidi/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/include mkdir -p "/home/znavidi/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/lib/" cp hdf5/src/.libs/libhdf5.a /home/znavidi/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/lib/ cp hdf5/c++/src/.libs/libhdf5_cpp.a /home/znavidi/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-Rhdf5lib/00new/Rhdf5lib/lib/ cp: cannot stat 'hdf5/c++/src/.libs/libhdf5_cpp.a': No such file or directory make: ** [Makevars:30: copying] Error 1 ERROR: compilation failed for package ‘Rhdf5lib’ * removing ‘/home/znavidi/R/x86_64-pc-linux-gnu-library/3.6/Rhdf5lib’ Error in i.p(...) : (converted from warning) installation of package ‘Rhdf5lib’ had non-zero exit status

software error rhdf5lib • 145 views
written 6 weeks ago by z.navidi9010
1

The error message is a bit misleading as it's just saying it can't copy libhdf5_cpp.a as it doesn't exist. This is because the compilation failed, and the real question is why the compilation failed. This may well be different for you compared to any other reports with the same final error.

Can you provide the complete output from the installation? I find the easiest way to do this is to install the package at the command line and capturing the output e.g.

R -e 'BiocManager::install("Rhdf5lib")' &> /tmp/install.log


You can then paste the contents of install.log to somewhere like https://www.pastebin.org and you wont have to worry about the character limits on this forum.

It's also striking that the only other instance I can find on this error is here where they are also running on computecanada.ca infrastructure. It might be worth checking with your system administrators if there's something unusual in the version of libc installed there.

1

Dear Mike, Thanks for your reply. I pasted the output of the installation in this link. https://pastebin.com/EeJyJudR

1

This is pretty hard to debug without access to the same system. I'm unable to replicate this after a few tries.

I think it's concerning that during the configure step the linker is reported as

/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/bin/ld but then during the build you get warnings like:

/cvmfs/soft.computecanada.ca/nix/store/xs99yskj0vhrf6cmn2048i870r8nzqm0-binutils-2.28/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl

These are clearly not the same, and the 'skipping incompatible' warnings are often the result of trying to link 32-bit and 64-bit objects. I'm not sure if this is another symptom of a slightly broken setup, or unrelated, but it's another unusual symptom.

If you want to isolate the compilation of hdf5 from the package you can try using the commands below. This should replicate whats going on inside the package, but may be easier to tweak settings to see if anything works for you.

wget https://github.com/grimbough/Rhdf5lib/raw/master/src/hdf5small_cxx_1.10.3.tar.gz
tar xzf hdf5small_cxx_1.10.3.tar.gz
cd hdf5
./configure --with-pic --enable-shared=no --enable-cxx
make lib