[OE-core] Debugging a parallel make race in mesa

Richard Purdie richard.purdie at linuxfoundation.org
Thu Jun 28 13:15:38 UTC 2018


I thought these steps might be interesting for someone else to play
with/learn from. We have a problematic build race in mesa which results
in e.g.:

https://autobuilder.yocto.io/builders/nightly-arm/builds/1160/steps/Building%20Toolchain%20Images/logs/stdio

To debug:

$ bitbake mesa

<it builds, doesn't reproduce>

$ cp <BUILDDIR>/tmp/work/core2-64-poky-linux/mesa/2_18.1.2-r0/temp/run.do_compile ./myscript
$ vi ./myscript

Change "do_compile" to "bash -i".

$ ./myscript

Now in a shell with the right build environment

$$ make -j

Everything built cleanly so issue still not showing as expected.
Remove the two things we think are racing:

$$ rm src/egl/drivers/dri2/*.h src/egl/drivers/dri2/platform_wayland.lo

Try and build just one of them:

$$ make -C src/egl/ drivers/dri2/platform_wayland.lo

../../../mesa-18.1.2/src/egl/drivers/dri2/platform_wayland.c:50:10: fatal error: linux-dmabuf-unstable-v1-client-protocol.h: No such file or directory
 #include "linux-dmabuf-unstable-v1-client-protocol.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bingo, error about missing include.

So the problem is at least reproducible now which means we're halfway
to fixing it.

Cheers,

Richard



More information about the Openembedded-core mailing list