Forwarded: no
Last-Update: 2026-10-03
spnav.h includes <X11/Xlib.h>, which does "#define Complex 0". When Eigen
is included afterwards, its AltiVec backend (used on ppc64el) fails to
compile because it uses "bool Complex" as a template parameter name.
Include solvespace.h, and therefore Eigen, before the X11 headers.
Gbp-Pq: Name 08-Include-Eigen-before-X11-headers.patch
# include <gtkmm/filechoosernative.h>
#endif
+// Include solvespace.h (and thus Eigen) before spnav.h: the latter pulls in
+// <X11/Xlib.h>, which defines macros such as `Complex` that break Eigen's
+// AltiVec template code on ppc64el.
+#include "solvespace.h"
+
#if defined(HAVE_SPACEWARE)
# include <spnav.h>
# include <gdk/gdk.h>
# endif
#endif
-#include "solvespace.h"
-
namespace SolveSpace {
namespace Platform {