Index: head/audio/webrtc-audio-processing/files/patch-webrtc_base_platform__thread.cc =================================================================== --- head/audio/webrtc-audio-processing/files/patch-webrtc_base_platform__thread.cc (revision 506329) +++ head/audio/webrtc-audio-processing/files/patch-webrtc_base_platform__thread.cc (revision 506330) @@ -1,46 +1,42 @@ - Implement CurrentThreadId() using global thread ID - Implement SetCurrentThreadName() --- webrtc/base/platform_thread.cc.orig 2018-07-23 14:02:57 UTC +++ webrtc/base/platform_thread.cc @@ -19,6 +19,12 @@ #include #endif +#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) // WEBRTC_BSD +#include +#elif defined(__NetBSD__) // WEBRTC_BSD +#include +#endif + namespace rtc { PlatformThreadId CurrentThreadId() { -@@ -32,9 +38,15 @@ PlatformThreadId CurrentThreadId() { +@@ -32,6 +38,12 @@ PlatformThreadId CurrentThreadId() { ret = syscall(__NR_gettid); #elif defined(WEBRTC_ANDROID) ret = gettid(); +#elif defined(__DragonFly__) || defined(__FreeBSD__) // WEBRTC_BSD + ret = pthread_getthreadid_np(); +#elif defined(__NetBSD__) // WEBRTC_BSD + ret = _lwp_self(); ++#elif defined(__OpenBSD__) // WEBRTC_BSD ++ ret = getthrid(); #else // Default implementation for nacl and solaris. -- ret = reinterpret_cast(pthread_self()); -+ // WEBRTC_BSD: pthread_t is a pointer, so cannot be casted to pid_t -+ // (aka int32_t) on 64-bit archs. Required on OpenBSD. -+ ret = reinterpret_cast(pthread_self()); - #endif - #endif // defined(WEBRTC_POSIX) - RTC_DCHECK(ret); -@@ -76,6 +90,10 @@ void SetCurrentThreadName(const char* name) { + ret = reinterpret_cast(pthread_self()); +@@ -76,6 +88,10 @@ void SetCurrentThreadName(const char* name) { prctl(PR_SET_NAME, reinterpret_cast(name)); #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) pthread_setname_np(name); +#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) // WEBRTC_BSD + pthread_set_name_np(pthread_self(), name); +#elif defined(__NetBSD__) // WEBRTC_BSD + pthread_setname_np(pthread_self(), "%s", (void*)name); #endif } Index: head/devel/android-tools-adb/files/patch-base_logging.cpp =================================================================== --- head/devel/android-tools-adb/files/patch-base_logging.cpp (revision 506329) +++ head/devel/android-tools-adb/files/patch-base_logging.cpp (revision 506330) @@ -1,46 +1,54 @@ --- base/logging.cpp.orig 2016-08-08 21:10:17 UTC +++ base/logging.cpp @@ -25,7 +25,7 @@ #include // For getprogname(3) or program_invocation_short_name. -#if defined(__ANDROID__) || defined(__APPLE__) +#if !defined(_WIN32) && !defined(__GLIBC__) #include #elif defined(__GLIBC__) #include @@ -35,6 +35,8 @@ #include #endif +#include // strrchr +#include // fprintf #include #include #include -@@ -71,6 +72,12 @@ +@@ -71,6 +72,16 @@ #include #elif defined(_WIN32) #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++#include ++#elif defined(__sun) ++#include ++#else // fallback +#include #endif #if defined(_WIN32) -@@ -88,6 +97,12 @@ static thread_id GetThreadId() { +@@ -88,6 +97,16 @@ static thread_id GetThreadId() { return syscall(__NR_gettid); #elif defined(_WIN32) return GetCurrentThreadId(); +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return pthread_getthreadid_np(); +#elif defined(__NetBSD__) + return _lwp_self(); -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++ return getthrid(); ++#elif defined(__sun) ++ return thr_self(); ++#else // fallback + return (intptr_t) pthread_self(); #endif } Index: head/devel/android-tools-adb/files/patch-libcutils_threads.cpp =================================================================== --- head/devel/android-tools-adb/files/patch-libcutils_threads.cpp (revision 506329) +++ head/devel/android-tools-adb/files/patch-libcutils_threads.cpp (revision 506330) @@ -1,37 +1,45 @@ --- libcutils/threads.cpp.orig 2018-07-13 19:58:45 UTC +++ libcutils/threads.cpp -@@ -24,11 +24,17 @@ +@@ -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 // OpenBSD, Solaris ++#else // fallback +#include #endif // No definition needed for Android because we'll just pick up bionic's copy. -@@ -38,10 +46,16 @@ pid_t gettid() { +@@ -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 // OpenBSD, Solaris ++#else // fallback + return (intptr_t) pthread_self(); #endif } #endif // __ANDROID__ Index: head/devel/android-tools-fastboot/files/patch-base_logging.cpp =================================================================== --- head/devel/android-tools-fastboot/files/patch-base_logging.cpp (revision 506329) +++ head/devel/android-tools-fastboot/files/patch-base_logging.cpp (revision 506330) @@ -1,46 +1,54 @@ --- base/logging.cpp.orig 2016-08-08 21:10:17 UTC +++ base/logging.cpp @@ -25,7 +25,7 @@ #include // For getprogname(3) or program_invocation_short_name. -#if defined(__ANDROID__) || defined(__APPLE__) +#if !defined(_WIN32) && !defined(__GLIBC__) #include #elif defined(__GLIBC__) #include @@ -35,6 +35,8 @@ #include #endif +#include // strrchr +#include // fprintf #include #include #include -@@ -71,6 +72,12 @@ +@@ -71,6 +72,16 @@ #include #elif defined(_WIN32) #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++#include ++#elif defined(__sun) ++#include ++#else // fallback +#include #endif #if defined(_WIN32) -@@ -88,6 +97,12 @@ static thread_id GetThreadId() { +@@ -88,6 +97,16 @@ static thread_id GetThreadId() { return syscall(__NR_gettid); #elif defined(_WIN32) return GetCurrentThreadId(); +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return pthread_getthreadid_np(); +#elif defined(__NetBSD__) + return _lwp_self(); -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++ return getthrid(); ++#elif defined(__sun) ++ return thr_self(); ++#else // fallback + return (intptr_t) pthread_self(); #endif } Index: head/devel/android-tools-simpleperf/files/patch-base_logging.cpp =================================================================== --- head/devel/android-tools-simpleperf/files/patch-base_logging.cpp (revision 506329) +++ head/devel/android-tools-simpleperf/files/patch-base_logging.cpp (revision 506330) @@ -1,46 +1,54 @@ --- base/logging.cpp.orig 2016-08-08 21:10:17 UTC +++ base/logging.cpp @@ -25,7 +25,7 @@ #include // For getprogname(3) or program_invocation_short_name. -#if defined(__ANDROID__) || defined(__APPLE__) +#if !defined(_WIN32) && !defined(__GLIBC__) #include #elif defined(__GLIBC__) #include @@ -35,6 +35,8 @@ #include #endif +#include // strrchr +#include // fprintf #include #include #include -@@ -71,6 +72,12 @@ +@@ -71,6 +72,16 @@ #include #elif defined(_WIN32) #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include -+#else ++#elif defined(__OpenBSD__) ++#include ++#elif defined(__sun) ++#include ++#else // fallback +#include #endif #if defined(_WIN32) -@@ -88,6 +97,12 @@ static thread_id GetThreadId() { +@@ -88,6 +97,16 @@ static thread_id GetThreadId() { return syscall(__NR_gettid); #elif defined(_WIN32) return GetCurrentThreadId(); -+#elif defined(__NetBSD__) -+ return _lwp_self(); +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return pthread_getthreadid_np(); -+#else ++#elif defined(__NetBSD__) ++ return _lwp_self(); ++#elif defined(__OpenBSD__) ++ return getthrid(); ++#elif defined(__sun) ++ return thr_self(); ++#else // fallback + return (intptr_t) pthread_self(); #endif } Index: head/multimedia/gmmlib/files/patch-thread-id =================================================================== --- head/multimedia/gmmlib/files/patch-thread-id (revision 506329) +++ head/multimedia/gmmlib/files/patch-thread-id (revision 506330) @@ -1,35 +1,42 @@ Add more BSDs and update to modern way to get thread ID --- Source/GmmLib/Utility/GmmLog/spdlog/details/os.h.orig 2018-09-28 18:59:39 UTC +++ Source/GmmLib/Utility/GmmLog/spdlog/details/os.h -@@ -39,9 +39,13 @@ +@@ -39,9 +39,16 @@ #include #include -#elif __FreeBSD__ -#include //Use thr_self() syscall under FreeBSD to get thread id +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include // for pthread_getthreadid_np + +#elif defined(__NetBSD__) +#include // for _lwp_self + ++#elif defined(__sun) ++#include // for thr_self ++ #else #include -@@ -302,10 +308,10 @@ inline size_t thread_id() +@@ -302,10 +308,14 @@ inline size_t thread_id() # define SYS_gettid __NR_gettid # endif return static_cast(syscall(SYS_gettid)); -#elif __FreeBSD__ - long tid; - thr_self(&tid); - return static_cast(tid); +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return static_cast(pthread_getthreadid_np()); +#elif defined(__NetBSD__) + return static_cast(_lwp_self()); ++#elif defined(__OpenBSD__) ++ return getthrid(); ++#elif defined(__sun) ++ return thr_self(); #else //Default to standard C++11 (OSX and other Unix) return static_cast(std::hash()(std::this_thread::get_id())); #endif Index: head/multimedia/libva/files/patch-va_va__trace.c =================================================================== --- head/multimedia/libva/files/patch-va_va__trace.c (revision 506329) +++ head/multimedia/libva/files/patch-va_va__trace.c (revision 506330) @@ -1,78 +1,84 @@ - Implement gettid() for BSDs --- va/va_trace.c.orig 2019-07-05 13:14:31 UTC +++ va/va_trace.c -@@ -48,12 +48,36 @@ +@@ -48,12 +48,42 @@ #include #include #include -#include #include #include #include #include +#if defined(__linux__) +#include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include -+#else // OpenBSD, Solaris ++#elif defined(__sun) ++#include ++#else // fallback +#include +#endif + +#if !defined(__BIONIC__) +static pid_t gettid() +{ +#if defined(__linux__) + return syscall(__NR_gettid); +#elif defined(__DragonFly__) || defined(__FreeBSD__) + return pthread_getthreadid_np(); +#elif defined(__NetBSD__) + return _lwp_self(); -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++ return getthrid(); ++#elif defined(__sun) ++ return thr_self(); ++#else // fallback + return (intptr_t) pthread_self(); +#endif +} +#endif + /* * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio: * .LIBVA_TRACE=log_file: general VA parameters saved into log_file @@ -290,7 +314,7 @@ static void add_trace_config_info( { struct trace_config_info *pconfig_info; int idx = 0; - pid_t thd_id = syscall(__NR_gettid); + pid_t thd_id = gettid(); LOCK_RESOURCE(pva_trace); @@ -668,7 +692,7 @@ static struct trace_log_file *start_tracing2log_file( { struct trace_log_files_manager *plog_files_mgr = NULL; struct trace_log_file *plog_file = NULL; - pid_t thd_id = syscall(__NR_gettid); + pid_t thd_id = gettid(); int i = 0; LOCK_RESOURCE(pva_trace); @@ -707,7 +731,7 @@ static void refresh_log_file( struct trace_context *ptra_ctx) { struct trace_log_file *plog_file = NULL; - pid_t thd_id = syscall(__NR_gettid); + pid_t thd_id = gettid(); int i = 0; plog_file = ptra_ctx->plog_file; @@ -1238,7 +1262,7 @@ static void internal_TraceUpdateContext ( { struct trace_context *trace_ctx = NULL; int i = 0, delete = 1; - pid_t thd_id = syscall(__NR_gettid); + pid_t thd_id = gettid(); if(tra_ctx_idx >= MAX_TRACE_CTX_NUM) return; Index: head/multimedia/libva-intel-media-driver/files/patch-thread-id =================================================================== --- head/multimedia/libva-intel-media-driver/files/patch-thread-id (revision 506329) +++ head/multimedia/libva-intel-media-driver/files/patch-thread-id (revision 506330) @@ -1,48 +1,54 @@ Get thread ID on more platforms media_driver/agnostic/common/cm/cm_task_internal.cpp:851:39: error: use of undeclared identifier 'SYS_gettid' m_taskProfilingInfo.threadID = CmGetCurThreadId(); // Get Thread ID ^ media_driver/linux/common/cm/cm_innerdef_os.h:98:37: note: expanded from macro 'CmGetCurThreadId' #define CmGetCurThreadId() syscall(SYS_gettid) ^ media_driver/agnostic/common/cm/cm_task_internal.cpp:952:39: error: use of undeclared identifier 'SYS_gettid' m_taskProfilingInfo.threadID = CmGetCurThreadId(); // Get Thread ID ^ media_driver/linux/common/cm/cm_innerdef_os.h:98:37: note: expanded from macro 'CmGetCurThreadId' #define CmGetCurThreadId() syscall(SYS_gettid) ^ --- media_driver/linux/common/cm/cm_innerdef_os.h.orig 2018-10-01 21:39:52 UTC +++ media_driver/linux/common/cm/cm_innerdef_os.h -@@ -35,8 +35,16 @@ +@@ -35,8 +35,18 @@ #include "mos_os.h" #include "media_libva_common.h" +#if defined(__linux__) #include #include +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include +#elif defined(__NetBSD__) +#include -+#else // OpenBSD, Solaris ++#elif defined(__sun) ++#include ++#else // fallback +#include +#endif #include //Require DRM VMAP patch, -@@ -95,5 +103,13 @@ inline void GetLocalTime(PSYSTEMTIME psystime) +@@ -95,5 +103,17 @@ inline void GetLocalTime(PSYSTEMTIME psystime) #endif #define CmGetCurProcessId() getpid() +#if defined(__linux__) #define CmGetCurThreadId() syscall(SYS_gettid) +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#define CmGetCurThreadId() pthread_getthreadid_np() +#elif defined(__NetBSD__) +#define CmGetCurThreadId() _lwp_self() -+#else // OpenBSD, Solaris ++#elif defined(__OpenBSD__) ++#define CmGetCurThreadId() getthrid() ++#elif defined(__sun) ++#define CmGetCurThreadId() thr_self() ++#else // fallback +#define CmGetCurThreadId() (uintptr_t)pthread_self() +#endif