Skip to content

conflicting declaration of '__pid_t gettid()' with 'C' linkage #267

@ewirch

Description

@ewirch
/usr/include/bits/unistd_ext.h:34:16: error: conflicting declaration of '__pid_t gettid()' with 'C' linkage
   34 | extern __pid_t gettid (void) __THROW;
      |                ^~~~~~
In file included from honest-profiler/src/main/cpp/thread_map.cpp:1:
honest-profiler/src/main/cpp/thread_map.h:14:5: note: previous declaration with 'C++' linkage
   14 | int gettid();
      |     ^~~~~~
In file included from /usr/include/unistd.h:1170,
                 from honest-profiler/src/main/cpp/thread_map.cpp:4:
/usr/include/bits/unistd_ext.h:34:16: error: declaration of '__pid_t gettid() throw ()' has a different exception specifier
   34 | extern __pid_t gettid (void) __THROW;
      |                ^~~~~~

Compiling succeeds, if getid() declaration in thread_map.h:

int getid();

is replaced by:

extern "C" {
__pid_t gettid() __THROW;
}

System: Arch Linux, kernel 5.4.2.

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