Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 1 | From 0a3222338efc108c831fbdd719a47d35f4b0adcd Mon Sep 17 00:00:00 2001 |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 2 | From: Khem Raj <raj.khem@gmail.com> |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 3 | Date: Wed, 18 Aug 2021 06:49:25 +0000 |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 4 | Subject: [PATCH] aio_linux: Check if syscall exists before using it |
| 5 | |
| 6 | Return -ENOSYS if not implememented, fixes build on arches like RISCV32 |
| 7 | Fixes |
| 8 | tpool/aio_linux.cc:63:20: error: '__NR_io_getevents' was not declared in this scope; did you mean 'io_getevents'? |
| 9 | 63 | int ret= syscall(__NR_io_getevents, reinterpret_cast<long>(ctx), |
| 10 | | ^~~~~~~~~~~~~~~~~ |
| 11 | | io_getevents |
| 12 | |
| 13 | Upstream-Staus: Pending |
| 14 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 15 | --- |
| 16 | tpool/aio_linux.cc | 4 ++++ |
| 17 | 1 file changed, 4 insertions(+) |
| 18 | |
| 19 | diff --git a/tpool/aio_linux.cc b/tpool/aio_linux.cc |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 20 | index 4abc213..da75411 100644 |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 21 | --- a/tpool/aio_linux.cc |
| 22 | +++ b/tpool/aio_linux.cc |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 23 | @@ -58,6 +58,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/ |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 24 | */ |
| 25 | static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev) |
| 26 | { |
| 27 | +#ifdef __NR_io_getevents |
| 28 | int saved_errno= errno; |
| 29 | int ret= syscall(__NR_io_getevents, reinterpret_cast<long>(ctx), |
| 30 | min_nr, nr, ev, 0); |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 31 | @@ -67,6 +68,9 @@ static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev) |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 32 | errno= saved_errno; |
| 33 | } |
| 34 | return ret; |
| 35 | +#else |
| 36 | + return -ENOSYS; |
| 37 | +#endif |
| 38 | } |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 39 | |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 40 | |
| 41 | -- |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame^] | 42 | 2.29.2 |
Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 43 | |