• Masahiro Yamada's avatar
    sh: rename suffix-y to suffix_y · 82977af9
    Masahiro Yamada authored
    'export suffix-y' does not work reliably because hyphens are disallowed
    in shell variables.
    
    A similar issue was fixed by commit 2bfbe788 ("kbuild: Do not use
    hyphen in exported variable name").
    
    If I do similar in dash, ARCH=sh fails to build.
    
      $ mv linux linux~
      $ cd linux~
      $ dash
      $ make O=foo/bar ARCH=sh CROSS_COMPILE=sh4-linux-gnu- defconfig all
      make[1]: Entering directory '/home/masahiro/linux~/foo/bar'
        [ snip ]
      make[4]: *** No rule to make target 'arch/sh/boot/compressed/vmlinux.bin.', needed by 'arch/sh/boot/compressed/piggy.o'.  Stop.
      make[3]: *** [/home/masahiro/linux~/arch/sh/boot/Makefile:40: arch/sh/boot/compressed/vmlinux] Error 2
      make[2]: *** [/home/masahiro/linux~/arch/sh/Makefile:194: zImage] Error 2
      make[1]: *** [/home/masahiro/linux~/Makefile:350: __build_one_by_one] Error 2
      make[1]: Leaving directory '/home/masahiro/linux~/foo/bar'
      make: *** [Makefile:219: __sub-make] Error 2
    
    The maintainer of GNU Make stated that there is no consistent way to
    export variables that do not meet the shell's naming criteria.
    (https://savannah.gnu.org/bugs/?55719)
    
    Consequently, you cannot use hyphens in exported variables.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
    82977af9
Makefile 3.27 KB