Allow building with GCC >= 13.3 on RISC-V
authorMichael Jeanson <mjeanson@efficios.com>
Mon, 22 Jul 2024 17:47:33 +0000 (13:47 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 23 Jul 2024 19:16:21 +0000 (15:16 -0400)
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 <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/urcu/uatomic/riscv.h

index c1ba29e2dd1f711236c8ace982f3c75a49961c6d..abe73d4623ce06d69821d8fc7cd6fa28befc0810 100644 (file)
 /*
  * See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104831> 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.
  *
- *  - <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4990cf84c460f064d6281d0813f20b0ef20c7448>
+ *  - <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=dcd7b2f5f7233a04c8b14b362d0befa76e9654c0>
  *  - <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4990cf84c460f064d6281d0813f20b0ef20c7448>
  *  - <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d199d2e56da2379004e7e0457150409c0c99d3e6>
  */
 #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
This page took 0.025631 seconds and 4 git commands to generate.