easybuilders / easybuild

EasyBuild - building software with ease
http://easybuild.io
GNU General Public License v2.0
456 stars 142 forks source link

Can't Compile OpenMPI version 4.1.4 with GCC 12.2.0 #886

Open nuttapongc opened 5 months ago

nuttapongc commented 5 months ago

I tried to install OpenMPI version 4.1.4 with GCC 12.2.0 with these error.

make[2]: Leaving directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal'
Making all in mca/common/cuda
make[2]: Entering directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal/mca/common/cuda'
  CC       common_cuda.lo
  LN_S     libmca_common_cuda.la
  CCLD     libmca_common_cuda.la
make[2]: Leaving directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal/mca/common/cuda'
Making all in mca/common/ofi
make[2]: Entering directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal/mca/common/ofi'
  CC       common_ofi.lo
  LN_S     libmca_common_ofi.la
  CCLD     libmca_common_ofi.la
/data/apps/modules/software/binutils/2.39-GCCcore-12.2.0/bin/ld: cannot find -luuid: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1921: libmca_common_ofi.la] Error 1
make[2]: Leaving directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal/mca/common/ofi'
make[1]: *** [Makefile:2432: all-recursive] Error 1
make[1]: Leaving directory '/data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/opal'
make: *** [Makefile:1915: all-recursive] Error 1
 (at easybuild/tools/run.py:681 in parse_cmd_output)
== 2024-01-19 14:58:34,826 build_log.py:267 INFO ... (took 11 mins 38 secs)
== 2024-01-19 14:58:34,826 filetools.py:2012 INFO Removing lock /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock...== 2024-01-19 14:58:34,833 filetools.py:383 INFO Path /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock successfully removed.
== 2024-01-19 14:58:34,834 filetools.py:2016 INFO Lock removed: /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock
== 2024-01-19 14:58:34,834 easyblock.py:4277 WARNING build failed (first 300 chars): cmd " make  -j 32 " exited with exit code 2 and output:
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /data/apps/modules/build/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config/missing autoconf
configure.ac:64: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:64: You should run autoupdat
== 2024-01-19 14:58:34,834 easyblock.py:328 INFO Closing log for application name OpenMPI version 4.1.4
[modules@node~]$

I'm not sure how can i fix this.

ocaisa commented 5 months ago

You need to add a dependency on https://github.com/easybuilders/easybuild-easyconfigs/blob/develop/easybuild/easyconfigs/u/util-linux/util-linux-2.38.1-GCCcore-12.2.0.eb which provides the missing libuuid.so, this hasn't been an issue for others as it is very common to find this in the operating system.

To add the dependency, you need to edit the easyconfig file and change the dependencies section to

dependencies = [
    ('zlib', '1.2.12'),
    ('hwloc', '2.8.0'),
    ('libevent', '2.1.12'),
    ('UCX', '1.13.1'),
    ('libfabric', '1.16.1'),
    ('PMIx', '4.2.2'),
    ('UCC', '1.1.0'),
    ('util-linux', '2.38.1'),  # Added a missing dependency on libuuid which is provided by util-linux
]
nuttapongc commented 5 months ago

Hi, It passed from that error but still stuck at the new error.

make[4]: *** [Makefile:2185: test-suite.log] Error 1
make[4]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/test/util'
make[3]: *** [Makefile:2293: check-TESTS] Error 2
make[3]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/test/util'
make[2]: *** [Makefile:2380: check-am] Error 2
make[2]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/test/util'
make[1]: *** [Makefile:1777: check-recursive] Error 1
make[1]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/test'
make: *** [Makefile:1915: check-recursive] Error 1
 (at easybuild/tools/run.py:681 in parse_cmd_output)
== 2024-01-23 08:12:51,020 build_log.py:267 INFO ... (took 1 min 43 secs)
== 2024-01-23 08:12:51,021 filetools.py:2012 INFO Removing lock /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock...
== 2024-01-23 08:12:51,029 filetools.py:383 INFO Path /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock successfully removed.
== 2024-01-23 08:12:51,029 filetools.py:2016 INFO Lock removed: /data/apps/modules/software/.locks/_data_apps_modules_software_OpenMPI_4.1.4-GCC-12.2.0.lock
== 2024-01-23 08:12:51,029 easyblock.py:4277 WARNING build failed (first 300 chars): cmd "make check" exited with exit code 2 and output:
Making check in config
make[1]: Entering directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
Making
== 2024-01-23 08:12:51,030 easyblock.py:328 INFO Closing log for application name OpenMPI version 4.1.4
== 2024-01-23 08:12:51,030 build_log.py:267 INFO FAILED: Installation ended unsuccessfully (build directory: /tmp/modules/OpenMPI/4.1.4/GCC-12.2.0): build failed (first 300 chars): cmd "make check" exited with exit code 2 and output:
Making check in config
make[1]: Entering directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
Making (took 30 mins 5 secs)
== 2024-01-23 08:12:51,031 easyblock.py:4415 WARNING 2 possible error(s) were detected in the build logs, please verify the build.
== 2024-01-23 08:12:51,032 build_log.py:267 INFO Results of the build can be found in the log file(s) /tmp/eb-f0isotwk/easybuild-OpenMPI-4.1.4-20240123.074245.mZGyR.log
== 2024-01-23 08:12:51,041 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:126 in __init__): build failed (first 300 chars): cmd "make check" exited with exit code 2 and output:
Making check in config
make[1]: Entering directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config'
Making (at easybuild/main.py:138 in build_and_install_software)
== 2024-01-23 08:12:51,046 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:126 in __init__): Build of /data/apps/modules/software/EasyBuild/4.8.2/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.4-GCC-12.2.0.eb failed (err: 'build failed (first 300 chars): cmd "make check" exited with exit code 2 and output:\nMaking check in config\nmake[1]: Entering directory \'/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config\'\nmake[1]: Nothing to be done for \'check\'.\nmake[1]: Leaving directory \'/tmp/modules/OpenMPI/4.1.4/GCC-12.2.0/openmpi-4.1.4/config\'\nMaking') (at easybuild/main.py:176 in build_and_install_softwar

Thanks

ocaisa commented 5 months ago

This doesn't show the actual error, you would need to find the source of the error in the log file.

nuttapongc commented 5 months ago

It is like error from test after compile. I'm not sure how can i trace the error from easybuild because the output from previous post is from easybuild log Would you like me to upload that log here? I've tried to again but still error

ocaisa commented 4 months ago

In the build directory being used by EasyBuild, there should be a config.log file. In there you should be able to search for Error and see what the actual cause of the problem is