Possible compiler flag requirement.
TeachRaccooon opened this issue · comments
After the update of RandLAPACK to the newest version of RandBLAS (172d096) and attempting to compile it on ISAAC using gcc version 8.5.0 20210514, I ran into the following compilation error:
In file included from /nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/test/test_rng_speed.cc:4:
/nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/RandBLAS/../RandBLAS/base.hh:81:1: error: ‘concept’ does not name a type
concept SignedInteger = (std::numeric_limits<T>::is_signed && std::numeric_limits<T>::is_integer);
^~~~~~~
/nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/RandBLAS/../RandBLAS/base.hh:81:1: note: ‘concept’ only available with -fconcepts
make[2]: *** [RandBLAS/test/CMakeFiles/test_rng_speed.dir/build.make:76: RandBLAS/test/CMakeFiles/test_rng_speed.dir/test_rng_speed.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:167: RandBLAS/test/CMakeFiles/test_rng_speed.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
This issue did not occur when I ran the code locally on Elephant with gcc version 11.4.0.
This suggests that when working with some compilers, we are to add the '-fconcepts' flag into this file as:
# Add the -fconcepts flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fconcepts")
Adding the flag resolved the error, compilation succeeded.
I've updated our installation guide to reference this issue. I'll leave this open since there's a natural opportunity for us to detect the need for this ourselves with CMake-foo.