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

Build fails due to missing Eigen3 #2046

Closed
susilehtola opened this issue Dec 2, 2020 · 9 comments
Closed

Build fails due to missing Eigen3 #2046

susilehtola opened this issue Dec 2, 2020 · 9 comments
Labels
build crash For issues that cause a Psi4 non-compile, crash, segfault, or algorithm failure. debugging-needed For issues that require debugging to identify the problem.
Milestone

Comments

@susilehtola
Copy link
Member

The addition of libint2 causes Psi4 to not build. Libint2 is trying to compile the hartree-fock++ test, which depends on Eigen3, which it is not finding for some reason even though I have it installed as a system package.

Libint2 tests should be disabled in the Psi4 build, or the Eigen3 dependency added so that the build works even in the lack of a system package.

(Note: libint2 is also suffering from the -march issue; the libint2 CMake files need to be updated.)

@loriab
Copy link
Member

loriab commented Dec 2, 2020

The addition of libint2 causes Psi4 to not build. Libint2 is trying to compile the hartree-fock++ test, which depends on Eigen3, which it is not finding for some reason even though I have it installed as a system package.

Are you using the latest psi4-dev package (.dev22)? That adds the mpfr and eigen deps to the build environment. I definitely acknowledge that the Libint2Config.cmake is not handling find_dependency right for eigen and mpfr (really, gmp) yet. I do have cmake edits for those locally, but I have not yet bent cmake to my will. So having the conda packages in place patches the problem. Does your system package have a Eigen3Config.cmake? Maybe expand CMAKE_MODULE_PATH?

Libint2 tests should be disabled in the Psi4 build, or the Eigen3 dependency added so that the build works even in the lack of a system package.

All of Psi4 master is now running Libint2 -- any references to Libint1 or Libint1_t (a hack to allow both to coexist) are only waiting for removal.

(Note: libint2 is also suffering from the -march issue; the libint2 CMake files need to be updated.)

Thanks for the reminder. I've just edited it locally.

@susilehtola
Copy link
Member Author

I am using the latest git snapshot of the master branch.

@susilehtola
Copy link
Member Author

And yes, the system package comes with CMake files:

/usr/share/cmake/Modules/FindEigen3.cmake
/usr/share/eigen3/Eigen3Config.cmake
/usr/share/eigen3/Eigen3ConfigVersion.cmake
/usr/share/eigen3/Eigen3Targets.cmake
/usr/share/eigen3/UseEigen3.cmake

@loriab
Copy link
Member

loriab commented Dec 2, 2020

I am using the latest git snapshot of the master branch.

gtk. this is what I was talking about. It hides dependency tracking from many psi builders and seeds cmake configuration. I was hoping that could carry most builds until FindMPFR called by Libint2Config and I come to terms. Are you building libint2 through psi or using the libint2 conda-package or detecting other pre-built (will need to silence find_apckage(... components) in that case)? For now, I'd add find_package(eigen) and hack cmake_module_path as needed. And this should stay open until I get it patched correctly upstream.

ambit >=0.5.1,<0.6.0a0, chemps2 >=1.8.9,<1.8.10.0a0, cmake >=3.8, dkh >=1.2,<1.3.0a0, eigen, gau2grid >=2.0.3,<3.0a0, gcc_linux-64 7.*, gdma >=2.2.6,<2.2.7.0a0, gfortran_linux-64 7.*, gxx_linux-64 7.*, hdf5 >=1.10.6,<1.10.7.0a0, libint2 2.6.0 hc9558a2_9, libxc >=4.3.4,<5.0a0, mkl-devel 2019.*, mpfr, msgpack-python, networkx >=2.4, numpy >=0.12.0, pcmsolver >=1.2.1,<1.2.2.0a0, pybind11-headers >=2.5.0,<2.6.0a0, pytest, pytest-xdist, python >=3.8,<3.9.0a0, qcelemental >=0.17.0,<1.0, qcengine >=0.17.0,<1.0, simint >=0.7,<0.8.0a0

@loriab loriab added this to the Psi4 1.4 milestone Dec 2, 2020
@susilehtola
Copy link
Member Author

I'm building Libint2 via Psi4; I wouldn't have this error otherwise ;)

I'm waiting on Ed to release a stable updated version of Libint2, so that I can package it in Fedora.

@loriab
Copy link
Member

loriab commented Dec 2, 2020

I'm building Libint2 via Psi4; I wouldn't have this error otherwise ;)

The hartree-fock++ test case won't happen, but the eigen3 detection can still be a problem even with pre-built because the l2 c++ interface needs it to compile p4 against.

I'm waiting on Ed to release a stable updated version of Libint2, so that I can package it in Fedora.

I've seen some clues that he's waiting on this. I need to get the mpfr and eigen3 detection fixed before I can start ready-to-merge negotiations.

Also, I don't know if EFV is planning the sph-ordering-as-runtime-option for the 2.7 release so that psi can use the Fedora distribution.

@JonathonMisiewicz
Copy link
Contributor

Moved to 1.5 per discussion on conference call. It's not worth the further delay to the 1.4 release, given that most users will get Psi from conda.

@JonathonMisiewicz JonathonMisiewicz added crash For issues that cause a Psi4 non-compile, crash, segfault, or algorithm failure. debugging-needed For issues that require debugging to identify the problem. and removed bug labels Jun 28, 2021
@loriab loriab modified the milestones: Psi4 1.5, Psi4 1.6 Nov 29, 2021
@loriab
Copy link
Member

loriab commented Mar 24, 2022

The switch to 2022 CMake fork of Libint2 in #2413 should have healed this issue, as it has better dependency handling and demands fewer dependencies. Try it out when you get a chance, please. You may find this dependency table helpful: https://github.com/evaleev/libint/blob/9f12ee61e1ce52420fe3020712c3584cb3e9a1b4/INSTALL.md#prerequisites

@loriab
Copy link
Member

loriab commented May 11, 2022

#2413 should have fixed this. please reopen if needed.

@loriab loriab closed this as completed May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build crash For issues that cause a Psi4 non-compile, crash, segfault, or algorithm failure. debugging-needed For issues that require debugging to identify the problem.
Projects
None yet
Development

No branches or pull requests

3 participants