Bug#1025823: qt6-base FTBFS on Alpha; Unknown Q_PROCESSOR_xxx macro
Source: qt6-base
Version: 6.3.1+dfsg-10
Severity: important
Tags: patch ftbfs
Justification: fails to build from source (but built successfully in the past)
The build fails with:
/<<PKGBUILDDIR>>/src/corelib/plugin/qelfparser_p.cpp:178:4: error: #error "Unknown Q_PROCESSOR_xxx macro, please update."
Full log at:
https://buildd.debian.org/status/fetch.php?pkg=qt6-base&arch=alpha&ver=6.3.1%2Bdfsg-10&stamp=1664652510&raw=0
Attached is patch to provide the Q_PROCESSOR defines for Alpha. With
that qt6-base builds successfully.
Cheers
Michael.
Index: qt6-base-6.3.1+dfsg/src/corelib/global/qprocessordetection.h
===================================================================
--- qt6-base-6.3.1+dfsg.orig/src/corelib/global/qprocessordetection.h
+++ qt6-base-6.3.1+dfsg/src/corelib/global/qprocessordetection.h
@@ -82,11 +82,12 @@
/*
Alpha family, no revisions or variants
- Alpha is bi-endian, use endianness auto-detection implemented below.
+ Alpha is bi-endian; use auto-detection below.
*/
-// #elif defined(__alpha__) || defined(_M_ALPHA)
-// # define Q_PROCESSOR_ALPHA
-// Q_BYTE_ORDER not defined, use endianness auto-detection
+#if defined(__alpha__) || defined(_M_ALPHA)
+# define Q_PROCESSOR_ALPHA
+# define Q_PROCESSOR_WORDSIZE 8
+#endif
/*
ARM family, known revisions: V5, V6, V7, V8
Index: qt6-base-6.3.1+dfsg/src/corelib/plugin/qelfparser_p.cpp
===================================================================
--- qt6-base-6.3.1+dfsg.orig/src/corelib/plugin/qelfparser_p.cpp
+++ qt6-base-6.3.1+dfsg/src/corelib/plugin/qelfparser_p.cpp
@@ -141,6 +141,8 @@ struct ElfMachineCheck
static const Elf32_Half ExpectedMachine =
#if 0
// nothing
+#elif defined(Q_PROCESSOR_ALPHA)
+ EM_ALPHA
#elif defined(Q_PROCESSOR_ARM_32)
EM_ARM
#elif defined(Q_PROCESSOR_ARM_64)
@@ -407,6 +409,7 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION stati
switch (r.machine) {
// list definitely not exhaustive!
case EM_NONE: d << ", no machine"; break;
+ case EM_ALPHA: d << ", Alpha"; break;
case EM_ARM: d << ", ARM"; break;
case EM_AARCH64: d << ", AArch64"; break;
#ifdef EM_BLACKFIN
Reply to: