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: