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