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>
This commit is contained in:
Pino Toscano 2022-10-06 23:17:57 +02:00
parent 394b4c9e49
commit ac17a394a5
4 changed files with 23 additions and 0 deletions

View File

@ -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)

View File

@ -199,6 +199,15 @@
# define Q_PROCESSOR_WORDSIZE 8
// 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

View File

@ -105,6 +105,15 @@
\sa QSysInfo::buildCpuArchitecture()
*/
/*!
\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>

View File

@ -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