diff --git a/kotlin-native/runtime/src/main/cpp/Porting.cpp b/kotlin-native/runtime/src/main/cpp/Porting.cpp index ca786849c4e..fbc6e06f7b4 100644 --- a/kotlin-native/runtime/src/main/cpp/Porting.cpp +++ b/kotlin-native/runtime/src/main/cpp/Porting.cpp @@ -258,6 +258,13 @@ void onThreadExit(void (*destructor)(void*), void* destructorParameter) { #include #include #include + +/** + * We can't use gettid from glibc 2.30 because it is too new for us. + */ +NO_EXTERNAL_CALLS_CHECK NO_INLINE int gettid() { + return static_cast(syscall(__NR_gettid)); +} #endif NO_EXTERNAL_CALLS_CHECK int currentThreadId() { @@ -278,7 +285,7 @@ NO_EXTERNAL_CALLS_CHECK int currentThreadId() { #elif KONAN_ANDROID return gettid(); #elif KONAN_LINUX - return syscall(__NR_gettid); + return gettid(); #elif KONAN_WINDOWS return GetCurrentThreadId(); #else diff --git a/kotlin-native/runtime/src/mm/cpp/CallsChecker.cpp b/kotlin-native/runtime/src/mm/cpp/CallsChecker.cpp index 625dd539961..18336bd47b5 100644 --- a/kotlin-native/runtime/src/mm/cpp/CallsChecker.cpp +++ b/kotlin-native/runtime/src/mm/cpp/CallsChecker.cpp @@ -146,6 +146,8 @@ extern "C" const char* Kotlin_callsCheckerGoodFunctionNames[] = { "vsnprintf", "bcmp", + "gettid", + "getenv", "setenv", "unsetenv",