atomics vs Cray compilers
I am trying to build PaRSEC on Archer, using the Cray compilers toolchain. The configure step proceeds well, while make gives me the following error:
CC-35 craycc: ERROR File = /home/d107/d107/sistja/parsec/parsec/include/parsec/sys/atomic-gcc.h, Line = 51 #error directive: "Requirement of CAS_128, but cannot use GCC_128_BUILTINS" # error "Requirement of CAS_128, but cannot use GCC_128_BUILTINS"
This seems to be called from a dead branch in atomic-gcc.h, which suggests that PARSEC_HAVE_INT128 is defined, but PARSEC_ATOMIC_USE_GCC_128_BUILTINS is not.
Any ideas?
Many thanks,
Jakub
Comments (3)
-
-
reporter Hi Thomas, yes, this seems to solve the issue. However, other appear:
CC-41 craycc: ERROR File = /home/d107/d107/sistja/parsec/tests/unit/atomics.c, Line = 153 The indicated expression must have arithmetic or pointer type. if (n == 0) { ^
CC-32 craycc: ERROR File = /home/d107/d107/sistja/parsec/tests/unit/atomics.c, Line = 157 The indicated expression must have an arithmetic type. positive_int128_tostr_rec(n/base, out, offset+1, base);
Regarding compiler version, CMake tells me: The C compiler identification is Cray 8.5
"which cc": /opt/cray/craype/2.5.10/bin/cc
-
- changed status to resolved
Pull request #202 solved the issue.
- Log in to comment
When we detected that GCC_128_BUILTINS are off, we should have deactivated PARSEC_USE_INT128.
Can you add the following lines into cmake_modules/CheckAtomicIntrinsic.cmake at line 184:
(instead of simply the endif)
What version of the compiler do you use?
Please report if this solves the problem.