diff --git a/compiler-rt/lib/builtins/clear_cache.c b/compiler-rt/lib/builtins/clear_cache.c --- a/compiler-rt/lib/builtins/clear_cache.c +++ b/compiler-rt/lib/builtins/clear_cache.c @@ -173,6 +173,8 @@ arg.len = (uintptr_t)end - (uintptr_t)start; sysarch(RISCV_SYNC_ICACHE, &arg); +#elif defined(__riscv) && defined(__ELF__) + __asm__ volatile("fence.i"); #else #if __APPLE__ // On Darwin, sys_icache_invalidate() provides this functionality