evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
226 stars 95 forks source link

Compilation error with v2.5.0-beta2 #106

Closed mcjinye closed 5 years ago

mcjinye commented 6 years ago
$ icpc --version
icpc (ICC) 18.0.1 20171018
$ icc --version
icc (ICC) 18.0.1 20171018
cd src; make TO_TOPDIR=../../.. TOPDIR=/home/XXX/libint/build/src/lib/libint/../../.. SRCDIR=/home/XXX/libint/source/src/lib/libint
make[4]: Entering directory '/home/XXX/libint/build/src/lib/libint/tmp/libint'
CXX OSVRRSMultipole_aB_s__0___SphericalMultipole_sB_2_c__minus_1_Sb__g__0___Ab__up_.lo
CXX CR_aB_g__0___Kinetic_s__0___Ab__up_.lo
CXX _aB_G__0__F__1___TwoPRep_P__0__D__1___Ab__up_0_prereq.lo
CXX _aB_P__0__G__1___TwoPRep_P__0__F__1___Ab__up_0.lo
CXX CR_aB_s__0___CartesianMultipole_sB_0_c_0_c_1_Sb__f__0___Ab__up_.lo
CXX _aB_D__0__F__1___TwoPRep_D__0__P__1___Ab__up_0.lo
CXX OSVRRSMultipole_aB_f__0___SphericalMultipole_sB_3_c_3_Sb__s__0___Ab__up_.lo
CXX OSVRRSMultipole_aB_s__0___SphericalMultipole_sB_1_c__minus_1_Sb__d__0___Ab__up_.lo
CXX _1emultipole_P_G.lo
CXX CR_aB_g__0___CartesianMultipole_sB_0_c_0_c_3_Sb__f__0___Ab__up_.lo
CXX CR_aB_g__0___CartesianMultipole_sB_0_c_0_c_2_Sb__d__0___Ab__up_.lo
CXX _sphemultipole_G_S.lo
CXX _aB_G__0__G__1___TwoPRep_P__0__G__1___Ab__up_0_prereq.lo
CXX _aB_D__0__F__1___TwoPRep_P__0__D__1___Ab__up_0_prereq.lo
CXX _aB_P__0__D__1___TwoPRep_P__0__P__1___Ab__up_0_prereq.lo
CXX CR_aB_p__0___CartesianMultipole_sB_0_c_0_c_1_Sb__f__0___Ab__up_.lo
CXX _overlap_D_S_prereq.lo
In file included from /home/XXX/libint/source/src/lib/libint/../../../include/libint2.h(38),
                 from _aB_G__0__G__1___TwoPRep_P__0__G__1___Ab__up_0_prereq.cc(21):
/home/XXX/libint/source/src/lib/libint/../../../include/libint2/numeric.h(86): error: identifier "LIBINT2_REF_REALTYPE" is undefined
  using LIBINT2_REF_REALTYPE = double;
evaleev commented 6 years ago

As I'm investigating why Intel C++ compiler (severely) breaks the libint compiler I recommend you only use icpc to compile generated code only e.g.

...../configure CXX=g++ CXXFLAGS='-std=c++11 -mtune=native -O2' CXXGEN=icpc CXXGENFLAGS=' -std=c++11 -xHOST -O3'

(there is no dramatic benefit to using icpc to compile the libint compiler anyway).

Another workaround is to use non-Intel compiler to generate an export library (configure with g++ or clang++ and do make export), then use the generated tarball to configure and compile with icpc. An extra step, but unless you are developing libint there is no benefit to doing in-compiler compilation of the libint library.

evaleev commented 5 years ago

bump: is this still an issue?

mcjinye commented 5 years ago

I think it's fixed already. Thanks!

On Mon, Jun 3, 2019, 08:51 Eduard Valeyev notifications@github.com wrote:

bump: is this still an issue?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/evaleev/libint/issues/106?email_source=notifications&email_token=AKDFKJHLQDVVHXIYKJBXGN3PYUHWFA5CNFSM4FPMZDZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWZJNNY#issuecomment-498243255, or mute the thread https://github.com/notifications/unsubscribe-auth/AKDFKJBLX6IRNTRUN2OGKBTPYUHWFANCNFSM4FPMZDZA .