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