LLNL / UnifyFS

UnifyFS: A file system for burst buffers
Other
99 stars 31 forks source link

Something went wrong bootstrapping makefile fragments #793

Closed wangvsa closed 11 months ago

wangvsa commented 12 months ago

Error

Got this error at configuring time. This is on Summit with gcc/12.1.0 and hdf5/1.14.0.

./bootstrap.sh
./autogen.sh
./configure ....

config.status:1700: error: in `/ccs/home/wangvsa/sources/UnifyFS-dev-summit':
    config.status:1702: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  Try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).

Cause

After some investigations, I found that the Makefiles generated by config.status contain invalid lines:

HDF5_CC = /autofs/nccs-svm1_sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-12.1.0/hdf5-1.14.0-dgpxmsc7fahgr3e7zhbiiqmtztz5zr7y/h5cc
dir   // should not have this line
gcc  // should not have this line

The root cause is configure uses $H5CC -show | awk {print $1} to determine the HDF5 C compiler. It assumes $H5CC -show only returns a single line. But on Summit with hdf5/1.14.0, h5cc -show prints the following:

/autofs/nccs-svm1_sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-12.1.0/hdf5-1.14.0-dgpxmsc7fahgr3e7zhbiiqmtztz5zr7y/h5cc
dir is /autofs/nccs-svm1_sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-12.1.0/hdf5-1.14.0-dgpxmsc7fahgr3e7zhbiiqmtztz5zr7y
gcc -I/autofs/nccs-svm1_sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-12.1.0/hdf5-1.14.0-dgpxmsc7fahgr3e7zhbiiqmtztz5zr7y/include -L/autofs/nccs-svm1_sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/gcc-12.1.0/hdf5-1.14.0-dgpxmsc7fahgr3e7zhbiiqmtztz5zr7y/lib -lhdf5

Fix

/m4/ax_lib_hdf5.m4:

-        HDF5_CC=$(eval $H5CC -show | $AWK '{print $[]1}')
+        HDF5_CC=$(eval $H5CC -show | $AWK 'NR==1{print $[]1}')