
On Tue, Mar 10, 2015 at 01:45:38PM +0100, Martin Kletzander wrote:
On Tue, Mar 10, 2015 at 12:24:03PM +0000, Daniel P. Berrange wrote:
On Tue, Mar 10, 2015 at 01:05:22PM +0100, Ján Tomko wrote:
These are the failing qemuxml2argvtest cases: 60) QEMU XML-2-ARGV hugepages-pages ... libvirt: error : internal error: NUMA node 1 is unavailable 63) QEMU XML-2-ARGV hugepages-shared ... libvirt: error : internal error: NUMA node 1 is unavailable 324) QEMU XML-2-ARGV numatune-memnode ... libvirt: error : internal error: NUMA node 1 is unavailable 326) QEMU XML-2-ARGV numatune-memnode-no-memory ... libvirt: error : internal error: NUMA node 3 is unavailable 329) QEMU XML-2-ARGV numatune-auto-prefer ... libvirt: error : internal error: NUMA node 1 is unavailable
So with 4 fake nodes, the tests could still pass even if the function is not mocked. Try changing the nodeset in #326 to 4 if it fails.
I tried changing that, it fails. I tried adjusting the tests to more nodes, it fails. After adjusting the mock function again, it works. So it gets mocked all the time, but I know where the difference is, probably. Try building with -O0, it will probably disable the inlining. However, if that's the case, I believe it's still clang's fault since they don't document inlining functions without the "inline" keyword just because you optimize.
-O0 does disable the inlining, but introduces the stack size warning.
[1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html [2] http://clang.llvm.org/compatibility.html
>>--- >>This only leaves the mysterious check-protocol failure.
That's not that mysterious, it's just that we check the order and clang sorts enums before structs, but gcc doesn't. Also clang adds "public:" to structs, so it probably treats it as a C++ or C# structs or something?
By the way if I compile with clang with -std=gnu11 or -std=gnu99, the "public:" stuff is gone :)
It is mysterious, because it doesn't fail consistently.
Oh, it does fail all the time for me.
Did I mistakenly build with gcc to fix it?
It was working for me after I tried it again after 'git clean -fxd', today it failed again (though I don't remember if I ran autogen again).
How exactly are you running the build with clang ? Are you just doing this
CC=clang ./autogen.sh && make && make check
Or is there more to it than that ?
./autogen.sh --system --without-driver-modules CC="clang" && make -j5 check Now it failed two times in a row, and once without parallel make. I have no idea what I did back then that fixed it. Jan