Compare commits

...

10 Commits

Author SHA1 Message Date
Dylan Conway
a8fb64cc96 Merge branch 'main' into claude/qemu-baseline-webkit-fix 2026-01-29 17:19:17 -08:00
Dylan Conway
aaf5fdc2cd Merge branch 'main' into claude/qemu-baseline-webkit-fix 2026-01-29 15:54:50 -08:00
Dylan Conway
ec1e869aab Merge branch 'main' into claude/qemu-baseline-webkit-fix 2026-01-29 15:21:53 -08:00
Dylan Conway
1730ee9527 Update WebKit to autobuild-596e48e22e3a1090e5b802744a7938088b1ea860 2026-01-29 15:17:33 -08:00
Dylan Conway
6f71590d94 improve verify script output: show binary name, path, and CPU description 2026-01-29 15:14:23 -08:00
Dylan Conway
d7a78d87d9 fix: capture exit code in else branch so SIGILL actually fails the step 2026-01-29 15:06:22 -08:00
Dylan Conway
6c7339c137 [publish images] bake QEMU into CI images instead of installing at runtime
- Add qemu-user-static to .buildkite/Dockerfile (glibc agents)
- Add qemu-x86_64/qemu-aarch64 to scripts/bootstrap.sh (Alpine agents)
- Bump bootstrap version 26 -> 27 to trigger image rebuild
- Remove install logic from verify-baseline-cpu.sh
- Switch aarch64 CPU model from cortex-a35 to cortex-a53 (more widely
  supported across QEMU versions, same ARMv8.0-A feature set)
2026-01-29 14:15:45 -08:00
Dylan Conway
23caa42291 fix: use sudo for QEMU package installation on CI agents 2026-01-29 13:30:28 -08:00
Dylan Conway
7f2268bd01 fix: unzip each artifact separately and verify both profile and stripped binaries
The build-bun step uploads both bun-{triplet}.zip and
bun-{triplet}-profile.zip. Previously 'unzip -o *.zip' failed because
unzip treated the second filename as a filter inside the first archive.

Now each zip is extracted individually into its own directory and both
binaries (bun and bun-profile) are verified under QEMU.
2026-01-29 12:56:54 -08:00
Dylan Conway
2a41c7ec43 ci: add QEMU-based baseline CPU verification steps
Add CI steps that verify baseline builds don't use CPU instructions
beyond their target. Uses QEMU user-mode emulation with restricted
CPU features — any illegal instruction causes SIGILL and fails the build.

Platforms verified:
- linux-x64-baseline (glibc): qemu-x86_64 -cpu Nehalem (catches AVX/AVX2)
- linux-x64-musl-baseline: same
- linux-aarch64 (glibc): qemu-aarch64 -cpu cortex-a35 (catches LSE/SVE)
- linux-aarch64-musl: same

Each step runs two smoke tests under QEMU:
1. bun --version (startup + linker + static init)
2. bun -e eval (JSC initialization + basic execution)
2026-01-29 12:08:51 -08:00

Diff Content Not Available