[Buildroot] [PATCH 1/1] package/qt5/qt5base: fix build on riscv32

Arnout Vandecappelle arnout at mind.be
Fri Sep 3 18:58:51 UTC 2021



On 02/09/2021 18:22, Fabrice Fontaine wrote:
> Fix the following build failure on riscv32:
> 
> 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
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/ffedfc000029072d5d724e98ab4551fe973658ce
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>

 Applied to master, thanks.

 Regards,
 Arnout

> ---
>  .../qt5base/0009-Fix-build-on-riscv32.patch   | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
>  create mode 100644 package/qt5/qt5base/0009-Fix-build-on-riscv32.patch
> 
> diff --git a/package/qt5/qt5base/0009-Fix-build-on-riscv32.patch b/package/qt5/qt5base/0009-Fix-build-on-riscv32.patch
> new file mode 100644
> index 0000000000..98c7210551
> --- /dev/null
> +++ b/package/qt5/qt5base/0009-Fix-build-on-riscv32.patch
> @@ -0,0 +1,45 @@
> +From 035dc537bee26e3b63a211b2835d8560439e161f Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +Date: Fri, 27 Aug 2021 16:28:32 +0200
> +Subject: 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 at intel.com>
> +[Retrieved from:
> +https://code.qt.io/cgit/qt/qtbase.git/commit/?id=035dc537bee26e3b63a211b2835d8560439e161f]
> +---
> + 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 40482b6fc1..037207a5c0 100644
> +--- a/src/corelib/thread/qfutex_p.h
> ++++ b/src/corelib/thread/qfutex_p.h
> +@@ -103,6 +103,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
> ++
> + QT_BEGIN_NAMESPACE
> + namespace QtLinuxFutex {
> +     constexpr inline bool futexAvailable() { return true; }
> +-- 
> +cgit v1.2.1
> +
> 


More information about the buildroot mailing list