diff --git a/.buildkite/Dockerfile b/.buildkite/Dockerfile index 2b5f944834..c4b74fb76d 100644 --- a/.buildkite/Dockerfile +++ b/.buildkite/Dockerfile @@ -1,5 +1,5 @@ -ARG LLVM_VERSION="19" -ARG REPORTED_LLVM_VERSION="19.1.7" +ARG LLVM_VERSION="21" +ARG REPORTED_LLVM_VERSION="21.1.0" ARG OLD_BUN_VERSION="1.1.38" ARG BUILDKITE_AGENT_TAGS="queue=linux,os=linux,arch=${TARGETARCH}" diff --git a/.buildkite/ci.mjs b/.buildkite/ci.mjs index a9fe144bdb..2cc46e98ef 100755 --- a/.buildkite/ci.mjs +++ b/.buildkite/ci.mjs @@ -109,9 +109,9 @@ const buildPlatforms = [ { os: "linux", arch: "x64", distro: "amazonlinux", release: "2023", features: ["docker"] }, { os: "linux", arch: "x64", baseline: true, distro: "amazonlinux", release: "2023", features: ["docker"] }, { os: "linux", arch: "x64", profile: "asan", distro: "amazonlinux", release: "2023", features: ["docker"] }, - { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.22" }, - { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.22" }, - { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.22" }, + { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.23" }, + { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.23" }, + { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.23" }, { os: "windows", arch: "x64", release: "2019" }, { os: "windows", arch: "x64", baseline: true, release: "2019" }, ]; @@ -131,9 +131,9 @@ const testPlatforms = [ { os: "linux", arch: "aarch64", distro: "ubuntu", release: "25.04", tier: "latest" }, { os: "linux", arch: "x64", distro: "ubuntu", release: "25.04", tier: "latest" }, { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "25.04", tier: "latest" }, - { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.22", tier: "latest" }, - { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.22", tier: "latest" }, - { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.22", tier: "latest" }, + { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.23", tier: "latest" }, + { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.23", tier: "latest" }, + { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.23", tier: "latest" }, { os: "windows", arch: "x64", release: "2019", tier: "oldest" }, { os: "windows", arch: "x64", release: "2019", baseline: true, tier: "oldest" }, ]; @@ -341,7 +341,7 @@ function getZigPlatform() { arch: "aarch64", abi: "musl", distro: "alpine", - release: "3.22", + release: "3.23", }; } diff --git a/.github/workflows/CLAUDE.md b/.github/workflows/CLAUDE.md index 348555e184..07b8f207c0 100644 --- a/.github/workflows/CLAUDE.md +++ b/.github/workflows/CLAUDE.md @@ -33,8 +33,8 @@ The workflow runs all three formatters simultaneously: #### 3. Tool Installation -##### Clang-format-19 -- Installs ONLY `clang-format-19` package (not the entire LLVM toolchain) +##### Clang-format-21 +- Installs ONLY `clang-format-21` package (not the entire LLVM toolchain) - Uses `--no-install-recommends --no-install-suggests` to skip unnecessary packages - Quiet installation with `-qq` and `-o=Dpkg::Use-Pty=0` @@ -85,7 +85,7 @@ The workflow runs all three formatters simultaneously: ```bash # Test the clang-format script -export LLVM_VERSION_MAJOR=19 +export LLVM_VERSION_MAJOR=21 ./scripts/run-clang-format.sh format # Test with check mode (no modifications) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index cc10727b59..0c5639ae88 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -10,8 +10,8 @@ on: merge_group: env: BUN_VERSION: "1.3.2" - LLVM_VERSION: "19.1.7" - LLVM_VERSION_MAJOR: "19" + LLVM_VERSION: "21.1.0" + LLVM_VERSION_MAJOR: "21" jobs: autofix: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 750eb17a62..3fe476a49a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ $ sudo pacman -S base-devel cmake git go libiconv libtool make ninja pkg-config ``` ```bash#Fedora -$ sudo dnf install cargo clang19 llvm19 lld19 cmake git golang libtool ninja-build pkg-config rustc ruby libatomic-static libstdc++-static sed unzip which libicu-devel 'perl(Math::BigInt)' +$ sudo dnf install cargo clang21 llvm21 lld21 cmake git golang libtool ninja-build pkg-config rustc ruby libatomic-static libstdc++-static sed unzip which libicu-devel 'perl(Math::BigInt)' ``` ```bash#openSUSE Tumbleweed @@ -90,17 +90,17 @@ Our build scripts will automatically detect and use `ccache` if available. You c ## Install LLVM -Bun requires LLVM 19 (`clang` is part of LLVM). This version requirement is to match WebKit (precompiled), as mismatching versions will cause memory allocation failures at runtime. In most cases, you can install LLVM through your system package manager: +Bun requires LLVM 21 (`clang` is part of LLVM). This version requirement is to match WebKit (precompiled), as mismatching versions will cause memory allocation failures at runtime. In most cases, you can install LLVM through your system package manager: {% codetabs group="os" %} ```bash#macOS (Homebrew) -$ brew install llvm@19 +$ brew install llvm@21 ``` ```bash#Ubuntu/Debian $ # LLVM has an automatic installation script that is compatible with all versions of Ubuntu -$ wget https://apt.llvm.org/llvm.sh -O - | sudo bash -s -- 19 all +$ wget https://apt.llvm.org/llvm.sh -O - | sudo bash -s -- 21 all ``` ```bash#Arch @@ -112,17 +112,17 @@ $ sudo dnf install llvm clang lld-devel ``` ```bash#openSUSE Tumbleweed -$ sudo zypper install clang19 lld19 llvm19 +$ sudo zypper install clang21 lld21 llvm21 ``` {% /codetabs %} -If none of the above solutions apply, you will have to install it [manually](https://github.com/llvm/llvm-project/releases/tag/llvmorg-19.1.7). +If none of the above solutions apply, you will have to install it [manually](https://github.com/llvm/llvm-project/releases/tag/llvmorg-21.1.0). -Make sure Clang/LLVM 19 is in your path: +Make sure Clang/LLVM 21 is in your path: ```bash -$ which clang-19 +$ which clang-21 ``` If not, run this to manually add it: @@ -131,13 +131,13 @@ If not, run this to manually add it: ```bash#macOS (Homebrew) # use fish_add_path if you're using fish -# use path+="$(brew --prefix llvm@19)/bin" if you are using zsh -$ export PATH="$(brew --prefix llvm@19)/bin:$PATH" +# use path+="$(brew --prefix llvm@21)/bin" if you are using zsh +$ export PATH="$(brew --prefix llvm@21)/bin:$PATH" ``` ```bash#Arch # use fish_add_path if you're using fish -$ export PATH="$PATH:/usr/lib/llvm19/bin" +$ export PATH="$PATH:/usr/lib/llvm21/bin" ``` {% /codetabs %} @@ -304,7 +304,7 @@ The issue may manifest when initially running `bun setup` as Clang being unable ``` The C++ compiler - "/usr/bin/clang++-19" + "/usr/bin/clang++-21" is not able to compile a simple test program. ``` diff --git a/cmake/tools/SetupLLVM.cmake b/cmake/tools/SetupLLVM.cmake index a250342018..248bc9fcf9 100644 --- a/cmake/tools/SetupLLVM.cmake +++ b/cmake/tools/SetupLLVM.cmake @@ -12,7 +12,7 @@ if(NOT ENABLE_LLVM) return() endif() -set(DEFAULT_LLVM_VERSION "19.1.7") +set(DEFAULT_LLVM_VERSION "21.1.0") optionx(LLVM_VERSION STRING "The version of LLVM to use" DEFAULT ${DEFAULT_LLVM_VERSION}) diff --git a/dockerhub/alpine/Dockerfile b/dockerhub/alpine/Dockerfile index 4d5a01876f..201d775b10 100644 --- a/dockerhub/alpine/Dockerfile +++ b/dockerhub/alpine/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.22 AS build +FROM alpine:3.23 AS build # https://github.com/oven-sh/bun/releases ARG BUN_VERSION=latest @@ -44,7 +44,7 @@ RUN apk --no-cache add ca-certificates curl dirmngr gpg gpg-agent unzip \ && rm -f "bun-linux-$build.zip" SHASUMS256.txt.asc SHASUMS256.txt \ && chmod +x /usr/local/bin/bun -FROM alpine:3.22 +FROM alpine:3.23 # Disable the runtime transpiler cache by default inside Docker containers. # On ephemeral containers, the cache is not useful diff --git a/docs/project/building-windows.mdx b/docs/project/building-windows.mdx index dc0b4836d3..bbf5f6458e 100644 --- a/docs/project/building-windows.mdx +++ b/docs/project/building-windows.mdx @@ -35,7 +35,7 @@ winget install "Visual Studio Community 2022" --override "--add Microsoft.Visual After Visual Studio, you need the following: -- LLVM 19.1.7 +- LLVM 21.1.0 - Go - Rust - NASM @@ -51,7 +51,7 @@ After Visual Studio, you need the following: irm https://get.scoop.sh | iex scoop install nodejs-lts go rust nasm ruby perl ccache # scoop seems to be buggy if you install llvm and the rest at the same time -scoop install llvm@19.1.7 +scoop install llvm@21.1.0 ``` diff --git a/docs/project/contributing.mdx b/docs/project/contributing.mdx index 36353feaa0..3a61983356 100644 --- a/docs/project/contributing.mdx +++ b/docs/project/contributing.mdx @@ -40,7 +40,7 @@ sudo pacman -S base-devel cmake git go libiconv libtool make ninja pkg-config py ``` ```bash Fedora -sudo dnf install cargo clang19 llvm19 lld19 cmake git golang libtool ninja-build pkg-config rustc ruby libatomic-static libstdc++-static sed unzip which libicu-devel 'perl(Math::BigInt)' +sudo dnf install cargo clang21 llvm21 lld21 cmake git golang libtool ninja-build pkg-config rustc ruby libatomic-static libstdc++-static sed unzip which libicu-devel 'perl(Math::BigInt)' ``` ```bash openSUSE Tumbleweed @@ -95,17 +95,17 @@ Our build scripts will automatically detect and use `ccache` if available. You c ## Install LLVM -Bun requires LLVM 19 (`clang` is part of LLVM). This version requirement is to match WebKit (precompiled), as mismatching versions will cause memory allocation failures at runtime. In most cases, you can install LLVM through your system package manager: +Bun requires LLVM 21 (`clang` is part of LLVM). This version requirement is to match WebKit (precompiled), as mismatching versions will cause memory allocation failures at runtime. In most cases, you can install LLVM through your system package manager: ```bash macOS (Homebrew) -brew install llvm@19 +brew install llvm@21 ``` ```bash Ubuntu/Debian # LLVM has an automatic installation script that is compatible with all versions of Ubuntu -wget https://apt.llvm.org/llvm.sh -O - | sudo bash -s -- 19 all +wget https://apt.llvm.org/llvm.sh -O - | sudo bash -s -- 21 all ``` ```bash Arch @@ -117,17 +117,17 @@ sudo dnf install llvm clang lld-devel ``` ```bash openSUSE Tumbleweed -sudo zypper install clang19 lld19 llvm19 +sudo zypper install clang21 lld21 llvm21 ``` -If none of the above solutions apply, you will have to install it [manually](https://github.com/llvm/llvm-project/releases/tag/llvmorg-19.1.7). +If none of the above solutions apply, you will have to install it [manually](https://github.com/llvm/llvm-project/releases/tag/llvmorg-21.1.0). -Make sure Clang/LLVM 19 is in your path: +Make sure Clang/LLVM 21 is in your path: ```bash -which clang-19 +which clang-21 ``` If not, run this to manually add it: @@ -136,13 +136,13 @@ If not, run this to manually add it: ```bash macOS (Homebrew) # use fish_add_path if you're using fish -# use path+="$(brew --prefix llvm@19)/bin" if you are using zsh -export PATH="$(brew --prefix llvm@19)/bin:$PATH" +# use path+="$(brew --prefix llvm@21)/bin" if you are using zsh +export PATH="$(brew --prefix llvm@21)/bin:$PATH" ``` ```bash Arch # use fish_add_path if you're using fish -export PATH="$PATH:/usr/lib/llvm19/bin" +export PATH="$PATH:/usr/lib/llvm21/bin" ``` @@ -314,7 +314,7 @@ The issue may manifest when initially running `bun setup` as Clang being unable ```txt The C++ compiler - "/usr/bin/clang++-19" + "/usr/bin/clang++-21" is not able to compile a simple test program. ``` diff --git a/flake.nix b/flake.nix index 3fb9401268..c6149f863c 100644 --- a/flake.nix +++ b/flake.nix @@ -26,10 +26,10 @@ }; }; - # LLVM 19 - matching the bootstrap script (targets 19.1.7, actual version from nixpkgs-unstable) - llvm = pkgs.llvm_19; - clang = pkgs.clang_19; - lld = pkgs.lld_19; + # LLVM 21 - matching the bootstrap script (targets 21.1.0, actual version from nixpkgs-unstable) + llvm = pkgs.llvm_21; + clang = pkgs.clang_21; + lld = pkgs.lld_21; # Node.js 24 - matching the bootstrap script (targets 24.3.0, actual version from nixpkgs-unstable) nodejs = pkgs.nodejs_24; @@ -42,7 +42,7 @@ pkgs.pkg-config pkgs.ccache - # Compilers and toolchain - version pinned to LLVM 19 + # Compilers and toolchain - version pinned to LLVM 21 clang llvm lld diff --git a/package.json b/package.json index e83cc12e1b..f657144313 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "clean:zig": "rm -rf build/debug/cache/zig build/debug/CMakeCache.txt 'build/debug/*.o' .zig-cache zig-out || true", "machine:linux:ubuntu": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=linux --distro=ubuntu --release=25.04", "machine:linux:debian": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=linux --distro=debian --release=13", - "machine:linux:alpine": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=linux --distro=alpine --release=3.22", + "machine:linux:alpine": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=linux --distro=alpine --release=3.23", "machine:linux:amazonlinux": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=linux --distro=amazonlinux --release=2023", "machine:windows:2019": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=windows --release=2019", "machine:freebsd": "./scripts/machine.mjs ssh --cloud=aws --arch=x64 --instance-type c7i.2xlarge --os=freebsd --release=14.3", diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1 index b4fba56480..4ef6526915 100755 --- a/scripts/bootstrap.ps1 +++ b/scripts/bootstrap.ps1 @@ -387,7 +387,7 @@ function Install-PdbAddr2line { function Install-Llvm { Install-Package llvm ` -Command clang-cl ` - -Version "19.1.7" + -Version "21.1.0" Add-To-Path "$env:ProgramFiles\LLVM\bin" } diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 5deb20a7c7..807ac2b374 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -1091,7 +1091,7 @@ install_build_essentials() { } llvm_version_exact() { - print "19.1.7" + print "21.1.0" } llvm_version() { @@ -1101,28 +1101,20 @@ llvm_version() { install_llvm() { case "$pm" in apt) - # Debian 13 (Trixie) has LLVM 19 natively, and apt.llvm.org doesn't have a trixie repo - if [ "$distro" = "debian" ]; then - install_packages \ - "llvm-$(llvm_version)" \ - "clang-$(llvm_version)" \ - "lld-$(llvm_version)" \ - "llvm-$(llvm_version)-dev" \ - "llvm-$(llvm_version)-tools" \ - "libclang-rt-$(llvm_version)-dev" - else - bash="$(require bash)" - llvm_script="$(download_file "https://apt.llvm.org/llvm.sh")" - execute_sudo "$bash" "$llvm_script" "$(llvm_version)" all + # Use apt.llvm.org for all apt-based distros (Ubuntu, Debian) + # apt.llvm.org has LLVM 21 for trixie/bookworm/bullseye and all Ubuntu versions + bash="$(require bash)" + llvm_script="$(download_file "https://apt.llvm.org/llvm.sh")" + execute_sudo "$bash" "$llvm_script" "$(llvm_version)" all - # Install llvm-symbolizer explicitly to ensure it's available for ASAN - install_packages "llvm-$(llvm_version)-tools" - fi + # Install llvm-symbolizer explicitly to ensure it's available for ASAN + install_packages "llvm-$(llvm_version)-tools" ;; brew) install_packages "llvm@$(llvm_version)" ;; apk) + # Alpine 3.23+ has LLVM 21 available install_packages \ "llvm$(llvm_version)" \ "clang$(llvm_version)" \ @@ -1172,7 +1164,7 @@ install_gcc() { ;; esac - llvm_v="19" + llvm_v="21" append_to_profile "export CC=clang-${llvm_v}" append_to_profile "export CXX=clang++-${llvm_v}" diff --git a/scripts/build-jsc.ts b/scripts/build-jsc.ts index 4da6617402..f7ea70cf6b 100755 --- a/scripts/build-jsc.ts +++ b/scripts/build-jsc.ts @@ -47,8 +47,8 @@ function findExecutable(names: string[]): string | null { return null; } -const CC = findExecutable(["clang-19", "clang"]) || "clang"; -const CXX = findExecutable(["clang++-19", "clang++"]) || "clang++"; +const CC = findExecutable(["clang-21", "clang"]) || "clang"; +const CXX = findExecutable(["clang++-21", "clang++"]) || "clang++"; // Build directory based on config const getBuildDir = (config: BuildConfig) => { diff --git a/scripts/lldb-inline-tool.cpp b/scripts/lldb-inline-tool.cpp index 597c9c4d5e..7676f86a25 100644 --- a/scripts/lldb-inline-tool.cpp +++ b/scripts/lldb-inline-tool.cpp @@ -20,8 +20,8 @@ * On Linux: * c++ -std=c++17 -o lldb-inline lldb-inline-tool.cpp \ * -llldb \ - * -L/usr/lib/llvm-14/lib \ - * -I/usr/lib/llvm-14/include + * -L/usr/lib/llvm-21/lib \ + * -I/usr/lib/llvm-21/include * * USAGE: * ------ diff --git a/scripts/lldb-inline.sh b/scripts/lldb-inline.sh index 13dcd2c529..4f0705a680 100755 --- a/scripts/lldb-inline.sh +++ b/scripts/lldb-inline.sh @@ -21,7 +21,7 @@ if [ ! -f "$TOOL_BINARY" ] || [ "$TOOL_SOURCE" -nt "$TOOL_BINARY" ]; then else # Linux - try to find LLVM installation LLVM_DIR="" - for version in 18 17 16 15 14 13 12; do + for version in 21 20 19 18 17 16 15 14; do if [ -d "/usr/lib/llvm-$version" ]; then LLVM_DIR="/usr/lib/llvm-$version" break diff --git a/scripts/run-clang-format.sh b/scripts/run-clang-format.sh index 13d9e736b5..9c1491c269 100755 --- a/scripts/run-clang-format.sh +++ b/scripts/run-clang-format.sh @@ -11,8 +11,8 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" # Default to format mode (modify files) MODE="${1:-format}" -# Use LLVM_VERSION_MAJOR from environment or default to 19 -LLVM_VERSION="${LLVM_VERSION_MAJOR:-19}" +# Use LLVM_VERSION_MAJOR from environment or default to 21 +LLVM_VERSION="${LLVM_VERSION_MAJOR:-21}" # Ensure we have the specific clang-format version CLANG_FORMAT="clang-format-${LLVM_VERSION}" diff --git a/shell.nix b/shell.nix index 571c66d176..a4917ddfe1 100644 --- a/shell.nix +++ b/shell.nix @@ -8,9 +8,9 @@ pkgs.mkShell rec { # Core build tools (matching bootstrap.sh) cmake ninja - clang_19 - llvm_19 - lld_19 + clang_21 + llvm_21 + lld_21 nodejs_24 bun rustc @@ -77,10 +77,10 @@ pkgs.mkShell rec { ]; shellHook = '' - export CC="${pkgs.lib.getExe pkgs.clang_19}" - export CXX="${pkgs.lib.getExe' pkgs.clang_19 "clang++"}" - export AR="${pkgs.llvm_19}/bin/llvm-ar" - export RANLIB="${pkgs.llvm_19}/bin/llvm-ranlib" + export CC="${pkgs.lib.getExe pkgs.clang_21}" + export CXX="${pkgs.lib.getExe' pkgs.clang_21 "clang++"}" + export AR="${pkgs.llvm_21}/bin/llvm-ar" + export RANLIB="${pkgs.llvm_21}/bin/llvm-ranlib" export CMAKE_C_COMPILER="$CC" export CMAKE_CXX_COMPILER="$CXX" export CMAKE_AR="$AR" @@ -88,7 +88,7 @@ pkgs.mkShell rec { export CMAKE_SYSTEM_PROCESSOR=$(uname -m) export TMPDIR=''${TMPDIR:-/tmp} '' + pkgs.lib.optionalString pkgs.stdenv.isLinux '' - export LD="${pkgs.lib.getExe' pkgs.lld_19 "ld.lld"}" + export LD="${pkgs.lib.getExe' pkgs.lld_21 "ld.lld"}" export NIX_CFLAGS_LINK="''${NIX_CFLAGS_LINK:+$NIX_CFLAGS_LINK }-fuse-ld=lld" export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath packages}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" '' + '' diff --git a/src/crash_handler.zig b/src/crash_handler.zig index d902410444..367c151c1f 100644 --- a/src/crash_handler.zig +++ b/src/crash_handler.zig @@ -1699,8 +1699,8 @@ pub fn dumpStackTrace(trace: std.builtin.StackTrace, limits: WriteStackTraceLimi const programs: []const [:0]const u8 = switch (bun.Environment.os) { .windows => &.{"pdb-addr2line"}, - // if `llvm-symbolizer` doesn't work, also try `llvm-symbolizer-19` - else => &.{ "llvm-symbolizer", "llvm-symbolizer-19" }, + // if `llvm-symbolizer` doesn't work, also try `llvm-symbolizer-21` + else => &.{ "llvm-symbolizer", "llvm-symbolizer-21" }, }; for (programs) |program| { var arena = bun.ArenaAllocator.init(bun.default_allocator); diff --git a/test/napi/node-napi-tests/harness.ts b/test/napi/node-napi-tests/harness.ts index 5b511ac346..2befe7ed97 100644 --- a/test/napi/node-napi-tests/harness.ts +++ b/test/napi/node-napi-tests/harness.ts @@ -20,8 +20,8 @@ export async function build(dir: string) { // so we make it use clang instead ...(process.platform == "linux" && isCI ? { - CC: !isMusl ? "/usr/lib/llvm-19/bin/clang" : "/usr/lib/llvm19/bin/clang", - CXX: !isMusl ? "/usr/lib/llvm-19/bin/clang++" : "/usr/lib/llvm19/bin/clang++", + CC: !isMusl ? "/usr/lib/llvm-21/bin/clang" : "/usr/lib/llvm21/bin/clang", + CXX: !isMusl ? "/usr/lib/llvm-21/bin/clang++" : "/usr/lib/llvm21/bin/clang++", } : {}), },