| From 25a0057e8d7afaab3492e03efb3f85581f1cf9b2 Mon Sep 17 00:00:00 2001 |
| From: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| Date: Fri, 27 Aug 2021 16:28:32 +0200 |
| Subject: [PATCH] Fix build on riscv32 |
| |
| riscv32 fails to build because __NR_futex is not defined on this |
| architecture: |
| |
| In file included from thread/qmutex_linux.cpp:45, |
| from thread/qmutex.cpp:804: |
| thread/qfutex_p.h: In function 'int QtLinuxFutex::_q_futex(int*, int, int, quintptr, int*, int)': |
| thread/qfutex_p.h:116:30: error: '__NR_futex' was not declared in this scope; did you mean '_q_futex'? |
| 116 | int result = syscall(__NR_futex, addr, op | FUTEX_PRIVATE_FLAG, val, val2, addr2, val3); |
| | ^~~~~~~~~~ |
| | _q_futex |
| |
| Pick-to: 6.1 6.2 |
| Fixes: QTBUG-96067 |
| Change-Id: Ib6a9bcc496f37e69ac39362cb0a021fccaf311f5 |
| Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> |
| [Retrieved from: |
| https://code.qt.io/cgit/qt/qtbase.git/commit/?id=035dc537bee26e3b63a211b2835d8560439e161f] |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| [Dario: make the patch to be applied with fuzz factor 0] |
| Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> |
| --- |
| src/corelib/thread/qfutex_p.h | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/src/corelib/thread/qfutex_p.h b/src/corelib/thread/qfutex_p.h |
| index f287b752d75f..fd7d09ac8572 100644 |
| --- a/src/corelib/thread/qfutex_p.h |
| +++ b/src/corelib/thread/qfutex_p.h |
| @@ -81,6 +81,11 @@ QT_END_NAMESPACE |
| // if not defined in linux/futex.h |
| # define FUTEX_PRIVATE_FLAG 128 // added in v2.6.22 |
| |
| +// RISC-V does not supply __NR_futex |
| +# ifndef __NR_futex |
| +# define __NR_futex __NR_futex_time64 |
| +# endif |
| + |
| # if __has_feature(thread_sanitizer) || defined(__SANITIZE_THREAD__) |
| # include <sanitizer/tsan_interface.h> |
| inline void _q_tsan_acquire(void *addr, void *addr2) |
| -- |
| 2.43.0 |
| |