Skip to content

Add binaries built with an older glibc or musl #344

@alcroito

Description

@alcroito

Hi,

Trying to run latest bob 4.1.4 on debian 12 arm64 (which ships glibc 2.36) shows

$ ./bob
bob: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by bob)

The same with the AppImage that was added for #259

$ ./bob-linux-arm-appimage/bob-arm.AppImage
./bob-linux-arm-appimage/bob-arm.AppImage: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by ./bob-linux-arm-appimage/bob-arm.AppImage)

The app image doesn't help because it still ships the binary built on the ubuntu-latest (ubuntu 24) github runner image.

As the docs for AppImage say https://docs.appimage.org/reference/best-practices.html#binaries-compiled-on-old-enough-base-system
an older distro has to be used to build binary.

There are a few approaches how to handle this.

One simple approach would be to build against musl, rather than glibc, as described at https://kobzol.github.io/rust/ci/2021/05/07/building-rust-binaries-in-ci-that-work-with-older-glibc.html#removing-dependency-on-glibc

Another is to cross-build against a sysroot with an older glibc with something like https://github.com/cross-rs/cross

Would be great if bob could run on older distros version like Debian 11 / RHEL 8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions