From: Christoph Goehre Date: Wed, 31 Oct 2012 17:27:07 +0000 (-0400) Subject: ipc/chromium: fix #if define() for kFreeBSD and Hurd X-Git-Tag: archive/raspbian/1%102.14.0-1_deb10u1+rpi1^2^2^2~15 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0493c4c31872b5895dff44890ec286705532cc58;p=thunderbird.git ipc/chromium: fix #if define() for kFreeBSD and Hurd The kFreeBSD and Hurd platforms need some other macros to include the correct needed headers. Depended on this some minor changes to call the correct functions also needed. Also the list of the cpp source file for the chromium things needs to expanded. The changes is an adoption of the previous dropped patch 'Fix ipc/chromium on kFreeBSD and Hurd' from the version 17. Gbp-Pq: Topic porting-kfreebsd-hurd Gbp-Pq: Name ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch --- diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc index e0d6726e9f..31b1592cd8 100644 --- a/ipc/chromium/src/base/platform_thread_posix.cc +++ b/ipc/chromium/src/base/platform_thread_posix.cc @@ -13,7 +13,7 @@ # include #elif defined(OS_NETBSD) # include -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) # include # include #endif @@ -22,7 +22,7 @@ # include #endif -#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__) +#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__) && !defined(__FreeBSD_kernel__) # include #endif @@ -100,6 +100,22 @@ void PlatformThread::SetName(const char* name) { // also sets the thread name on the PRThread wrapper, and allows us to // retrieve it using PR_GetThreadName. NS_SetCurrentThreadName(name); + + // http://0pointer.de/blog/projects/name-your-threads.html + // Set the name for the LWP (which gets truncated to 15 characters). + // Note that glibc also has a 'pthread_setname_np' api, but it may not be + // available everywhere and it's only benefit over using prctl directly is + // that it can set the name of threads other than the current thread. +#if defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) + prctl(PR_SET_NAME, reinterpret_cast(name), 0, 0, 0); +#elif defined(OS_NETBSD) + pthread_setname_np(pthread_self(), "%s", (void *)name); +#elif defined(OS_BSD) && !defined(__GLIBC__) + pthread_set_name_np(pthread_self(), name); +#elif defined(OS_SOLARIS) + pthread_setname_np(pthread_self(), name); +#else +#endif } #endif // !OS_MACOSX