public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [Question] Why CONFIG_SHELL
@ 2014-06-09  5:04 Masahiro Yamada
  2014-06-09  7:49 ` Sam Ravnborg
  0 siblings, 1 reply; 4+ messages in thread
From: Masahiro Yamada @ 2014-06-09  5:04 UTC (permalink / raw)
  To: linux-kernel, linux-kbuild

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?

Is it good to rename it to KBUILD_SHELL or something else?


Best Regards
Masahiro Yamada


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Question] Why CONFIG_SHELL
  2014-06-09  5:04 [Question] Why CONFIG_SHELL Masahiro Yamada
@ 2014-06-09  7:49 ` Sam Ravnborg
  2014-06-09 10:25   ` Masahiro Yamada
  0 siblings, 1 reply; 4+ messages in thread
From: Sam Ravnborg @ 2014-06-09  7:49 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild

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...

	Sam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Question] Why CONFIG_SHELL
  2014-06-09  7:49 ` Sam Ravnborg
@ 2014-06-09 10:25   ` Masahiro Yamada
  2014-06-09 11:40     ` Sam Ravnborg
  0 siblings, 1 reply; 4+ messages in thread
From: Masahiro Yamada @ 2014-06-09 10:25 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-kernel, linux-kbuild

Hi Sam,


On Mon, 9 Jun 2014 09:49:35 +0200
Sam Ravnborg <sam@ravnborg.org> 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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Question] Why CONFIG_SHELL
  2014-06-09 10:25   ` Masahiro Yamada
@ 2014-06-09 11:40     ` Sam Ravnborg
  0 siblings, 0 replies; 4+ messages in thread
From: Sam Ravnborg @ 2014-06-09 11:40 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kernel, linux-kbuild

On Mon, Jun 09, 2014 at 07:25:48PM +0900, Masahiro Yamada wrote:
> Hi Sam,
> 
> 
> On Mon, 9 Jun 2014 09:49:35 +0200
> Sam Ravnborg <sam@ravnborg.org> 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 ?
Not all - but most.
All shell scripts that are invoked with $(CONFIG_SHELL) must be sh-compatible,
or in practice dash compatible as well as bash compatible.
The preference is bash as expressed with the above code.

	Sam

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-06-09 11:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-09  5:04 [Question] Why CONFIG_SHELL Masahiro Yamada
2014-06-09  7:49 ` Sam Ravnborg
2014-06-09 10:25   ` Masahiro Yamada
2014-06-09 11:40     ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox