From: Michael Jeanson Date: Mon, 22 Jul 2024 17:47:33 +0000 (-0400) Subject: Allow building with GCC >= 13.3 on RISC-V X-Git-Tag: v0.14.1~2 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=86cca1f6d1a6052817ed671255b022f04a22226f;p=userspace-rcu.git 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 --- diff --git a/include/urcu/uatomic/riscv.h b/include/urcu/uatomic/riscv.h index 1bf82d6..5bd1f80 100644 --- a/include/urcu/uatomic/riscv.h +++ b/include/urcu/uatomic/riscv.h @@ -31,15 +31,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