From 1394d1bbda09c88a6668ff9749f935bb58505417 Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Wed, 7 May 2025 18:43:36 +1000 Subject: [PATCH] Fix glibc detection on ubuntu 24.02 (#2143) * Fix glibc detection on ubuntu 24.02 On ubuntu 24.02, glibc are installed in: ``` /usr/lib/aarch64-linux-gnu/libc.so.6 /usr/lib/aarch64-linux-gnu/libc.so ``` Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Add tests for ubuntu-24.02-arm Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix CI: Add detect-targets-ubuntu-arm-test Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Bump ubuntu-20.04 to ubuntu-22.04 Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Update outdated comment in detect-targets-ubuntu-arm-test in ci.yml Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --------- Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --- .github/workflows/ci.yml | 23 ++++++++++++++++++++--- crates/detect-targets/src/detect/linux.rs | 4 ++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42774319..3ac95670 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -275,7 +275,23 @@ jobs: --mount src="$PWD/.github/scripts/test-detect-targets-musl.sh",dst=/usr/local/bin/test.sh,type=bind \ alpine /bin/ash -c "apk update && apk add bash && test.sh x86_64-unknown-linux-musl" - detect-targets-ubuntu-test: + detect-targets-ubuntu-arm-test: + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + with: + cache-all-crates: true + - name: Build and run detect-targets tests + run: | + set -euxo pipefail + output="$(cargo run --features cli-logging --bin detect-targets)" + [ "$output" = "$(printf 'aarch64-unknown-linux-gnu\naarch64-unknown-linux-musl')" ] + # Set working directory here, otherwise `cargo` would download + # and build quite a few unused dependencies. + working-directory: crates/detect-targets + + detect-targets-ubuntu-x86_64-test: needs: - detect-targets-build - changed-files @@ -284,7 +300,7 @@ jobs: fail-fast: false matrix: os: - - ubuntu-20.04 + - ubuntu-22.04 - ubuntu-latest runs-on: ${{ matrix.os }} steps: @@ -385,7 +401,8 @@ jobs: - release-dry-run - detect-targets-build - detect-targets-alpine-test - - detect-targets-ubuntu-test + - detect-targets-ubuntu-arm-test + - detect-targets-ubuntu-x86_64-test - detect-targets-more-glibc-test - detect-targets-nix-test - detect-targets-android-check diff --git a/crates/detect-targets/src/detect/linux.rs b/crates/detect-targets/src/detect/linux.rs index c1fcf75b..7068db8e 100644 --- a/crates/detect-targets/src/detect/linux.rs +++ b/crates/detect-targets/src/detect/linux.rs @@ -52,6 +52,10 @@ pub(super) async fn detect_targets(target: String) -> Vec { format!("/lib64/{dirname}/{filename}"), format!("/usr/lib/{dirname}/{filename}"), format!("/usr/lib64/{dirname}/{filename}"), + format!("/usr/lib/{dirname}/libc.so.6"), + format!("/usr/lib64/{dirname}/libc.so.6"), + format!("/usr/lib/{dirname}/libc.so"), + format!("/usr/lib64/{dirname}/libc.so"), ] .into_iter() .map(|p| AutoAbortHandle(tokio::spawn(is_gnu_ld(p))))