cairo: fix fuzz-introspector integration - #16082
Conversation
|
kenohassler is a new contributor to projects/cairo. The PR must be approved by known contributors before it can be merged. The past contributors are: OwenSanzas, hunsche, Teemperor, tysmith, DonggeLiu, salmonx, Google-Autofuzz, inferno-chromium, ecalp-tps |
|
I found a problem when building on a clean /out directory; essentially my workaround for excluding subprojects (deleting them) is a little too harsh. So I'm moving the build step into the Dockerfile instead, as recommended by fuzz-introspector (https://fuzz-introspector.readthedocs.io/en/latest/user-guides/control-instrumentation.html). |
4dd8cc3 to
863384c
Compare
863384c to
4aa24c5
Compare
|
Thank you for greenlighting the CI. If there's anything that needs to be changed, let me know. Btw: I saw in the git history that the base image was previously (unsuccessfully) bumped to ubuntu 24. I already tested it on top of my changes and it seems to be working fine now, |
|
I found a typo in the build script (missing dollar sign), so I had to add a commit, and while at it, I also bumped to ubuntu 24. |
Fuzz introspector builds of cairo were broken since Feb. 2025, presumably due to an incompatibility with the meson build system. Also: - upgrade meson - remove external dependencies from Dockerfile - exclude external code from fuzz-introspector reports
6d837d3 to
e766000
Compare
| meson subprojects foreach \ | ||
| ninja -C _builddir install | ||
| # *convince* fuzz-introspector not to analyze all harnesses in subprojects | ||
| RUN rm -rf cairo/subprojects/* |
There was a problem hiding this comment.
I added this because the FUZZ_INTROSPECTOR_CONFIG set in build.sh did not prevent fuzz-introspector from analyzing the subprojects folder.
Fuzz introspector builds of cairo were broken since Feb. 2025, presumably due to an incompatibility with the meson build system. Fix this by removing
-fuse-ld=goldfromCFLAGS(as discussed in #7583).The second important change is that I moved all external dependencies to build in the Dockerfile. This is recommended by fuzz-introspector to focus reports on the actual target code, instead of diluting coverage data with dependency code.
I intend to use the now-working fuzz-introspector analysis for some harness improvements (still working on that).