test(smokes): make LLVM EXE runner skip when object emit unavailable
This commit is contained in:
@ -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"
|
||||
|
||||
Reference in New Issue
Block a user