
On Fri, Dec 16, Daniel P. Berrange wrote:
The PERF_COUNT_HW_REF_CPU_CYCLES constant is not available on all Linux distros libvirt targets, so its use must be made conditional. Other constant have existed long enough that we can assume they exist, as we don't support very old distros like RHEL-5 any more.
+# ifdef PERF_COUNT_HW_REF_CPU_CYCLES
How can this fix the error? This and PERF_COUNT_HW_STALLED_CYCLES_FRONTEND/BACKEND are part of an 'enum', which is ordinary code for cpp. Unfortunately this is correct because the code is written in C, not CPP. I will deal with the compile errors like that: Index: libvirt-20170308T173307.d7dcea6/src/util/virperf.c =================================================================== --- libvirt-20170308T173307.d7dcea6.orig/src/util/virperf.c +++ libvirt-20170308T173307.d7dcea6/src/util/virperf.c @@ -76,6 +76,12 @@ struct virPerfEventAttr { unsigned long long attrConfig; }; +#ifndef PERF_ATTR_SIZE_VER2 +#define PERF_COUNT_HW_STALLED_CYCLES_FRONTEND 7 +#define PERF_COUNT_HW_STALLED_CYCLES_BACKEND 8 +#define PERF_COUNT_HW_REF_CPU_CYCLES 9 +#endif + static struct virPerfEventAttr attrs[] = { {.type = VIR_PERF_EVENT_CMT, .attrType = 0, .attrConfig = 1}, {.type = VIR_PERF_EVENT_MBMT, .attrType = 0, .attrConfig = 2}, Olaf