86 lines
2.2 KiB
Diff
86 lines
2.2 KiB
Diff
Description: add RISC-V detection
|
|
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9a6a84731131b205
|
|
Last-Update: 2019-12-31
|
|
|
|
--- a/src/corelib/global/archdetect.cpp
|
|
+++ b/src/corelib/global/archdetect.cpp
|
|
@@ -67,6 +67,10 @@
|
|
# define ARCH_PROCESSOR "power"
|
|
#elif defined(Q_PROCESSOR_POWER_64)
|
|
# define ARCH_PROCESSOR "power64"
|
|
+#elif defined(Q_PROCESSOR_RISCV_32)
|
|
+# define ARCH_PROCESSOR "riscv32"
|
|
+#elif defined(Q_PROCESSOR_RISCV_64)
|
|
+# define ARCH_PROCESSOR "riscv64"
|
|
#elif defined(Q_PROCESSOR_S390_X)
|
|
# define ARCH_PROCESSOR "s390x"
|
|
#elif defined(Q_PROCESSOR_S390)
|
|
--- a/src/corelib/global/qglobal.cpp
|
|
+++ b/src/corelib/global/qglobal.cpp
|
|
@@ -1871,6 +1871,42 @@ bool qSharedBuild() Q_DECL_NOTHROW
|
|
*/
|
|
|
|
/*!
|
|
+ \macro Q_PROCESSOR_RISCV
|
|
+ \relates <QtGlobal>
|
|
+ \since 5.13
|
|
+
|
|
+ Defined if the application is compiled for RISC-V processors. Qt currently
|
|
+ supports two RISC-V variants: \l Q_PROCESSOR_RISCV_32 and \l
|
|
+ Q_PROCESSOR_RISCV_64.
|
|
+
|
|
+ \sa QSysInfo::buildCpuArchitecture()
|
|
+*/
|
|
+
|
|
+/*!
|
|
+ \macro Q_PROCESSOR_RISCV_32
|
|
+ \relates <QtGlobal>
|
|
+ \since 5.13
|
|
+
|
|
+ Defined if the application is compiled for 32-bit RISC-V processors. The \l
|
|
+ Q_PROCESSOR_RISCV macro is also defined when Q_PROCESSOR_RISCV_32 is
|
|
+ defined.
|
|
+
|
|
+ \sa QSysInfo::buildCpuArchitecture()
|
|
+*/
|
|
+
|
|
+/*!
|
|
+ \macro Q_PROCESSOR_RISCV_64
|
|
+ \relates <QtGlobal>
|
|
+ \since 5.13
|
|
+
|
|
+ Defined if the application is compiled for 64-bit RISC-V processors. The \l
|
|
+ Q_PROCESSOR_RISCV macro is also defined when Q_PROCESSOR_RISCV_64 is
|
|
+ defined.
|
|
+
|
|
+ \sa QSysInfo::buildCpuArchitecture()
|
|
+*/
|
|
+
|
|
+/*!
|
|
\macro Q_PROCESSOR_S390
|
|
\relates <QtGlobal>
|
|
|
|
--- a/src/corelib/global/qprocessordetection.h
|
|
+++ b/src/corelib/global/qprocessordetection.h
|
|
@@ -282,6 +282,20 @@
|
|
// Q_BYTE_ORDER not defined, use endianness auto-detection
|
|
|
|
/*
|
|
+ RISC-V family, known variants: 32- and 64-bit
|
|
+
|
|
+ RISC-V is little-endian.
|
|
+*/
|
|
+#elif defined(__riscv)
|
|
+# define Q_PROCESSOR_RISCV
|
|
+# if __riscv_xlen == 64
|
|
+# define Q_PROCESSOR_RISCV_64
|
|
+# else
|
|
+# define Q_PROCESSOR_RISCV_32
|
|
+# endif
|
|
+# define Q_BYTE_ORDER Q_LITTLE_ENDIAN
|
|
+
|
|
+/*
|
|
S390 family, known variant: S390X (64-bit)
|
|
|
|
S390 is big-endian.
|