@@ -27,10 +27,13 @@ jobs:
2727 matrix :
2828 _ :
2929 - target : aarch64-unknown-linux-gnu
30- # Do not use -latest, since it uses a different glibc version!
31- host : ubuntu-22.04-arm
32- # ubuntu-22.04-arm, the oldest available GHA runner, has glibc 2.35
33- container : ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
30+ host : ubuntu-latest-arm
31+ # Target glibc 2.17. This is the oldest glibc we can practically support.
32+ # Note that ubuntu-22.04-arm has glibc 2.35, but our users need older glibc.
33+ # See https://github.com/BoundaryML/baml/issues/2736
34+ container : ghcr.io/rust-cross/manylinux2014-cross:aarch64
35+ before : |
36+ echo "CFLAGS_aarch64_unknown_linux_gnu=-D__ARM_ARCH=8" >> "$GITHUB_ENV"
3437 node_build : pnpm build:napi-release --target aarch64-unknown-linux-gnu
3538 cargo_args : -p baml-typescript-ffi -p baml-python-ffi
3639
4346 - name : Checkout
4447 uses : actions/checkout@v4
4548
46- # Check GLIBC version for Linux targets (skip musl targets)
49+ # Dump GLIBC version for Linux targets (skip musl targets)
50+ # NB: this is the fallback glibc that we link against; the manylinux containers
51+ # link against older glibc versions by default. Using objdump/readelf to inspect
52+ # the .node binary we build is more authoritative (use your preferred AI coding
53+ # assistant to inspect the binary).
4754 - name : Check GLIBC version
4855 if : contains(matrix._.target, 'linux') && !contains(matrix._.target, 'musl')
4956 run : |
0 commit comments