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
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
- 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