kbuild: add $(BASH) to run scripts with bash-extension
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 25 Aug 2019 13:28:37 +0000 (22:28 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 4 Sep 2019 13:54:13 +0000 (22:54 +0900)
commit858805b336be1cabb3d9033adaa3676574d12e37
tree3b276a719e3c841889b6924c18622bcaf87c9399
parent8cc7af751443f7c82d12c7e5061fd2fa2e08a3d4
kbuild: add $(BASH) to run scripts with bash-extension

CONFIG_SHELL falls back to sh when bash is not installed on the system,
but nobody is testing such a case since bash is usually installed.
So, shell scripts invoked by CONFIG_SHELL are only tested with bash.

It makes it difficult to test whether the hashbang #!/bin/sh is real.
For example, #!/bin/sh in arch/powerpc/kernel/prom_init_check.sh is
false. (I fixed it up)

Besides, some shell scripts invoked by CONFIG_SHELL use bash-extension
and #!/bin/bash is specified as the hashbang, while CONFIG_SHELL may
not always be set to bash.

Probably, the right thing to do is to introduce BASH, which is bash by
default, and always set CONFIG_SHELL to sh. Replace $(CONFIG_SHELL)
with $(BASH) for bash scripts.

If somebody tries to add bash-extension to a #!/bin/sh script, it will
be caught in testing because /bin/sh is a symlink to dash on some major
distributions.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Makefile
arch/mips/boot/Makefile
arch/powerpc/Makefile.postlink
arch/powerpc/kernel/prom_init_check.sh
kernel/Makefile
scripts/Makefile.lib