|
|
Log in / Subscribe / Register

kbuild: change the default shell to bash

From:  Masahiro Yamada <masahiroy-AT-kernel.org>
To:  linux-kbuild-AT-vger.kernel.org
Subject:  [RFC PATCH 0/3] kbuild: change the default shell to bash
Date:  Fri, 19 Aug 2022 15:56:00 +0900
Message-ID:  <20220819065604.295572-1-masahiroy@kernel.org>
Cc:  Nick Desaulniers <ndesaulniers-AT-google.com>, Alexandre Belloni <alexandre.belloni-AT-bootlin.com>, Randy Dunlap <rdunlap-AT-infradead.org>, Richard Purdie <richard.purdie-AT-linuxfoundation.org>, Masahiro Yamada <masahiroy-AT-kernel.org>, Jonathan Corbet <corbet-AT-lwn.net>, Michal Marek <michal.lkml-AT-markovi.net>, linux-doc-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org
Archive-link:  Article


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/e902a360e3759c7f87d98d71d79a0...
[2]: https://pubs.opengroup.org/onlinepubs/009604599/utilities...



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



Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds