From caf49a121f70247e3afa0060db59703cc437d4de Mon Sep 17 00:00:00 2001 From: tobocop2 <5562156+tobocop2@users.noreply.github.com> Date: Wed, 15 Jul 2026 00:05:18 -0400 Subject: [PATCH 1/3] macOS: build a baseline (non-AVX2) x64 WebKit Adds a bun-webkit-macos-amd64-baseline lane and forwards MARCH_FLAG into macos-cross-release.sh, which otherwise defaults x86_64 to -march=haswell. Without a baseline macOS WebKit, bun cannot build a baseline darwin bun, so @oven/bun-darwin-x64-baseline ships the AVX2 build and pre-AVX2 Intel Macs have no working binary. --- .github/workflows/build-reusable.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-reusable.yml b/.github/workflows/build-reusable.yml index 1c71527296e04..cecb346068bec 100644 --- a/.github/workflows/build-reusable.yml +++ b/.github/workflows/build-reusable.yml @@ -474,6 +474,14 @@ jobs: lto_flag: "" USE_MIMALLOC: "ON" USE_EXTERNAL_MIMALLOC: "ON" + - label: bun-webkit-macos-amd64-baseline + macos_arch: x86_64 + package_json_arch: "x64" + CMAKE_BUILD_TYPE: "Release" + lto_flag: "" + MARCH_FLAG: "-march=nehalem" + USE_MIMALLOC: "ON" + USE_EXTERNAL_MIMALLOC: "ON" - label: bun-webkit-macos-amd64-lto macos_arch: x86_64 package_json_arch: "x64" @@ -522,7 +530,7 @@ jobs: - name: Run run: | rm -rf ${{runner.temp}}/bun-webkit ${{runner.temp}}/bun-webkit.tar.gz - MACOS_ARCH="${{matrix.macos_arch}}" WEBKIT_RELEASE_TYPE="${{matrix.CMAKE_BUILD_TYPE}}" LTO_FLAG="${{matrix.lto_flag}}" CPP_FLAGS="${{matrix.cpp_flags}}" ENABLE_SANITIZERS="${{matrix.ENABLE_SANITIZERS}}" ENABLE_MALLOC_HEAP_BREAKDOWN="${{matrix.ENABLE_MALLOC_HEAP_BREAKDOWN}}" USE_MIMALLOC="${{matrix.USE_MIMALLOC || 'OFF'}}" USE_EXTERNAL_MIMALLOC="${{matrix.USE_EXTERNAL_MIMALLOC || 'OFF'}}" temp=${{runner.temp}} bash macos-cross-release.sh + MACOS_ARCH="${{matrix.macos_arch}}" MARCH_FLAG="${{matrix.MARCH_FLAG}}" WEBKIT_RELEASE_TYPE="${{matrix.CMAKE_BUILD_TYPE}}" LTO_FLAG="${{matrix.lto_flag}}" CPP_FLAGS="${{matrix.cpp_flags}}" ENABLE_SANITIZERS="${{matrix.ENABLE_SANITIZERS}}" ENABLE_MALLOC_HEAP_BREAKDOWN="${{matrix.ENABLE_MALLOC_HEAP_BREAKDOWN}}" USE_MIMALLOC="${{matrix.USE_MIMALLOC || 'OFF'}}" USE_EXTERNAL_MIMALLOC="${{matrix.USE_EXTERNAL_MIMALLOC || 'OFF'}}" temp=${{runner.temp}} bash macos-cross-release.sh cd ${{runner.temp}} echo "#define BUN_WEBKIT_VERSION \"${{ inputs.build_ref }}\"" >> bun-webkit/include/cmakeconfig.h echo '{ "name": "${{matrix.label}}", "version": "0.0.1-${{ inputs.build_ref }}", "os": ["darwin"], "cpu": ["${{matrix.package_json_arch}}"], "repository": "https://github.com/${{github.repository}}" }' > bun-webkit/package.json @@ -730,6 +738,10 @@ jobs: with: name: bun-webkit-macos-amd64 path: ${{runner.temp}}/bun-webkit-macos-amd64 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + name: bun-webkit-macos-amd64-baseline + path: ${{runner.temp}}/bun-webkit-macos-amd64-baseline - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: bun-webkit-macos-arm64-lto @@ -857,6 +869,7 @@ jobs: mv ${{runner.temp}}/bun-webkit-macos-arm64/bun-webkit.tar.gz ./out/bun-webkit-macos-arm64.tar.gz mv ${{runner.temp}}/bun-webkit-macos-arm64-asan/bun-webkit.tar.gz ./out/bun-webkit-macos-arm64-asan.tar.gz mv ${{runner.temp}}/bun-webkit-macos-amd64/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64.tar.gz + mv ${{runner.temp}}/bun-webkit-macos-amd64-baseline/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64-baseline.tar.gz mv ${{runner.temp}}/bun-webkit-macos-arm64-lto/bun-webkit.tar.gz ./out/bun-webkit-macos-arm64-lto.tar.gz mv ${{runner.temp}}/bun-webkit-macos-amd64-lto/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64-lto.tar.gz mv ${{runner.temp}}/bun-webkit-linux-amd64-debug-asan/bun-webkit.tar.gz ./out/bun-webkit-linux-amd64-debug-asan.tar.gz @@ -963,6 +976,7 @@ jobs: ./out/bun-webkit-macos-arm64-debug.tar.gz ./out/bun-webkit-macos-arm64-debug-asan.tar.gz ./out/bun-webkit-macos-amd64.tar.gz + ./out/bun-webkit-macos-amd64-baseline.tar.gz ./out/bun-webkit-macos-amd64-debug.tar.gz ./out/bun-webkit-macos-arm64-lto.tar.gz ./out/bun-webkit-macos-amd64-lto.tar.gz From d3678488d43c96247467f684aa2f1c2ab992c304 Mon Sep 17 00:00:00 2001 From: tobocop2 <5562156+tobocop2@users.noreply.github.com> Date: Wed, 15 Jul 2026 00:16:45 -0400 Subject: [PATCH 2/3] Also build the macOS amd64 baseline LTO variant bun's release cross-compiles darwin from Linux with LTO on by default (ltoDefault = release && (linux || darwinCross) && ci), and prebuiltSuffix() composes -baseline with -lto, so a darwin-x64-baseline release build requests bun-webkit-macos-amd64-baseline-lto.tar.gz. Without this lane that 404s. Mirrors the existing linux/windows amd64 baseline lanes, which each ship both a plain and an -lto variant. Caught by robobun in #291. --- .github/workflows/build-reusable.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/build-reusable.yml b/.github/workflows/build-reusable.yml index cecb346068bec..6c79b632123d4 100644 --- a/.github/workflows/build-reusable.yml +++ b/.github/workflows/build-reusable.yml @@ -482,6 +482,14 @@ jobs: MARCH_FLAG: "-march=nehalem" USE_MIMALLOC: "ON" USE_EXTERNAL_MIMALLOC: "ON" + - label: bun-webkit-macos-amd64-baseline-lto + macos_arch: x86_64 + package_json_arch: "x64" + CMAKE_BUILD_TYPE: "Release" + lto_flag: "-flto=thin -fno-split-lto-unit -fwhole-program-vtables -fforce-emit-vtables" + MARCH_FLAG: "-march=nehalem" + USE_MIMALLOC: "ON" + USE_EXTERNAL_MIMALLOC: "ON" - label: bun-webkit-macos-amd64-lto macos_arch: x86_64 package_json_arch: "x64" @@ -742,6 +750,10 @@ jobs: with: name: bun-webkit-macos-amd64-baseline path: ${{runner.temp}}/bun-webkit-macos-amd64-baseline + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + name: bun-webkit-macos-amd64-baseline-lto + path: ${{runner.temp}}/bun-webkit-macos-amd64-baseline-lto - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: bun-webkit-macos-arm64-lto @@ -870,6 +882,7 @@ jobs: mv ${{runner.temp}}/bun-webkit-macos-arm64-asan/bun-webkit.tar.gz ./out/bun-webkit-macos-arm64-asan.tar.gz mv ${{runner.temp}}/bun-webkit-macos-amd64/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64.tar.gz mv ${{runner.temp}}/bun-webkit-macos-amd64-baseline/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64-baseline.tar.gz + mv ${{runner.temp}}/bun-webkit-macos-amd64-baseline-lto/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64-baseline-lto.tar.gz mv ${{runner.temp}}/bun-webkit-macos-arm64-lto/bun-webkit.tar.gz ./out/bun-webkit-macos-arm64-lto.tar.gz mv ${{runner.temp}}/bun-webkit-macos-amd64-lto/bun-webkit.tar.gz ./out/bun-webkit-macos-amd64-lto.tar.gz mv ${{runner.temp}}/bun-webkit-linux-amd64-debug-asan/bun-webkit.tar.gz ./out/bun-webkit-linux-amd64-debug-asan.tar.gz @@ -977,6 +990,7 @@ jobs: ./out/bun-webkit-macos-arm64-debug-asan.tar.gz ./out/bun-webkit-macos-amd64.tar.gz ./out/bun-webkit-macos-amd64-baseline.tar.gz + ./out/bun-webkit-macos-amd64-baseline-lto.tar.gz ./out/bun-webkit-macos-amd64-debug.tar.gz ./out/bun-webkit-macos-arm64-lto.tar.gz ./out/bun-webkit-macos-amd64-lto.tar.gz From 2e7612fc85ea516d4edecefc4879f0bddaa0abe8 Mon Sep 17 00:00:00 2001 From: tobocop2 <5562156+tobocop2@users.noreply.github.com> Date: Wed, 15 Jul 2026 00:19:20 -0400 Subject: [PATCH 3/3] Also publish the windows amd64 baseline LTO artifact The windows-cross job builds bun-webkit-windows-amd64-baseline-lto on every run, but the release job never downloaded, staged, or published it, so the tarball 404s. bun's scripts/build/config.ts references this variant. Caught by robobun in #291. --- .github/workflows/build-reusable.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-reusable.yml b/.github/workflows/build-reusable.yml index 6c79b632123d4..d89a097e9b90e 100644 --- a/.github/workflows/build-reusable.yml +++ b/.github/workflows/build-reusable.yml @@ -786,6 +786,10 @@ jobs: with: name: bun-webkit-windows-amd64-baseline path: ${{runner.temp}}/bun-webkit-windows-amd64-baseline + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + name: bun-webkit-windows-amd64-baseline-lto + path: ${{runner.temp}}/bun-webkit-windows-amd64-baseline-lto - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: bun-webkit-windows-amd64-asan @@ -906,6 +910,7 @@ jobs: mv ${{runner.temp}}/bun-webkit-linux-amd64-musl-baseline-lto/bun-webkit.tar.gz ./out/bun-webkit-linux-amd64-musl-baseline-lto.tar.gz mv ${{runner.temp}}/bun-webkit-windows-amd64/bun-webkit.tar.gz ./out/bun-webkit-windows-amd64.tar.gz mv ${{runner.temp}}/bun-webkit-windows-amd64-baseline/bun-webkit.tar.gz ./out/bun-webkit-windows-amd64-baseline.tar.gz + mv ${{runner.temp}}/bun-webkit-windows-amd64-baseline-lto/bun-webkit.tar.gz ./out/bun-webkit-windows-amd64-baseline-lto.tar.gz mv ${{runner.temp}}/bun-webkit-windows-amd64-asan/bun-webkit.tar.gz ./out/bun-webkit-windows-amd64-asan.tar.gz mv ${{runner.temp}}/bun-webkit-windows-amd64-debug/bun-webkit.tar.gz ./out/bun-webkit-windows-amd64-debug.tar.gz mv ${{runner.temp}}/bun-webkit-windows-arm64/bun-webkit.tar.gz ./out/bun-webkit-windows-arm64.tar.gz @@ -1001,6 +1006,7 @@ jobs: files: | ./out/bun-webkit-windows-amd64.tar.gz ./out/bun-webkit-windows-amd64-baseline.tar.gz + ./out/bun-webkit-windows-amd64-baseline-lto.tar.gz ./out/bun-webkit-windows-amd64-asan.tar.gz ./out/bun-webkit-windows-amd64-debug.tar.gz ./out/bun-webkit-windows-arm64.tar.gz