On Wed, Feb 20, 2019 at 05:11:15PM +0800, Zhangshaokun wrote: > There is a compiler failure on arm64 platform, as follow: > > AS arch/arm64/kvm/hyp.o > CC kernel/trace/ring_buffer.o > In file included from security/integrity/ima/ima_fs.c:30:0: > security/integrity/ima/ima.h:176:7: error: redeclaration of enumerator ‘NONE’ > hook(NONE) \ > ^ > security/integrity/ima/ima.h:188:34: note: in definition of macro ‘__ima_hook_enumify’ > #define __ima_hook_enumify(ENUM) ENUM, > ^ > security/integrity/ima/ima.h:191:2: note: in expansion of macro ‘__ima_hooks’ > __ima_hooks(__ima_hook_enumify) > ^ > In file included from ./arch/arm64/include/asm/acpi.h:15:0, > from ./include/acpi/acpi_io.h:7, > from ./include/linux/acpi.h:47, > from ./include/linux/tpm.h:26, > from security/integrity/ima/ima.h:25, > from security/integrity/ima/ima_fs.c:30: > ./include/linux/efi.h:1716:2: note: previous definition of ‘NONE’ was here > NONE, > ^ > scripts/Makefile.build:276: recipe for target 'security/integrity/ima/ima_fs.o' failed > make[3]: *** [security/integrity/ima/ima_fs.o] Error 1 > > I dug it and it is the commit 901615cb916d ("tpm: move tpm_chip definition to include/linux/tpm.h") This results from a new include in tpm.h: #include <linux/acpi.h> Must be fixed either in include/linux/efi.h or security/integrity/ima.h as those files have a name collision. Makes me wonder why neither has taken care of prefixing the constants properly. /Jarkko