]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ci/unit-tests: enable dlopen note verification tests
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 7 Jul 2026 12:09:48 +0000 (21:09 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 10 Jul 2026 07:35:19 +0000 (16:35 +0900)
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
.github/workflows/unit-tests.yml

index f910e21691fc078c9115870f1c4ff1e582f5f554..977d64861af7644e81f469152293148e002695ed 100755 (executable)
@@ -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
index b8599a80409891f03604c252b85e42052ae39e5f..ff95d77c29fd13e273cf0c49a95fb4f6f06b52ff 100644 (file)
@@ -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