[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: