Message ID | 1508993751-17218-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Accepted |
Commit | cd1af7cfbbdc7719b74ad9f3c88e50bb77713664 |
Headers | show |
Series | coccinelle: fix verbose message about .cocci file being run | expand |
Le 26/10/17 à 06:55, Masahiro Yamada a écrit : > If you run coccicheck with V=1 and COCCI=, you will see a strange > path to the semantic patch file. For example, run the following: > > $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck > [ snip ] > The semantic patch that makes this report is available > in scriptcoccinelle/free/kfree.cocci. > > Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". > > When running coccicheck without O=, $srctree is expanded to ".", which > represents one arbitrary character in the regular expression. Using > sed is not a good choice here. Strip $srctree/ simply without sed. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Nicolas Palix <nicolas.palix@imag.fr> > --- > > scripts/coccicheck | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/coccicheck b/scripts/coccicheck > index 1bfa2d2..9d18662 100755 > --- a/scripts/coccicheck > +++ b/scripts/coccicheck > @@ -186,7 +186,7 @@ coccinelle () { > > if [ $VERBOSE -ne 0 -a $ONLINE -eq 0 ] ; then > > - FILE=`echo $COCCI | sed "s|$srctree/||"` > + FILE=${COCCI#$srctree/} > > echo "Processing `basename $COCCI`" > echo "with option(s) \"$OPT\"" > -- Nicolas Palix http://lig-membres.imag.fr/palix/
On Wed, Oct 25, 2017 at 9:55 PM, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > If you run coccicheck with V=1 and COCCI=, you will see a strange > path to the semantic patch file. For example, run the following: > > $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck > [ snip ] > The semantic patch that makes this report is available > in scriptcoccinelle/free/kfree.cocci. > > Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". > > When running coccicheck without O=, $srctree is expanded to ".", which > represents one arbitrary character in the regular expression. Using > sed is not a good choice here. Strip $srctree/ simply without sed. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > scripts/coccicheck | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/coccicheck b/scripts/coccicheck > index 1bfa2d2..9d18662 100755 > --- a/scripts/coccicheck > +++ b/scripts/coccicheck > @@ -186,7 +186,7 @@ coccinelle () { > > if [ $VERBOSE -ne 0 -a $ONLINE -eq 0 ] ; then > > - FILE=`echo $COCCI | sed "s|$srctree/||"` > + FILE=${COCCI#$srctree/} [jim@krebstar linux-rc]$ make CONFIG_SHELL=dash V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck dash ./scripts/coccicheck ./scripts/coccicheck: 63: ./scripts/coccicheck: Bad substitution make: *** [Makefile:1585: coccicheck] Error 2 -- Jim
Hi Jim 2017-10-28 8:56 GMT+09:00 Jim Davis <jim.epost@gmail.com>: > On Wed, Oct 25, 2017 at 9:55 PM, Masahiro Yamada > <yamada.masahiro@socionext.com> wrote: >> If you run coccicheck with V=1 and COCCI=, you will see a strange >> path to the semantic patch file. For example, run the following: >> >> $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck >> [ snip ] >> The semantic patch that makes this report is available >> in scriptcoccinelle/free/kfree.cocci. >> >> Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". >> >> When running coccicheck without O=, $srctree is expanded to ".", which >> represents one arbitrary character in the regular expression. Using >> sed is not a good choice here. Strip $srctree/ simply without sed. >> >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> --- >> >> scripts/coccicheck | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/scripts/coccicheck b/scripts/coccicheck >> index 1bfa2d2..9d18662 100755 >> --- a/scripts/coccicheck >> +++ b/scripts/coccicheck >> @@ -186,7 +186,7 @@ coccinelle () { >> >> if [ $VERBOSE -ne 0 -a $ONLINE -eq 0 ] ; then >> >> - FILE=`echo $COCCI | sed "s|$srctree/||"` >> + FILE=${COCCI#$srctree/} > > [jim@krebstar linux-rc]$ make CONFIG_SHELL=dash V=1 > COCCI=scripts/coccinelle/free/kfree.cocci coccicheck > dash ./scripts/coccicheck > ./scripts/coccicheck: 63: ./scripts/coccicheck: Bad substitution > make: *** [Makefile:1585: coccicheck] Error 2 > > -- > Jim Did you review/test this patch? or point out something about existing code? The error message points to line 63: COCCIINCLUDE=${LINUXINCLUDE//-I/-I } My code FILE=${COCCI#$srctree/} works on dash. I believe your post does not block my patch. Actually, scripts/coccicheck contains three lines that depend on bash. line 63: COCCIINCLUDE=${LINUXINCLUDE//-I/-I } line 64: COCCIINCLUDE=${COCCIINCLUDE// -include/ --include} line 134: if [[ $? -ne 0 ]]; then They are legitimate because I see the correct shebang #!/bin/bash on the top of this script. CONFIG_SHELL is not described in Documentation/kbuild/kbuild.txt so Kbuild does not expect CONFIG_SHELL overridden from the command line. (at least for now). Some sell scripts in kernel tree are specified with "#!/bin/sh" and others with "#!/bin/bash" Both of the cases are invoked with CONFIG_SHELL in Kbuild, so several scripts give error with CONFIG_SHELL=dash. For example, masahiro@grover:~/ref/linux$ make CONFIG_SHELL=dash tags GEN tags ./scripts/tags.sh: 159: ./scripts/tags.sh: Syntax error: "(" unexpected make: *** [tags] Error 2 Of course, it will be possible to improve this situation if we like, but should be discussed in a new thread since this is about Kbuild infrastructure, not a coccinelle-related topic. -- Best Regards Masahiro Yamada
2017-10-26 16:22 GMT+09:00 Nicolas Palix (LIG) <Nicolas.Palix@imag.fr>: > Le 26/10/17 à 06:55, Masahiro Yamada a écrit : >> >> If you run coccicheck with V=1 and COCCI=, you will see a strange >> path to the semantic patch file. For example, run the following: >> >> $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck >> [ snip ] >> The semantic patch that makes this report is available >> in scriptcoccinelle/free/kfree.cocci. >> >> Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". >> >> When running coccicheck without O=, $srctree is expanded to ".", which >> represents one arbitrary character in the regular expression. Using >> sed is not a good choice here. Strip $srctree/ simply without sed. >> >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > > Acked-by: Nicolas Palix <nicolas.palix@imag.fr> >> >> --- Applied to linux-kbuild/misc. -- Best Regards Masahiro Yamada
On Tue, 7 Nov 2017, Masahiro Yamada wrote: > 2017-10-26 16:22 GMT+09:00 Nicolas Palix (LIG) <Nicolas.Palix@imag.fr>: > > Le 26/10/17 à 06:55, Masahiro Yamada a écrit : > >> > >> If you run coccicheck with V=1 and COCCI=, you will see a strange > >> path to the semantic patch file. For example, run the following: > >> > >> $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck > >> [ snip ] > >> The semantic patch that makes this report is available > >> in scriptcoccinelle/free/kfree.cocci. > >> > >> Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". > >> > >> When running coccicheck without O=, $srctree is expanded to ".", which > >> represents one arbitrary character in the regular expression. Using > >> sed is not a good choice here. Strip $srctree/ simply without sed. > >> > >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > > > > Acked-by: Nicolas Palix <nicolas.palix@imag.fr> > >> > >> --- > > Applied to linux-kbuild/misc. Thanks! julia
diff --git a/scripts/coccicheck b/scripts/coccicheck index 1bfa2d2..9d18662 100755 --- a/scripts/coccicheck +++ b/scripts/coccicheck @@ -186,7 +186,7 @@ coccinelle () { if [ $VERBOSE -ne 0 -a $ONLINE -eq 0 ] ; then - FILE=`echo $COCCI | sed "s|$srctree/||"` + FILE=${COCCI#$srctree/} echo "Processing `basename $COCCI`" echo "with option(s) \"$OPT\""
If you run coccicheck with V=1 and COCCI=, you will see a strange path to the semantic patch file. For example, run the following: $ make V=1 COCCI=scripts/coccinelle/free/kfree.cocci coccicheck [ snip ] The semantic patch that makes this report is available in scriptcoccinelle/free/kfree.cocci. Notice "s/" was dropped from "scripts/coccinelle/free/kfree.cocci". When running coccicheck without O=, $srctree is expanded to ".", which represents one arbitrary character in the regular expression. Using sed is not a good choice here. Strip $srctree/ simply without sed. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- scripts/coccicheck | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4