--- libcutils/threads.cpp.orig 2018-07-13 19:58:45 UTC +++ libcutils/threads.cpp @@ -24,11 +24,21 @@ #include #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include +#elif defined(__OpenBSD__) +#include +#elif defined(__sun) +#include #elif defined(__linux__) && !defined(__ANDROID__) #include #include #elif defined(_WIN32) #include +#else // fallback +#include #endif // No definition needed for Android because we'll just pick up bionic's copy. @@ -38,10 +46,20 @@ pid_t gettid() { uint64_t tid; pthread_threadid_np(NULL, &tid); return tid; +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return pthread_getthreadid_np(); +#elif defined(__NetBSD__) + return _lwp_self(); +#elif defined(__OpenBSD__) + return getthrid(); +#elif defined(__sun) + return thr_self(); #elif defined(__linux__) return syscall(__NR_gettid); #elif defined(_WIN32) return GetCurrentThreadId(); +#else // fallback + return (intptr_t) pthread_self(); #endif } #endif // __ANDROID__