Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
archdetect.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// Copyright (C) 2016 Intel Corporation.
3
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
// Qt-Security score:significant reason:default
5
6
#
include
"qprocessordetection.h"
7
8
// main part: processor type
9
#
if
defined
(
Q_PROCESSOR_ALPHA
)
10
#
define
ARCH_PROCESSOR
"alpha"
11
#
elif
defined
(
Q_PROCESSOR_ARM_32
)
12
#
define
ARCH_PROCESSOR
"arm"
13
#
elif
defined
(
Q_PROCESSOR_ARM_64
)
14
#
define
ARCH_PROCESSOR
"arm64"
15
#
elif
defined
(
Q_PROCESSOR_AVR32
)
16
#
define
ARCH_PROCESSOR
"avr32"
17
#
elif
defined
(
Q_PROCESSOR_BLACKFIN
)
18
#
define
ARCH_PROCESSOR
"bfin"
19
#
elif
defined
(
Q_PROCESSOR_WASM_64
)
20
#
define
ARCH_PROCESSOR
"wasm64"
21
#
elif
defined
(
Q_PROCESSOR_WASM
)
22
#
define
ARCH_PROCESSOR
"wasm"
23
#
elif
defined
(
Q_PROCESSOR_HPPA
)
24
#
define
ARCH_PROCESSOR
"hppa"
25
#
elif
defined
(
Q_PROCESSOR_X86_32
)
26
#
define
ARCH_PROCESSOR
"i386"
27
#
elif
defined
(
Q_PROCESSOR_X86_64
)
28
#
define
ARCH_PROCESSOR
"x86_64"
29
#
elif
defined
(
Q_PROCESSOR_IA64
)
30
#
define
ARCH_PROCESSOR
"ia64"
31
#
elif
defined
(
Q_PROCESSOR_LOONGARCH_32
)
32
#
define
ARCH_PROCESSOR
"loongarch32"
33
#
elif
defined
(
Q_PROCESSOR_LOONGARCH_64
)
34
#
define
ARCH_PROCESSOR
"loongarch64"
35
#
elif
defined
(
Q_PROCESSOR_M68K
)
36
#
define
ARCH_PROCESSOR
"m68k"
37
#
elif
defined
(
Q_PROCESSOR_MIPS_64
)
38
#
define
ARCH_PROCESSOR
"mips64"
39
#
elif
defined
(
Q_PROCESSOR_MIPS
)
40
#
define
ARCH_PROCESSOR
"mips"
41
#
elif
defined
(
Q_PROCESSOR_POWER_32
)
42
#
define
ARCH_PROCESSOR
"power"
43
#
elif
defined
(
Q_PROCESSOR_POWER_64
)
44
#
define
ARCH_PROCESSOR
"power64"
45
#
elif
defined
(
Q_PROCESSOR_RISCV_32
)
46
#
define
ARCH_PROCESSOR
"riscv32"
47
#
elif
defined
(
Q_PROCESSOR_RISCV_64
)
48
#
define
ARCH_PROCESSOR
"riscv64"
49
#
elif
defined
(
Q_PROCESSOR_S390_X
)
50
#
define
ARCH_PROCESSOR
"s390x"
51
#
elif
defined
(
Q_PROCESSOR_S390
)
52
#
define
ARCH_PROCESSOR
"s390"
53
#
elif
defined
(
Q_PROCESSOR_SH
)
54
#
define
ARCH_PROCESSOR
"sh"
55
#
elif
defined
(
Q_PROCESSORS_SPARC_64
)
56
#
define
ARCH_PROCESSOR
"sparc64"
57
#
elif
defined
(
Q_PROCESSOR_SPARC_V9
)
58
#
define
ARCH_PROCESSOR
"sparcv9"
59
#
elif
defined
(
Q_PROCESSOR_SPARC
)
60
#
define
ARCH_PROCESSOR
"sparc"
61
#
else
62
#
define
ARCH_PROCESSOR
"unknown"
63
#
endif
64
65
// endianness
66
#
if
Q_BYTE_ORDER
==
Q_LITTLE_ENDIAN
67
#
define
ARCH_ENDIANNESS
"little_endian"
68
#
elif
Q_BYTE_ORDER
==
Q_BIG_ENDIAN
69
#
define
ARCH_ENDIANNESS
"big_endian"
70
#
endif
71
72
// pointer type
73
#
if
defined
(
Q_OS_WIN64
)
74
#
define
ARCH_POINTER
"llp64"
75
#
elif
defined
(
__LP64__
)
||
QT_POINTER_SIZE
-
0
==
8
76
#
define
ARCH_POINTER
"lp64"
77
#
else
78
#
define
ARCH_POINTER
"ilp32"
79
#
endif
80
81
// qreal type, if not double (includes the dash)
82
#
ifdef
QT_COORD_TYPE_STRING
83
#
define
ARCH_COORD_TYPE
"-qreal_"
QT_COORD_TYPE_STRING
84
#
else
85
#
define
ARCH_COORD_TYPE
""
86
#
endif
87
88
// secondary: ABI string (includes the dash)
89
#
if
defined
(
__ARM_EABI__
)
||
defined
(
__mips_eabi
)
90
#
define
ARCH_ABI1
"-eabi"
91
#
elif
defined
(
_MIPS_SIM
)
92
#
if
_MIPS_SIM
==
_ABIO32
93
#
define
ARCH_ABI1
"-o32"
94
#
elif
_MIPS_SIM
==
_ABIN32
95
#
define
ARCH_ABI1
"-n32"
96
#
elif
_MIPS_SIM
==
_ABI64
97
#
define
ARCH_ABI1
"-n64"
98
#
elif
_MIPS_SIM
==
_ABIO64
99
#
define
ARCH_ABI1
"-o64"
100
#
endif
101
#
elif
defined
(
Q_PROCESSOR_ARM_64_EC
)
102
#
define
ARCH_ABI1
"-ec"
103
#
else
104
#
define
ARCH_ABI1
""
105
#
endif
106
#
if
defined
(
__ARM_PCS_VFP
)
||
defined
(
__mips_hard_float
)
107
// Use "-hardfloat" for platforms that usually have no FPUs
108
// (and for the platforms which had "-hardfloat" before we established the rule)
109
#
define
ARCH_ABI2
"-hardfloat"
110
#
elif
defined
(
_SOFT_FLOAT
)
111
// Use "-softfloat" for architectures that usually have FPUs
112
#
define
ARCH_ABI2
"-softfloat"
113
#
else
114
#
define
ARCH_ABI2
""
115
#
endif
116
117
#
define
ARCH_ABI
ARCH_ABI1
ARCH_ABI2
118
119
#
define
ARCH_FULL
ARCH_PROCESSOR
"-"
ARCH_ENDIANNESS
"-"
ARCH_POINTER
ARCH_COORD_TYPE
ARCH_ABI
ARCH_POINTER
#define ARCH_POINTER
Definition
archdetect.cpp:78
ARCH_PROCESSOR
#define ARCH_PROCESSOR
Definition
archdetect.cpp:62
ARCH_ABI
#define ARCH_ABI
Definition
archdetect.cpp:117
ARCH_COORD_TYPE
#define ARCH_COORD_TYPE
Definition
archdetect.cpp:85
ARCH_ABI1
#define ARCH_ABI1
Definition
archdetect.cpp:104
ARCH_ABI2
#define ARCH_ABI2
Definition
archdetect.cpp:114
QT_POINTER_SIZE
#define QT_POINTER_SIZE
Definition
qprocessordetection.h:396
Q_LITTLE_ENDIAN
#define Q_LITTLE_ENDIAN
Definition
qprocessordetection.h:47
qtbase
src
corelib
global
archdetect.cpp
Generated on
for Qt by
1.16.1