Date: Sun, 11 Sep 2022 20:58:57 GMT From: Christoph Moench-Tegeder <cmt@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 36957cf636cb - main - mail/thunderbird: fix build on legacy FreeBSD Message-ID: <202209112058.28BKwvK9012904@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by cmt: URL: https://cgit.FreeBSD.org/ports/commit/?id=36957cf636cb0634fd04720ee05b9aa5f9226f68 commit 36957cf636cb0634fd04720ee05b9aa5f9226f68 Author: Christoph Moench-Tegeder <cmt@FreeBSD.org> AuthorDate: 2022-09-11 20:54:35 +0000 Commit: Christoph Moench-Tegeder <cmt@FreeBSD.org> CommitDate: 2022-09-11 20:54:35 +0000 mail/thunderbird: fix build on legacy FreeBSD just as firefox/firefox-esr, we need to work around missing CPU_SET macros on old FreeBSD. Patch taken from 65f70bb54d/4a4ffa51d5. Reported by: Barbara --- .../files/patch-tools_profiler_core_patform.cpp | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/mail/thunderbird/files/patch-tools_profiler_core_patform.cpp b/mail/thunderbird/files/patch-tools_profiler_core_patform.cpp new file mode 100644 index 000000000000..905e6d7bbe49 --- /dev/null +++ b/mail/thunderbird/files/patch-tools_profiler_core_patform.cpp @@ -0,0 +1,51 @@ +commit 45a7951cb6a9b1735b9b6cec89db69b5933715c7 +Author: Christoph Moench-Tegeder <cmt@FreeBSD.org> +Date: Mon Mar 28 21:54:35 2022 +0200 + + FreeBSD can use sched_getcpu() from 1400046/1300524 on + +diff --git tools/profiler/core/platform.cpp tools/profiler/core/platform.cpp +index 92bcc1100687..2f17a88942a8 100644 +--- tools/profiler/core/platform.cpp ++++ tools/profiler/core/platform.cpp +@@ -111,6 +111,20 @@ + # include <cpuid.h> + #endif + ++#if defined(GP_OS_freebsd) ++#include <sys/param.h> ++// "after making CPU_SET macros compatible with glibc" ++# if __FreeBSD_version > 1400045 || (__FreeBSD_version > 1300523 && __FreeBSD_version < 1400000) ++# include <sched.h> ++# else ++# if __x86_64__ || __i386__ ++// similar cpuid_count() trick as on Darwin, using LLVM ++// but not for all CPUs ++# include <cpuid.h> ++# endif ++# endif ++#endif ++ + #if defined(GP_OS_windows) + # include <processthreadsapi.h> + +@@ -6368,6 +6382,19 @@ void profiler_mark_thread_awake() { + cpuId = ebx >> 24; + } + # endif ++#elif defined(GP_OS_freebsd) ++# if __FreeBSD_version > 1400045 || (__FreeBSD_version > 1300523 && __FreeBSD_version < 1400000) ++ cpuId = sched_getcpu(); ++# elif defined(__amd64__) ++ unsigned int eax, ebx, ecx, edx; ++ __cpuid_count(1, 0, eax, ebx, ecx, edx); ++ // Check if we have an APIC. ++ if ((edx & (1 << 9))) { ++ // APIC ID is bits 24-31 of EBX ++ cpuId = ebx >> 24; ++ } ++# endif ++// the fallthrough is cpuID = 0 + #else + cpuId = sched_getcpu(); + #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202209112058.28BKwvK9012904>