YJIT: ZJIT: Allow both JITs in the same build

This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.

Add a root Cargo workspace that contains both the yjit and zjit crate.
The common Rust build integration mechanisms are factored out into
defs/jit.mk.

Combo YJIT+ZJIT dev builds are supported; if either JIT uses
`--enable-*=dev`, both of them are built in dev mode.

The combo build requires Cargo, but building one JIT at a time with only
rustc in release build remains supported.
This commit is contained in:
Alan Wu 2025-05-07 00:19:36 +09:00
parent b5575a80bc
commit 92b218fbc3
Notes: git 2025-05-14 15:39:18 +00:00
20 changed files with 297 additions and 197 deletions

View file

@ -35,3 +35,5 @@ default = []
# When moving an object, clear its original copy.
clear_old_copy = []
[workspace]