From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.mei.co.jp ([133.183.100.20]:34469 "EHLO smtp.mei.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752948AbaFIKZ6 (ORCPT ); Mon, 9 Jun 2014 06:25:58 -0400 Date: Mon, 09 Jun 2014 19:25:48 +0900 From: Masahiro Yamada Subject: Re: [Question] Why CONFIG_SHELL In-Reply-To: <20140609074934.GB15826@ravnborg.org> References: <20140609140411.95B6.AA925319@jp.panasonic.com> <20140609074934.GB15826@ravnborg.org> Message-Id: <20140609192548.95CA.AA925319@jp.panasonic.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Sam Ravnborg Cc: linux-kernel , linux-kbuild@vger.kernel.org Hi Sam, On Mon, 9 Jun 2014 09:49:35 +0200 Sam Ravnborg wrote: > On Mon, Jun 09, 2014 at 02:04:12PM +0900, Masahiro Yamada wrote: > > Hi experts. > > > > I think all the macros with CONFIG_ prefix are supposed to be > > defined in Kconfig. > > But I've been long wondering why there exists one exception: > > CONFIG_SHELL. > > > > Is there any historical, or special reason? > It has been like this as far back as I remmeber. > I assume that one has planned to set the shell in Kconfig back then. > > > Is it good to rename it to KBUILD_SHELL or something else? > Please do so, to free up the CONFIG_ namespace. > > I the end Michal will decide if he want this cleanup. > On the top of my head I see no problems in doing this, > but maybe there are some out-of-tree modules or similar > we need to consider... Thanks for your commet. Another question popped up. CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ else echo sh; fi ; fi) If bash is not found on the system, CONFIG_SHELL falls back to "sh". Does it mean, all shell scripts are written as sh-compatible ? I guess bash is installed on the almost all system. It is difficult to detect the problem even if some scripts don't work on sh. If we allow bash-specific syntax in shell scripts, we should stop the build immedately if bash is missing, like this? KBUILD_SHELL := /bin/bash if [ ! -x "$$BASH" ]; then $(error $KBUILD_SHELL not found) fi Best Regards Masahiro Yamada