* [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