It appears that (older?) revisions of xenctl.h define all of the E820_* values used in kexec-x86-common.c except E820_PMAM and E820_PMEM. This results in a build failure when building against libxenctl. Avoid this problem by providing local definitions of those values. It seems reasonable to do so in the kexec-x86-common.c as currently that is the only source file that uses the values in question. Fixes: 56a12abc1df1 ("kexec: fix mmap return code handling") Cc: Michael Holzheu <holzheu at linux.vnet.ibm.com> Cc: Petr Tesarik <ptesarik at suse.com> Cc: Baoquan He <bhe at redhat.com> Signed-off-by: Simon Horman <horms at verge.net.au> --- kexec/arch/i386/kexec-x86-common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kexec/arch/i386/kexec-x86-common.c b/kexec/arch/i386/kexec-x86-common.c index b308e4719503..3e97239c0c78 100644 --- a/kexec/arch/i386/kexec-x86-common.c +++ b/kexec/arch/i386/kexec-x86-common.c @@ -44,6 +44,12 @@ #include <xenctrl.h> #endif /* HAVE_LIBXENCTRL */ +/* Used below but not present in (older?) xenctrl.h */ +#ifndef E820_PMEM +#define E820_PMEM 7 +#define E820_PRAM 12 +#endif + static struct memory_range memory_range[MAX_MEMORY_RANGES]; /** -- 2.1.4