
On Mon, Apr 28, 2025 at 03:20:55PM +0200, Michal Privoznik via Devel wrote:
Somewhat green-ish pipeline:
https://gitlab.com/MichalPrivoznik/libvirt/-/pipelines/1790043585
Jobs that failed are unrelated.
Thing is, our upstream pipeline started failing on Rawhide + gcc because of IPA. The unfortunate part is, noinline does not guarantee the function is mockable. The fortunate part is, GCC has noipa attribute which is even advocated for in its documentation.
Took a while to dig into history of this, as I know we debated noipa in the past. AFAICT, we decided NOT to use noipa solely because it was a GCC only solution, but despite that, we ended up having to use add a CLang-only solution anyway in the form of -fsemantic-interposition. Given the latter, and that we have long known 'noinline' was insufficient, it makes sense to finally use 'noipa' on GCC.
Given we are after the freeze and this is potentially hazardous, I'm okay if this is merged after the release.
Yeah, probably best to wait until next cycle, as we've got a long history of unexpected edge cases with mocking & interactions with compiler optimization. Would be good to have a cycle to debug any possible fallout. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|