Hi Geert, On 2019/2/21 16:03, Geert Uytterhoeven wrote: > Hi Shaokun, > > On Thu, Feb 21, 2019 at 1:45 AM Zhangshaokun <zhangshaokun@xxxxxxxxxxxxx> wrote: >> On 2019/2/20 18:05, Ard Biesheuvel wrote: >>> On Wed, 20 Feb 2019 at 10:58, Jarkko Sakkinen >>> <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote: >>>> >>>> On Wed, Feb 20, 2019 at 11:52:52AM +0200, Jarkko Sakkinen wrote: >>>>> 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. >>>> >>>> Preferably both subsystems should be fixed with proper 'EFI_' and 'IMA_' >>>> prefixes. Defining a constant named as NONE in a non-generic subsystem >>>> (e.g. not part of the core data structures of Linux) and especially >>>> exporting it to include/linux is not too well considered act. >>>> >>> >>> Fixes for this have already been proposed, and should appear in -next shortly >>> >>> The EFI one is here >>> https://mail.google.com/mail/u/0/#label/linux-efi/FMfcgxwBVgrQRjglPkWRqRqVclGgVDnB >>> >> >> Because of no privilege, the website is denied for me. Anyway, it's nice to have been fixed. > > Looks like Ard posted a link to a label in his personal gmail mailbox? > Hmm, it seems that, my bad understanding. Thanks your reply. > Gr{oetje,eeting}s, > > Geert >