xref: /OK3568_Linux_fs/buildroot/package/qt5/qt5base/0006-Fix-build-on-riscv32.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 035dc537bee26e3b63a211b2835d8560439e161f Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Fri, 27 Aug 2021 16:28:32 +0200
4*4882a593SmuzhiyunSubject: Fix build on riscv32
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunriscv32 fails to build because __NR_futex is not defined on this
7*4882a593Smuzhiyunarchitecture:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunIn file included from thread/qmutex_linux.cpp:45,
10*4882a593Smuzhiyun                 from thread/qmutex.cpp:804:
11*4882a593Smuzhiyunthread/qfutex_p.h: In function 'int QtLinuxFutex::_q_futex(int*, int, int, quintptr, int*, int)':
12*4882a593Smuzhiyunthread/qfutex_p.h:116:30: error: '__NR_futex' was not declared in this scope; did you mean '_q_futex'?
13*4882a593Smuzhiyun  116 |         int result = syscall(__NR_futex, addr, op | FUTEX_PRIVATE_FLAG, val, val2, addr2, val3);
14*4882a593Smuzhiyun      |                              ^~~~~~~~~~
15*4882a593Smuzhiyun      |                              _q_futex
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunPick-to: 6.1 6.2
18*4882a593SmuzhiyunFixes: QTBUG-96067
19*4882a593SmuzhiyunChange-Id: Ib6a9bcc496f37e69ac39362cb0a021fccaf311f5
20*4882a593SmuzhiyunReviewed-by: Thiago Macieira <thiago.macieira@intel.com>
21*4882a593Smuzhiyun[Retrieved from:
22*4882a593Smuzhiyunhttps://code.qt.io/cgit/qt/qtbase.git/commit/?id=035dc537bee26e3b63a211b2835d8560439e161f]
23*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
24*4882a593Smuzhiyun---
25*4882a593Smuzhiyun src/corelib/thread/qfutex_p.h | 5 +++++
26*4882a593Smuzhiyun 1 file changed, 5 insertions(+)
27*4882a593Smuzhiyun
28*4882a593Smuzhiyundiff --git a/src/corelib/thread/qfutex_p.h b/src/corelib/thread/qfutex_p.h
29*4882a593Smuzhiyunindex 40482b6fc1..037207a5c0 100644
30*4882a593Smuzhiyun--- a/src/corelib/thread/qfutex_p.h
31*4882a593Smuzhiyun+++ b/src/corelib/thread/qfutex_p.h
32*4882a593Smuzhiyun@@ -103,6 +103,11 @@ QT_END_NAMESPACE
33*4882a593Smuzhiyun // if not defined in linux/futex.h
34*4882a593Smuzhiyun #  define FUTEX_PRIVATE_FLAG        128         // added in v2.6.22
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun+// RISC-V does not supply __NR_futex
37*4882a593Smuzhiyun+#  ifndef __NR_futex
38*4882a593Smuzhiyun+#    define __NR_futex __NR_futex_time64
39*4882a593Smuzhiyun+#  endif
40*4882a593Smuzhiyun+
41*4882a593Smuzhiyun QT_BEGIN_NAMESPACE
42*4882a593Smuzhiyun namespace QtLinuxFutex {
43*4882a593Smuzhiyun     constexpr inline bool futexAvailable() { return true; }
44*4882a593Smuzhiyun--
45*4882a593Smuzhiyuncgit v1.2.1
46*4882a593Smuzhiyun
47