Even though this is, technically speaking, a build-breaker fix, different version of this was posted before [1] and not accepted (although neither rejected), so I'm sending this as another way of approaching it. [1] https://www.redhat.com/archives/libvir-list/2015-March/msg00203.html Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> --- tests/qemuxml2argvmock.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index 8426108b29ed..5667f34f1267 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -62,6 +62,34 @@ virNumaNodeIsAvailable(int node) { return node >= 0 && node <= virNumaGetMaxNode(); } + +/* This is a copy-paste of the same function from src/util/virnuma.c. + * the reason for this is that some compilers might inline the + * function above (virNumaNodeIsAvailable) and hence mocking that + * function is pointless from our test suite's POV. This is a + * (hopefully) temporary workaround until someone finds out how to + * disable inlining of exported functions with -O2 on clang. The + * other option would be disabling inlining of that particular + * function which was proposed but did not come to a conclusion. + */ +bool +virNumaNodesetIsAvailable(virBitmapPtr nodeset) +{ + ssize_t bit = -1; + + if (!nodeset) + return true; + + while ((bit = virBitmapNextSetBit(nodeset, bit)) >= 0) { + if (virNumaNodeIsAvailable(bit)) + continue; + + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("NUMA node %zd is unavailable"), bit); + return false; + } + return true; +} #endif /* WITH_NUMACTL && HAVE_NUMA_BITMASK_ISBITSET */ char * -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list