From 5d1e5b1f11d22a7e6379be7f03437aa2af704ea2 Mon Sep 17 00:00:00 2001 From: Joseph Crowell Date: Sun, 15 Nov 2026 10:32:46 +1000 Subject: [PATCH] ci: check every built driver's server symbols Each driver job runs check-symbols.sh on the modules it built and fails when the server does not export a symbol they need. Changes to abi/ or the driver build script now run the driver jobs. Signed-off-by: Joseph Crowell --- .github/scripts/ubuntu/compile-driver-single.sh | 8 ++++++++ .github/workflows/build-xserver.yml | 2 ++ 2 files changed, 10 insertions(+) diff --git a/.github/scripts/ubuntu/compile-driver-single.sh b/.github/scripts/ubuntu/compile-driver-single.sh index c8156caa44..0d90136307 100755 --- a/.github/scripts/ubuntu/compile-driver-single.sh +++ b/.github/scripts/ubuntu/compile-driver-single.sh @@ -22,3 +22,11 @@ echo "DRIVER_NAME=$DRIVER_NAME" echo "DRIVER_VER=$DRIVER_VER" build_xf86drv_ac "$DRIVER_NAME" "$DRIVER_VER" + +# every server symbol the module needs must be exported by this server +abi_tools=$(pkg-config --variable=abi_tools_dir xorg-server) +modules=$(find "xf86-$DRIVER_NAME" -path '*/.libs/*_drv.so') +[ -n "$modules" ] || { echo "no *_drv.so built for $DRIVER_NAME" >&2; exit 1; } +for mod in $modules; do + "$abi_tools/check-symbols.sh" --prefix "$X11_PREFIX" "$mod" +done diff --git a/.github/workflows/build-xserver.yml b/.github/workflows/build-xserver.yml index 8df0f83a4d..fc6e47b84b 100644 --- a/.github/workflows/build-xserver.yml +++ b/.github/workflows/build-xserver.yml @@ -191,6 +191,8 @@ jobs: - 'xorg-server.m4' - 'hw/xfree86/xlibre-server.h.meson.in' - 'hw/xfree86/drivers/input/inputtest/xf86-input-inputtest-protocol.h' + - 'abi/**' + - '.github/scripts/ubuntu/compile-driver-single.sh' xserver-build-ubuntu-debug: env: