From 3134564ae1c2e890175d87ffd5f07be73e709274 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Sun, 12 Apr 2026 22:51:22 +0200 Subject: Fix Linux build errors in trace.cpp and tourist analyzer.h Include in trace.cpp so the cross-platform zen::GetCurrentThreadId() is visible. Guard tourist's sizeof(pmf) == sizeof(void*) static_assert under _MSC_VER since pointer-to-member-functions are always 2*sizeof(void*) under the Itanium ABI used on Linux and macOS. --- src/zencore/trace.cpp | 1 + thirdparty/tourist/analysis/include/analysis/analyzer.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/zencore/trace.cpp b/src/zencore/trace.cpp index 2714c5221..d7084bbd1 100644 --- a/src/zencore/trace.cpp +++ b/src/zencore/trace.cpp @@ -6,6 +6,7 @@ # include # include # include +# include # include # define TRACE_IMPLEMENT 1 diff --git a/thirdparty/tourist/analysis/include/analysis/analyzer.h b/thirdparty/tourist/analysis/include/analysis/analyzer.h index 21d47ba5b..c79e1a7df 100644 --- a/thirdparty/tourist/analysis/include/analysis/analyzer.h +++ b/thirdparty/tourist/analysis/include/analysis/analyzer.h @@ -38,7 +38,11 @@ Subscription::Subscription(T* a, void (T::*sink)(const U&)) { // analyzers can't have vtables static_assert(sizeof(sink) == sizeof(Subscription::SinkType), "we're cheating"); +#if defined(_MSC_VER) + // Itanium ABI pointer-to-member-functions are always 2*sizeof(void*); the size + // check only holds under MSVC's single-inheritance PMF representation. static_assert(sizeof(sink) == sizeof(void*), "we're cheating"); +#endif } //------------------------------------------------------------------------------ -- cgit v1.2.3