From 50ed43df42f6e113d1689c1df44b4536ac7c7238 Mon Sep 17 00:00:00 2001 From: Daniel Stuart Date: Fri, 20 Dec 2024 15:27:37 -0300 Subject: [PATCH] Use long int builtins for risc-v 32-bit targets (#24553) Solves compilation using riscv32-unknown-elf-gcc, compiler defines int32_t as long int. --- lib/nimbase.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/nimbase.h b/lib/nimbase.h index 5c8b1c678c..4b338548af 100644 --- a/lib/nimbase.h +++ b/lib/nimbase.h @@ -15,6 +15,7 @@ __TINYC__ __clang__ __AVR__ __arm__ +__riscv __EMSCRIPTEN__ */ @@ -580,8 +581,8 @@ NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "P #define nimMulInt64(a, b, res) __builtin_smulll_overflow(a, b, (long long int*)res) #if NIM_INTBITS == 32 - #if defined(__arm__) && defined(__GNUC__) - /* arm-none-eabi-gcc targets defines int32_t as long int */ + #if (defined(__arm__) || defined(__riscv)) && defined(__GNUC__) + /* arm-none-eabi-gcc and riscv32-unknown-elf-gcc targets define int32_t as long int */ #define nimAddInt(a, b, res) __builtin_saddl_overflow(a, b, res) #define nimSubInt(a, b, res) __builtin_ssubl_overflow(a, b, res) #define nimMulInt(a, b, res) __builtin_smull_overflow(a, b, res)