sysprog21 / rv32emu

Compact and Efficient RISC-V RV32I[MAFC] emulator
MIT License
402 stars 99 forks source link

jit: Build failure if no LLVM is found #475

Closed jserv closed 3 months ago

jserv commented 3 months ago

If tier-2 JIT compiler (T2C) is not enabled due to the lack of LLVM runtime, the build of tier-1 JIT compiler (T1C) will fail as following:

src/riscv.c:293:21: error: implicit declaration of function 'jit_cache_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    rv->jit_cache = jit_cache_init();
                    ^
src/riscv.c:293:21: note: did you mean 'jit_state_init'?
src/jit.h:48:19: note: 'jit_state_init' declared here
struct jit_state *jit_state_init(size_t size);
                  ^
src/riscv.c:293:19: warning: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
    rv->jit_cache = jit_cache_init();
                  ^ ~~~~~~~~~~~~~~~~
src/riscv.c:395:5: error: implicit declaration of function 'jit_cache_exit' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    jit_cache_exit(rv->jit_cache);
    ^
src/riscv.c:395:5: note: did you mean 'jit_state_exit'?
src/jit.h:49:6: note: 'jit_state_exit' declared here
void jit_state_exit(struct jit_state *state);
     ^
1 warning and 2 errors generated.
make: *** [build/riscv.o] Error 1

By the way, we shall validate T1C-only builds in GitHub Actions.