- removed component
Toolkit Fails to Compile on Sawtooth (Idaho National Lab)
Compilation of the Riemann release of the toolkit fails with the Intel-19.0.5 compiler on Sawtooth (Idaho National Lab). Attached is the full configuration used for the compilation (sawtooth-intel19.cfg). The compilation errors are the following:
/home/rosaleon/sawtooth/test_compile/Cactus/arrangements/Carpet/CarpetMask/src/mask_surface.cc(144): error: more than one instance of overloaded function "CarpetMask::isnan" matches the argument list: function "isnan(double)" function "std::isnan(double)" argument types are: (CCTK_REAL8) assert(not isnan(theta)); ^ /home/rosaleon/sawtooth/test_compile/Cactus/arrangements/Carpet/CarpetMask/src/mask_surface.cc(160): error: more than one instance of overloaded function "CarpetMask::isnan" matches the argument list: function "isnan(double)" function "std::isnan(double)" argument types are: (CCTK_REAL8) assert(not isnan(phi)); ^ Checking status of thorn IllinoisGRMHD compilation aborted for /home/rosaleon/sawtooth/test_compile/Cactus/configs/intel19/build/CarpetMask/mask_surface.cc (code 2) make[4]: *** [mask_surface.cc.o] Error 2 make[3]: *** [make.checked] Error 2 make[2]: *** [/home/rosaleon/sawtooth/test_compile/Cactus/configs/intel19/lib/libthorn_CarpetMask.a] Error 2 make[2]: *** Waiting for unfinished jobs.... COMPILING WVUThorns/IllinoisGRMHD/src/driver_conserv_to_prims.C /home/rosaleon/sawtooth/test_compile/Cactus/arrangements/WVUThorns/IllinoisGRMHD/src/driver_conserv_to_prims.C(204): error: more than one instance of overloaded function "isnan" matches the argument list: function "isnan(double)" function "std::isnan(double)" argument types are: (double) if(isnan(CONSERVS[RHOSTAR]*CONSERVS[STILDEX]*CONSERVS[STILDEY]*CONSERVS[STILDEZ]*CONSERVS[TAUENERGY]*PRIMS[BX_CENTER]*PRIMS[BY_CENTER]*PRIMS[BZ_CENTER])) { ^ compilation aborted for /home/rosaleon/sawtooth/test_compile/Cactus/configs/intel19/build/IllinoisGRMHD/driver_conserv_to_prims.C (code 2) make[4]: *** [driver_conserv_to_prims.C.o] Error 2 make[3]: *** [make.checked] Error 2 make[2]: *** [/home/rosaleon/sawtooth/test_compile/Cactus/configs/intel19/lib/libthorn_IllinoisGRMHD.a] Error 2 make[1]: *** [intel19] Error 2 make: *** [default-target] Error 2 Using the only available configuration: intel19. ^Cmake[1]: *** [intel19] Interrupt make: *** [default-target] Interrupt
I am currently working on a pull request to fix the issue in IllinoisGRMHD
.
Cheers,
Leo
Comments (7)
-
reporter -
reporter @Zach Etienne @Roland Haas The fix to
IllinoisGRMHD
is proposed here: https://bitbucket.org/zach_etienne/wvuthorns/pull-requests/9. Please review the pull request at your earliest convenience. This fix was already part of the version of IllinoisGRMHD that supports tabulated equations of state. -
This is the sympton caused by using an outdated stdc++ template library. In you fix you are basically re-introducing the compatibility hacks (more or less) that we have just removed from Cactus. A better fix for the compilation failure is to make sure that icpc uses a new enough g++ (and its STL library) by passing a
-gxx-name
option and the path to a new enough g++.If on the other hand you really want an isnan that persists even when -Ofast is used (though you are defeating the Ofast purpose in that case and with Ofast there just may not be any NaN produce in a consitent way to begin with) you could use your change. But it addresses a different issue than the compilation failure I think.
-
@Leonardo Werneck given that this is most likely a configuration file option issue. I will close this ticket with “wontfix” unless objected by 2022-11-18
-
This has been resolved. Leo says:
It is just a peculiarity of the C++ compiler, but by providing the path to a newer version of the standard template library the errors go away.
-
@Zach Etienne @Leonardo Werneck Can you click on the the “resolve” button (near the top right)? It should be visible to your account I think (if not, that can be fixed).
-
- changed status to resolved
Leo W says: "This was just a peculiarity of the C++ compiler, but by providing the path to a newer version of the standard template library the errors go away."
- Log in to comment