• Will Deacon's avatar
    init/Kconfig: Fix infinite Kconfig recursion on PPC · 71c67a31
    Will Deacon authored
    Commit 5cf896fb ("arm64: Add support for relocating the kernel with
    RELR relocations") introduced CONFIG_TOOLS_SUPPORT_RELR, which checks
    for RELR support in the toolchain as part of the kernel configuration.
    During this procedure, "$(NM)" is invoked to see if it supports the new
    relocation format, however PowerPC conditionally overrides this variable
    in the architecture Makefile in order to pass '--synthetic' when
    targetting PPC64.
    
    This conditional override causes Kconfig to recurse forever, since
    CONFIG_TOOLS_SUPPORT_RELR cannot be determined without $(NM) being
    defined, but that in turn depends on CONFIG_PPC64:
    
      $ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
      scripts/kconfig/conf  --syncconfig Kconfig
      scripts/kconfig/conf  --syncconfig Kconfig
      scripts/kconfig/conf  --syncconfig Kconfig
      [...]
    
    In this particular case, it looks like PowerPC may be able to pass
    '--synthetic' unconditionally to nm or even drop it altogether. While
    that is being resolved, let's just bodge the RELR check by picking up
    $(NM) directly from the environment in whatever state it happens to be
    in.
    
    Cc: Peter Collingbourne <pcc@google.com>
    Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Suggested-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    71c67a31
Kconfig 69.7 KB