Parallel build issue with meson tooling: no dependency ordering/gating means failures can occur when a required C file is not yet generated
With a sufficient number of parallel jobs, we can run into an ordering issue where libxfce4windowing-visibility.c is not generated before it is required in the build. For example (this is on a NetBSD packaging build cluster with more than 16 parallel jobs permitted):
[15/100] Compiling C object libxfce4windowing/libxfce4windowing-0.so.0.0.0.p/libxfce4windowing-config.c.o FAILED: libxfce4windowing/libxfce4windowing-0.so.0.0.0.p/libxfce4windowing-config.c.o gcc -Ilibxfce4windowing/libxfce4windowing-0.so.0.0.0.p -Ilibxfce4windowing -I../libxfce4windowing -I. -I.. -Iprotocols -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gtk-3.0 -I/usr/pkg/include/pango-1.0 -I/usr/X11R7/include -I/usr/pkg/include/cairo -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -I/usr/pkg/include/fribidi -I/usr/pkg/include/pixman-1 -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/libpng16 -I/usr/pkg/include/libwnck-3.0 -I/usr/pkg/include/startup-notification-1.0 -I/usr/include -I/usr/X11R7/include/libdrm -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -Wmissing-declarations -Wmissing-noreturn -Wold-style-definition -Wredundant-decls -Wpointer-arith -Wcast-align -Winit-self -Wshadow -Wmissing-include-dirs -Wundef -Wformat -Wformat-security -Wformat-y2k -Wnested-externs -Wno-unused-parameter -Wno-declaration-after-statement -Werror=implicit-function-declaration -Wno-error=deprecated-declarations -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_72 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_72 '-DG_LOG_DOMAIN="libxfce4windowing"' -DG_LOG_USE_STRUCTURED=1 '-DPACKAGE="libxfce4windowing"' '-DPACKAGE_NAME="libxfce4windowing"' '-DPACKAGE_VERSION="4.20.2"' '-DVERSION="4.20.2"' '-DVERSION_SHORT="4.20"' '-DPACKAGE_STRING="libxfce4windowing 4.20.2"' '-DPACKAGE_DATADIR="/usr/pkg/share/libxfce4windowing"' '-DPACKAGE_LOCALE_DIR="/usr/pkg/share/locale"' '-DPACKAGE_BUGREPORT="https://gitlab.xfce.org/xfce/libxfce4windowing/-/issues"' '-DGETTEXT_PACKAGE="libxfce4windowing"' '-DPREFIX="/usr/pkg"' '-DBINDIR="/usr/pkg/bin"' '-DDATADIR="/usr/pkg/share"' '-DINCLUDEDIR="/usr/pkg/include"' '-DLIBDIR="/usr/pkg/lib"' '-DLIBEXECDIR="/usr/pkg/libexec"' '-DLOCALEDIR="/usr/pkg/share/locale"' '-DLOCALSTATEDIR="/usr/pkg/var"' '-DSBINDIR="/usr/pkg/sbin"' '-DSYSCONFDIR="/usr/pkg/etc"' -DHAVE_XFCE_REVISION_H=1 -DENABLE_X11=1 -DENABLE_WAYLAND=1 -DENABLE_SYMBOL_VISIBILITY=1 -O2 -fPIC -pthread -D_REENTRANT -DLIBXFCE4WINDOWING_COMPILATION=1 -DWNCK_I_KNOW_THIS_IS_UNSTABLE=1 -MD -MQ libxfce4windowing/libxfce4windowing-0.so.0.0.0.p/libxfce4windowing-config.c.o -MF libxfce4windowing/libxfce4windowing-0.so.0.0.0.p/libxfce4windowing-config.c.o.d -o libxfce4windowing/libxfce4windowing-0.so.0.0.0.p/libxfce4windowing-config.c.o -c ../libxfce4windowing/libxfce4windowing-config.c ../libxfce4windowing/libxfce4windowing-config.c:107:10: fatal error: libxfce4windowing-visibility.c: No such file or directory #include <libxfce4windowing-visibility.c> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
[16/100] Generating glib marshaller source libxfce4windowing/xfw-marshal_c
[17/100] Generating libxfce4windowing/libxfce4windowing-visibility.c with a custom command