Alex Bennée <alex.ben...@linaro.org> writes: > Markus Armbruster <arm...@redhat.com> writes: > >> We have quite a few "touch this, recompile the world" headers. My >> "build everything" tree has some 6600 objects (not counting tests and >> objects that don't depend on qemu/osdep.h). Touching any of 54 >> headers triggers a recompile of more than half of them. >> >> This series reduces them to 46. > > I think this series is going the right way but there seems to be quite a > lot of breakage introduced to the cross compiles: > > https://app.shippable.com/github/stsquad/qemu/runs/939/summary/console > > I guess there is more subtlety involved when host != target. I'd > recommend setting up a shippable account: > > https://wiki.qemu.org/Testing/CI/Shippable
The failures I can see there are actually anything but subtle: * 32 bit builds are broken Culprit is PATCH 04. memory.h's inline functions need qemu/bswap.h. Before this patch, they reliably get it indirectly from hw/qdev-core.h. After this patch, they still get it from qemu/int128.h, but only ifdef CONFIG_INT128. Meh. I hate conditional includion in headers. The obvious fix is to have memory.h include qemu/bswap.h directly. Perhaps we should make qemu/int128.h include it unconditionally regardless. Fun fact: I used the GCC compile farm's last 32 bit x86 box to debug this one. * net/netmap.c is broken Philippe found it first :) * target/i386/hax-all.c is broken Likewise. * hw/intc/s390_flic_kvm.c is broken Patchew found it first. > You can of course just run: > > make docker-test-build J=n > > And watch your machine slowly grind through all the options. > > -- > Alex Bennée