From 1a08378534995b0b4b14af977a08bd74d04fda0e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 7 Jul 2026 21:09:48 +0900 Subject: [PATCH] ci/unit-tests: enable dlopen note verification tests Enable the `dlopen` unit test suite in GitHub Actions, except for the following configurations where linker garbage collection (`--gc-sections`) or dead-code elimination fails to drop unused dlopen symbols: - ppc64le (both GCC and Clang) - s390x (GCC only) - Sanitizer-enabled setups --- .github/workflows/unit-tests.sh | 6 ++++++ .github/workflows/unit-tests.yml | 3 +++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/unit-tests.sh b/.github/workflows/unit-tests.sh index f910e21691..977d64861a 100755 --- a/.github/workflows/unit-tests.sh +++ b/.github/workflows/unit-tests.sh @@ -132,6 +132,12 @@ for phase in "${PHASES[@]}"; do ninja -C build -v # Ensure setting a timezone (like the reproducible build tests do) does not break time/date unit tests TZ=GMT+12 meson test "${MESON_TEST_ARGS[@]}" -C build --print-errorlogs --no-stdsplit --quiet + + # Linker garbage collection for unused symbols appears to be broken on ppc64le (both GCC and CLANG) or s390x (GCC). + # Skip the dlopen note verification test in those specific configurations. + if ! [[ "$(uname -m)" == "ppc64le" || ( "$(uname -m)" == "s390x" && "$phase" == "RUN_GCC" ) ]]; then + meson test -C build --suite=dlopen --print-errorlogs --no-stdsplit --quiet + fi ;; RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS) # TODO: drop after we switch to ubuntu 26.04 diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index b8599a8040..ff95d77c29 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -99,3 +99,6 @@ jobs: - name: Test run: mkosi box -- meson test -C build --print-errorlogs --no-stdsplit --quiet + + - name: Test (dlopen) + run: mkosi box -- meson test -C build --print-errorlogs --no-stdsplit --quiet --suite=dlopen