summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2022-10-06 23:17:57 +0200
committerPino Toscano <toscano.pino@tiscali.it>2022-10-09 21:57:53 +0200
commitac17a394a5701174c705050640e26c9cb95d289b (patch)
treed18dab19ab0a37e8b4c4efaa3457eb3524226132
parent394b4c9e4994a9bdde89bd09eb0f663da44e0048 (diff)
Add M68k detection
- detect the M68k architecture (Motorola 68000) and define Q_PROCESSOR_M68K - set the right machine type in QElfParser for M68k ELF files Change-Id: Ie5694abbe1ae2bfeb5692defba0ca6062c1d60ac Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/global/archdetect.cpp2
-rw-r--r--src/corelib/global/qprocessordetection.h9
-rw-r--r--src/corelib/global/qprocessordetection.qdoc9
-rw-r--r--src/corelib/plugin/qelfparser_p.cpp3
4 files changed, 23 insertions, 0 deletions
diff --git a/src/corelib/global/archdetect.cpp b/src/corelib/global/archdetect.cpp
index 0bb6853fea..188ec2d176 100644
--- a/src/corelib/global/archdetect.cpp
+++ b/src/corelib/global/archdetect.cpp
@@ -25,6 +25,8 @@
# define ARCH_PROCESSOR "x86_64"
#elif defined(Q_PROCESSOR_IA64)
# define ARCH_PROCESSOR "ia64"
+#elif defined(Q_PROCESSOR_M68K)
+# define ARCH_PROCESSOR "m68k"
#elif defined(Q_PROCESSOR_MIPS_64)
# define ARCH_PROCESSOR "mips64"
#elif defined(Q_PROCESSOR_MIPS)
diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h
index d72b83bf1a..1b6139152e 100644
--- a/src/corelib/global/qprocessordetection.h
+++ b/src/corelib/global/qprocessordetection.h
@@ -200,6 +200,15 @@
// Q_BYTE_ORDER not defined, use endianness auto-detection
/*
+ Motorola 68000 family, no revisions or variants
+
+ M68K is big-endian.
+*/
+#elif defined(__m68k__)
+# define Q_PROCESSOR_M68K
+# define Q_BYTE_ORDER Q_BIG_ENDIAN
+
+/*
MIPS family, known revisions: I, II, III, IV, 32, 64
MIPS is bi-endian, use endianness auto-detection implemented below.
diff --git a/src/corelib/global/qprocessordetection.qdoc b/src/corelib/global/qprocessordetection.qdoc
index b0e0b99597..08486a4433 100644
--- a/src/corelib/global/qprocessordetection.qdoc
+++ b/src/corelib/global/qprocessordetection.qdoc
@@ -106,6 +106,15 @@
*/
/*!
+ \macro Q_PROCESSOR_M68K
+ \relates <QtProcessorDetection>
+
+ Defined if the application is compiled for Motorola 68000 processors.
+
+ \sa QSysInfo::buildCpuArchitecture()
+*/
+
+/*!
\macro Q_PROCESSOR_MIPS
\relates <QtProcessorDetection>
diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp
index 09b73b206a..32426c6092 100644
--- a/src/corelib/plugin/qelfparser_p.cpp
+++ b/src/corelib/plugin/qelfparser_p.cpp
@@ -117,6 +117,8 @@ struct ElfMachineCheck
EM_PARISC
#elif defined(Q_PROCESSOR_IA64)
EM_IA_64
+#elif defined(Q_PROCESSOR_M68K)
+ EM_68K
#elif defined(Q_PROCESSOR_MIPS)
EM_MIPS
#elif defined(Q_PROCESSOR_POWER_32)
@@ -373,6 +375,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_68K: d << ", MC68000"; break;
case EM_ARM: d << ", ARM"; break;
case EM_AARCH64: d << ", AArch64"; break;
#ifdef EM_BLACKFIN