gcc 4.8 gives the following error when building xen/common/compat/memory.c memory.c: In function 'compat_memory_op': /builddir/build/BUILD/xen-4.2.1/xen/include/public/arch-x86/xen.h:35:33: error: typedef '__guest_handle_const_compat_memory_exchange_t' locally defined but not used [-Werror=unused-local-typedefs] typedef struct { type *p; } __guest_handle_ ## name ^ /builddir/build/BUILD/xen-4.2.1/xen/include/public/arch-x86/xen.h:43:5: note: in expansion of macro '___DEFINE_XEN_GUEST_HANDLE' ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type) ^ /builddir/build/BUILD/xen-4.2.1/xen/include/public/arch-x86/xen.h:44:41: note: in expansion of macro '__DEFINE_XEN_GUEST_HANDLE' #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) ^ memory.c:261:13: note: in expansion of macro 'DEFINE_XEN_GUEST_HANDLE' DEFINE_XEN_GUEST_HANDLE(compat_memory_exchange_t); ^ The error is harmless in this case so turn the check off. Signed-off-by: Michael Young --- xen-4.2.1/Config.mk.orig 2013-02-07 21:11:51.603970255 +0000 +++ xen-4.2.1/Config.mk 2013-02-07 21:51:44.992048787 +0000 @@ -156,7 +156,7 @@ CFLAGS += -std=gnu99 -CFLAGS += -Wall -Wstrict-prototypes +CFLAGS += -Wall -Wstrict-prototypes -Wno-unused-local-typedefs # Clang complains about macros that expand to 'if ( ( foo == bar ) ) ...' # and is over-zealous with the printf format lint