Skip to content

Compilation error due to conflicting blkcnt_t typedef #48

Closed
@playboywang

Description

@playboywang

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions