Re: [Question] Why CONFIG_SHELL

From: Masahiro Yamada
Date: Mon Jun 09 2014 - 06:26:07 EST


Hi Sam,


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/