Ying-Shiuan Pan
2011-Jan-26 03:54 UTC
[xen-devel] [PATCH] perfc: fix build error with perfc=y
hi, all I found that xen cannot be built with perfc=y since the changeset:2762b6d3149c The follow is the error message: ----------------------------------------- gcc -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -m64 -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement -nostdinc -fno-builtin -fno-common -Wredundant-decls -iwithprefix include -Werror -Wno-pointer-arith -pipe -I/root/src/xen-unstable/xen/include -I/root/src/xen-unstable/xen/include/asm-x86/mach-generic -I/root/src/xen-unstable/xen/include/asm-x86/mach-default -msoft-float -fno-stack-protector -fno-exceptions -mno-red-zone -fpic -fno-asynchronous-unwind-tables -DGCC_HAS_VISIBILITY_ATTRIBUTE -g -D__XEN__ -DVERBOSE -DPERF_COUNTERS -DPERF_ARRAYS -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER -MMD -MF .domctl.o.d -c domctl.c -o domctl.o In file included from /root/src/xen-unstable/xen/include/xen/perfc_defn.h:5, from /root/src/xen-unstable/xen/include/xen/perfc.h:43, from /root/src/xen-unstable/xen/include/asm/paging.h:31, from /root/src/xen-unstable/xen/include/asm/guest_access.h:11, from /root/src/xen-unstable/xen/include/xen/guest_access.h:10, from /root/src/xen-unstable/xen/include/xen/console.h:11, from domctl.c:19: /root/src/xen-unstable/xen/include/asm/perfc_defn.h:5: error: expected identifier before numeric constant In file included from /root/src/xen-unstable/xen/include/asm/paging.h:31, from /root/src/xen-unstable/xen/include/asm/guest_access.h:11, from /root/src/xen-unstable/xen/include/xen/guest_access.h:10, from /root/src/xen-unstable/xen/include/xen/console.h:11, from domctl.c:19: /root/src/xen-unstable/xen/include/xen/perfc.h:55: error: ‘NUM_PERFCOUNTERS’ undeclared here (not in a function) cc1: warnings being treated as errors /root/src/xen-unstable/xen/include/xen/perfc.h:55: warning: type defaults to ‘int’ in declaration of ‘per_cpu__perfcounters’ ----------------------------------------- I found that in domctl.c the PERFC_exceptions and PERFC_hypercalls in the ''enum perfcounter'' from include/xen/perfc_defn.h has been replaced as a number. however, the 2 identifiers did not be replaced in the earlier changeset (ef30046259f0) I''m not exactly sure why it happen, and i just undef the two macro before the macro to avoid being replaced hope someone has a better solution -- Signed-off-by: Ying-Shiuan Pan <yspan@itri.org.tw> diff -r b59f04eb8978 xen/include/asm-x86/perfc_defn.h --- a/xen/include/asm-x86/perfc_defn.h Fri Jan 21 18:06:23 2011 +0000 +++ b/xen/include/asm-x86/perfc_defn.h Wed Jan 26 11:33:40 2011 +0800 @@ -2,6 +2,7 @@ /*#ifndef __XEN_PERFC_DEFN_H__*/ /*#define __XEN_PERFC_DEFN_H__*/ +#undef PERFC_exceptions PERFCOUNTER_ARRAY(exceptions, "exceptions", 32) #define VMX_PERF_EXIT_REASON_SIZE 56 diff -r b59f04eb8978 xen/include/xen/perfc_defn.h --- a/xen/include/xen/perfc_defn.h Fri Jan 21 18:06:23 2011 +0000 +++ b/xen/include/xen/perfc_defn.h Wed Jan 26 11:33:40 2011 +0800 @@ -4,6 +4,7 @@ #include <asm/perfc_defn.h> +#undef PERFC_hypercalls PERFCOUNTER_ARRAY(hypercalls, "hypercalls", NR_hypercalls) PERFCOUNTER(calls_to_multicall, "calls to multicall") ---- Best Regards, 潘穎軒Ying-Shiuan Pan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel