[PATCH] Add/enable Alpha detection
authorPino Toscano <toscano.pino@tiscali.it>
Tue, 15 Nov 2022 06:15:44 +0000 (07:15 +0100)
committerPatrick Franz <deltaone@debian.org>
Fri, 22 Dec 2023 15:11:45 +0000 (16:11 +0100)
- uncomment the Alpha detection defining Q_PROCESSOR_ALPHA, which is
  already used/documented in few places
- set the right machine type in QElfParser for Alpha ELF files

Pick-to: 6.5
Change-Id: I072bdee8b73ad3c86591c764aa7075c114967fd9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Gbp-Pq: Name upstream_Add-enable-Alpha-detection.patch

src/corelib/global/qprocessordetection.h
src/corelib/plugin/qelfparser_p.cpp

index 0600c45358cc69ed63f2402015400151d3e23377..bfeb19eeaede003380216bb9af7e5153dc7cedb2 100644 (file)
@@ -48,8 +48,8 @@
 
     Alpha is bi-endian, use endianness auto-detection implemented below.
 */
-// #elif defined(__alpha__) || defined(_M_ALPHA)
-// #  define Q_PROCESSOR_ALPHA
+#if defined(__alpha__) || defined(_M_ALPHA)
+#  define Q_PROCESSOR_ALPHA
 // Q_BYTE_ORDER not defined, use endianness auto-detection
 
 /*
@@ -58,7 +58,7 @@
     ARM is bi-endian, detect using __ARMEL__ or __ARMEB__, falling back to
     auto-detection implemented below.
 */
-#if defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_M_ARM) || defined(_M_ARM64) || defined(__aarch64__) || defined(__ARM64__)
+#elif defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_M_ARM) || defined(_M_ARM64) || defined(__aarch64__) || defined(__ARM64__)
 #  if defined(__aarch64__) || defined(__ARM64__) || defined(_M_ARM64)
 #    define Q_PROCESSOR_ARM_64
 #    define Q_PROCESSOR_WORDSIZE 8
index 4388c6babeff60810d11e4770c20e2676dba3a68..71457facdc44ea7443ef9987eb3732ea5eaab2ca 100644 (file)
@@ -112,6 +112,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)
@@ -380,6 +382,7 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade
     switch (r.machine) {
     // list definitely not exhaustive!
     case EM_NONE:       d << ", no machine"; break;
+    case EM_ALPHA:      d << ", Alpha"; break;
     case EM_68K:        d << ", MC68000"; break;
     case EM_ARM:        d << ", ARM"; break;
     case EM_AARCH64:    d << ", AArch64"; break;