On 24 July 2018 at 10:12, Arnd Bergmann <a...@arndb.de> wrote:
> On Tue, Jul 24, 2018 at 2:26 AM, AKASHI Takahiro
> <takahiro.aka...@linaro.org> wrote:
>> On Tue, Jul 24, 2018 at 09:05:45AM +1000, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> After merging the arm64 tree, today's linux-next build (x86_64
>>> allmodconfig) produced this warning:
>>
>> Where can I find this specific branch?
>>
>>> drivers/acpi/Kconfig:6:error: recursive dependency detected!
>>> drivers/acpi/Kconfig:6:       symbol ACPI depends on EFI
>>
>> My patch created an additional dependency like:
>>   menu ACPI
>>     ...
>>     depends on IA64 || X86 || (ARM64 && EFI)
>>
>>> arch/x86/Kconfig:1920:        symbol EFI depends on ACPI
>>
>> So I don't understand why this change makes a warning on x86_64 build.
>> Is this a real recursive dependency?
>
> On x86, we have
>
> config EFI
>         bool "EFI runtime service support"
>         depends on ACPI
>
> Kconfig cannot know that CONFIG_ARM64 is never set on x86, while
> X86 is always set. So to Kconfig it it appears like a recursive
> dependency.
>
> The best workaround I can see is to have an intermediate symbol
> on ARM64 that is invisible to Kconfig on x86, like
>
> config ARCH_SUPPORTS_ACPI
>         def_bool EFI
>
> and then have ACPI depend on that.
>

I suppose you mean

depends on IA64 || X86 || ARCH_SUPPORTS_ACPI

right?

Instead, perhaps we could have

config ARCH_SUPPORTS_ACPI
        def_bool IA64 || X86

and make CONFIG_ACPI depend on that. Then, we can set it conditionally
in arch/arm64/Kconfig if CONFIG_EFI is enabled.

Reply via email to