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 :|