test(smokes): make LLVM EXE runner skip when object emit unavailable

This commit is contained in:
nyash-codex
2025-12-18 09:13:23 +09:00
parent b5d628d8bf
commit 4a109eb6b9
2 changed files with 44 additions and 4 deletions

View File

@ -46,9 +46,13 @@ if ! command -v llvm-config-18 >/dev/null 2>&1; then
exit 2
fi
# Use the cargo target dir when set (helps LLVM EXE smokes that build under /tmp).
CARGO_TARGET_DIR_EFFECTIVE="${CARGO_TARGET_DIR:-$PWD/target}"
echo "[1/4] Building hakorune (feature selectable) ..."
# Select LLVM feature: default harness (llvm), or legacy inkwell when NYASH_LLVM_FEATURE=llvm-inkwell-legacy
LLVM_FEATURE=${NYASH_LLVM_FEATURE:-llvm}
# Use 24 threads for parallel build
if [[ "$LLVM_FEATURE" == "llvm-inkwell-legacy" ]]; then
# Legacy inkwell需要LLVM_SYS_180_PREFIX
@ -135,7 +139,7 @@ echo "[3/4] Building Nyash Kernel static runtime ..."
if [[ "${NYASH_LLVM_SKIP_NYRT_BUILD:-0}" == "1" ]]; then
echo " Skipping Nyash Kernel build (NYASH_LLVM_SKIP_NYRT_BUILD=1)"
else
NYRT_LIB_PRIMARY="target/release/libnyash_kernel.a"
NYRT_LIB_PRIMARY="$CARGO_TARGET_DIR_EFFECTIVE/release/libnyash_kernel.a"
NYRT_LIB_ALT="crates/nyash_kernel/target/release/libnyash_kernel.a"
if [[ ( -f "$NYRT_LIB_PRIMARY" || -f "$NYRT_LIB_ALT" ) && "${NYASH_LLVM_FORCE_NYRT_BUILD:-0}" != "1" ]]; then
echo " Using cached Nyash Kernel runtime (set NYASH_LLVM_FORCE_NYRT_BUILD=1 to rebuild)"
@ -149,7 +153,7 @@ fi
mkdir -p "$(dirname "$OUT")"
echo "[4/4] Linking $OUT ..."
cc "$OBJ" \
-L target/release \
-L "$CARGO_TARGET_DIR_EFFECTIVE/release" \
-L crates/nyash_kernel/target/release \
-Wl,--whole-archive -lnyash_kernel -Wl,--no-whole-archive \
-lpthread -ldl -lm -o "$OUT"