Re: [PATCH] coccinelle: fix verbose message about .cocci file being run

2017-11-08 Thread Julia Lawall


On Tue, 7 Nov 2017, Masahiro Yamada wrote:

> 2017-10-26 16:22 GMT+09:00 Nicolas Palix (LIG) :
> > 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 
> >
> > Acked-by: Nicolas Palix 
> >>
> >> ---
>
> Applied to linux-kbuild/misc.

Thanks!

julia

Re: [PATCH] coccinelle: fix verbose message about .cocci file being run

2017-11-06 Thread Masahiro Yamada
2017-10-26 16:22 GMT+09:00 Nicolas Palix (LIG) :
> 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 
>
> Acked-by: Nicolas Palix 
>>
>> ---

Applied to linux-kbuild/misc.


-- 
Best Regards
Masahiro Yamada


Re: [PATCH] coccinelle: fix verbose message about .cocci file being run

2017-10-28 Thread Masahiro Yamada
Hi Jim

2017-10-28 8:56 GMT+09:00 Jim Davis :
> On Wed, Oct 25, 2017 at 9:55 PM, Masahiro Yamada
>  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 
>> ---
>>
>>  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


Re: [PATCH] coccinelle: fix verbose message about .cocci file being run

2017-10-27 Thread Jim Davis
On Wed, Oct 25, 2017 at 9:55 PM, Masahiro Yamada
 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 
> ---
>
>  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


Re: [PATCH] coccinelle: fix verbose message about .cocci file being run

2017-10-26 Thread Nicolas Palix (LIG)

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 

Acked-by: Nicolas Palix 

---

  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/



smime.p7s
Description: Signature cryptographique S/MIME


[PATCH] coccinelle: fix verbose message about .cocci file being run

2017-10-25 Thread Masahiro Yamada
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 
---

 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\""
-- 
2.7.4