Reputation: 129
When I included "asm/xen/hypercall.h" in my source code in kernel,
I got a this error message. How can I solve it?
include/linux/stddef.h:8:16: error: expected identifier or '(' before 'void'
#define NULL ((void *)0)
^
./arch/x86/include/asm/alternative.h:221:28: note: in expansion of macro 'NULL'
#define __parainstructions NULL
^
./arch/x86/include/asm/paravirt_types.h:703:35: note: in expansion of macro '__parainstructions'
extern struct paravirt_patch_site __parainstructions[],
^
include/linux/stddef.h:8:23: error: expected ')' before numeric constant
#define NULL ((void *)0)
^
./arch/x86/include/asm/alternative.h:221:28: note: in expansion of macro 'NULL'
#define __parainstructions NULL
^
./arch/x86/include/asm/paravirt_types.h:703:35: note: in expansion of macro '__parainstructions'
extern struct paravirt_patch_site __parainstructions[],
^
scripts/Makefile.build:257: recipe for target 'drivers/oxen/fallback.o' failed
Upvotes: 2
Views: 770
Reputation: 66061
XEN functionality depends on PARAVIRT (see arch/x86/xen/Kconfig).
But line
#define __parainstructions NULL
at arch/x86/include/asm/alternative.h:221
is executed only when PARAVIRT is disabled. So, your shouldn't use XEN headers in that case.
Upvotes: 1