From 9a37bbc78b07f3f9db2454fc5facb31dfa86e075 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Mon, 22 Jul 2024 13:47:33 -0400 Subject: [PATCH] Allow building with GCC >= 13.3 on RISC-V Building with GCC was marked as broken on RISC-V in "46980605309e922d14f646c6705d184cb674c0f7". The patches fixing the issue with atomic operations were included in the GCC 14 branch and backported to 13.3.0. Add the appropriate checks to allow building on RISC-V with the fixed GCC versions. Tested with GCC 13.3.0 on a VisionFive 2 board. Change-Id: I9e4498640116b2b5fe73dd8e1822309444130998 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- include/urcu/uatomic/riscv.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/urcu/uatomic/riscv.h b/include/urcu/uatomic/riscv.h index c1ba29e..abe73d4 100644 --- a/include/urcu/uatomic/riscv.h +++ b/include/urcu/uatomic/riscv.h @@ -17,15 +17,18 @@ /* * See for details. * - * Until the following patches are backported, Userspace RCU is broken for the - * RISC-V architecture when compiled with GCC. + * The following GCC patches are required to have a working Userspace RCU on + * the RISC-V architecture. The were introduced in GCC 14 and backported to + * 13.3.0. * - * - + * - * - * - */ #ifdef URCU_GCC_VERSION -# error "Implementations of some atomic operations of GCC for RISC-V are insufficient for sequential consistency. For this reason Userspace RCU is currently marked as 'broken' for RISC-V with GCC. However, it is still possible to use other toolchains." +# if (URCU_GCC_VERSION < 130300) +# error "Implementations of some atomic operations of GCC < 13.3.0 for RISC-V are insufficient for sequential consistency. For this reason Userspace RCU is currently marked as 'broken' for RISC-V on these GCC versions." +# endif #endif #ifdef __cplusplus -- 2.34.1