[RFC PATCH 0/3] kbuild: change the default shell to bash

From: Masahiro Yamada
Date: Fri Aug 19 2022 - 02:58:51 EST



This is related to the discussion about the portability [1].

I wrote this code some time ago for some reason. My motivation at that
time was trap handling.

We use the EXIT trap in several places. The POSIX [2] mentions the 'EXIT'
as the trap condition, but nothing about the actual conditions that trigger
the EXIT trap. Bash invokes the EXIT trap when it exits after receiving
an unhandled signal, while dash does not.

I did not submit the patches because I lost the use-case of the EXIT trap
except cleaning temporary files. It is harmless to have temp files left over.

Recently, I saw a bug report regarding the portability of 'echo'
('echo' is a shell's built-in command. The behavior is different between
bash and dash).

I am sharing this patch set as RFC in case somebody might have interest or comment.
I am still wondering if this might be a big hammer, though.

[1]: https://lore.kernel.org/all/e902a360e3759c7f87d98d71d79a0d5cbe935e3e.camel@xxxxxxxxxxxxxxxxxxx/
[2]: https://pubs.opengroup.org/onlinepubs/009604599/utilities/trap.html



Masahiro Yamada (3):
kconfig: move declarations for prepossessing to internal.h
kconfig: allow to choose the shell for $(shell ) functions
kbuild: use bash as the default shell for Make and Kconfig

.../kbuild/kconfig-macro-language.rst | 4 ++
Makefile | 7 ++
scripts/Kconfig.include | 3 +
scripts/kconfig/confdata.c | 1 +
scripts/kconfig/internal.h | 18 +++++
scripts/kconfig/lexer.l | 1 +
scripts/kconfig/lkc_proto.h | 13 ----
scripts/kconfig/parser.y | 1 +
scripts/kconfig/preprocess.c | 66 +++++++++++++++----
9 files changed, 87 insertions(+), 27 deletions(-)

--
2.34.1