Description
I am trying to build the project, but I encountered a compilation issue related to the blkcnt_t typedef. The error occurs while compiling the Kokkos_HostBarrier.cpp file. Specifically, the conflict happens between Kokkos' own declaration of blkcnt_t and the existing declaration in the system headers.
Here is the error message I received:
error: conflicting declaration ‘typedef u64 blkcnt_t’
In file included from /usr/src/linux-headers-6.5.0-18-generic/include/linux/limits.h:6,
from /usr/include/x86_64-linux-gnu/bits/local_lim.h:38,
from /usr/include/x86_64-linux-gnu/bits/posix1_lim.h:161,
from /usr/include/limits.h:195,
from /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:194,
from /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:34,
from /usr/include/c++/9/climits:42,
from /home/xxx/ParEval-develop/tpl/kokkos/core/src/impl/Kokkos_BitOps.hpp:22,
from /home/xxx/ParEval-develop/tpl/kokkos/core/src/impl/Kokkos_HostBarrier.cpp:24:
/usr/src/linux-headers-6.5.0-18-generic/include/linux/types.h:132:13: error: conflicting declaration ‘typedef u64 blkcnt_t’
132 | typedef u64 blkcnt_t;
| ^~~~~~~~
It seems that the blkcnt_t type is defined in both Kokkos and the system headers (sys/types.h). This causes a conflict during the compilation process.
I would appreciate any guidance or suggestions on how to resolve this issue. Are there any recommended steps for avoiding this conflict, or should I modify the source code to ensure compatibility with my system's headers?
Environment:
Operating System: [e.g., Ubuntu 22.04]
Compiler: GCC 9.5.0
Kernel Headers Version: 6.5.0-18-generic
Kokkos Version: 4.1.00