public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Makefile: fix error when gen TAGS
@ 2012-03-12  3:53 Yang Bai
  2012-03-12  6:46 ` Stephen Boyd
  0 siblings, 1 reply; 6+ messages in thread
From: Yang Bai @ 2012-03-12  3:53 UTC (permalink / raw)
  To: mmarek, rostedt, sboyd, hamo.by, adobriyan; +Cc: linux-kernel

scripts/tags.sh has a problem that it does not
test which kind of tags we are generating and
assumes tags. So when gen TAGS it shows:
  GEN     TAGS
  sed: can't read tags: No such file or directory
  make: *** [TAGS] Error 2

Signed-off-by: Yang Bai <hamo.by@gmail.com>
---
 scripts/tags.sh |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 833813a..ce94e34 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -168,7 +168,11 @@ exuberant()
 	--regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
 
 	# Remove structure forward declarations.
-	LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
+	if [[ -e tags ]]; then
+	    LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
+	else
+	    LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' TAGS
+	fi
 }
 
 emacs()
-- 
1.7.9.1


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

* Re: [PATCH] Makefile: fix error when gen TAGS
  2012-03-12  3:53 [PATCH] Makefile: fix error when gen TAGS Yang Bai
@ 2012-03-12  6:46 ` Stephen Boyd
  2012-03-12  7:06   ` Yang Bai
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Boyd @ 2012-03-12  6:46 UTC (permalink / raw)
  To: Yang Bai; +Cc: mmarek, rostedt, adobriyan, linux-kernel

On 3/11/2012 8:53 PM, Yang Bai wrote:
> scripts/tags.sh has a problem that it does not
> test which kind of tags we are generating and
> assumes tags. So when gen TAGS it shows:
>    GEN     TAGS
>    sed: can't read tags: No such file or directory
>    make: *** [TAGS] Error 2
>
> Signed-off-by: Yang Bai<hamo.by@gmail.com>
> ---
>   scripts/tags.sh |    6 +++++-
>   1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 833813a..ce94e34 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -168,7 +168,11 @@ exuberant()
>   	--regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
>
>   	# Remove structure forward declarations.
> -	LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
> +	if [[ -e tags ]]; then
> +	    LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
> +	else
> +	    LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' TAGS
> +	fi
>   }
>   

What does ctags --version print out for you? I'm not aware of exuberant 
tags outputting files called TAGS (although etags would do that and then 
this patch wouldn't make sense).

It would be nice if etags was updated to take care of this forward 
declaration removal. Care to send that patch?

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


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

* Re: [PATCH] Makefile: fix error when gen TAGS
  2012-03-12  6:46 ` Stephen Boyd
@ 2012-03-12  7:06   ` Yang Bai
  2012-03-12  7:34     ` Stephen Boyd
  0 siblings, 1 reply; 6+ messages in thread
From: Yang Bai @ 2012-03-12  7:06 UTC (permalink / raw)
  To: Stephen Boyd; +Cc: mmarek, rostedt, adobriyan, linux-kernel

On Mon, Mar 12, 2012 at 2:46 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
>
>
> What does ctags --version print out for you? I'm not aware of exuberant tags
> outputting files called TAGS (although etags would do that and then this
> patch wouldn't make sense).

hamo@trinity ~ $ ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Nov  9 2011, 03:17:31
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

hamo@trinity ~ $ etags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Nov  9 2011, 03:17:31
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

hamo@trinity ~ $ ls -l /usr/bin/etags
lrwxrwxrwx 1 root root 23 Feb  8 17:48 /usr/bin/etags -> /etc/alternatives/etags
hamo@trinity ~ $ ls -l /etc/alternatives/etags
lrwxrwxrwx 1 root root 24 Feb 15 10:06 /etc/alternatives/etags ->
/usr/bin/ctags-exuberant

So I think which kind of name Exuberant Ctags generates depends on argv[0].

>
> It would be nice if etags was updated to take care of this forward
> declaration removal. Care to send that patch?
>
Yes. I will send this patch soon.

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

* Re: [PATCH] Makefile: fix error when gen TAGS
  2012-03-12  7:06   ` Yang Bai
@ 2012-03-12  7:34     ` Stephen Boyd
  2012-03-12  7:50       ` Yang Bai
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Boyd @ 2012-03-12  7:34 UTC (permalink / raw)
  To: Yang Bai; +Cc: mmarek, rostedt, adobriyan, linux-kernel

On 3/12/2012 12:06 AM, Yang Bai wrote:
> On Mon, Mar 12, 2012 at 2:46 PM, Stephen Boyd<sboyd@codeaurora.org>  wrote:
>>
>> What does ctags --version print out for you? I'm not aware of exuberant tags
>> outputting files called TAGS (although etags would do that and then this
>> patch wouldn't make sense).
> hamo@trinity ~ $ ctags --version
> Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
>    Compiled: Nov  9 2011, 03:17:31
>    Addresses:<dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
>    Optional compiled features: +wildcards, +regex
>
> hamo@trinity ~ $ etags --version
> Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
>    Compiled: Nov  9 2011, 03:17:31
>    Addresses:<dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
>    Optional compiled features: +wildcards, +regex
>
> hamo@trinity ~ $ ls -l /usr/bin/etags
> lrwxrwxrwx 1 root root 23 Feb  8 17:48 /usr/bin/etags ->  /etc/alternatives/etags
> hamo@trinity ~ $ ls -l /etc/alternatives/etags
> lrwxrwxrwx 1 root root 24 Feb 15 10:06 /etc/alternatives/etags ->
> /usr/bin/ctags-exuberant
>
> So I think which kind of name Exuberant Ctags generates depends on argv[0].
>

Ah ok. How about this patch instead? Then we don't duplicate the sed 
statement.

---->8-------

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 833813a..b390096 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -168,7 +168,7 @@ exuberant()
         --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'

         # Remove structure forward declarations.
-       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
+       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $2
  }

  emacs()
@@ -213,9 +213,9 @@ emacs()
  xtags()
  {
         if $1 --version 2>&1 | grep -iq exuberant; then
-               exuberant $1
+               exuberant $1 $2
         elif $1 --version 2>&1 | grep -iq emacs; then
-               emacs $1
+               emacs $1 $2
         else
                 all_sources | xargs $1 -a
          fi
@@ -244,11 +244,11 @@ case "$1" in

         "tags")
                 rm -f tags
-               xtags ctags
+               xtags ctags $1
                 ;;

         "TAGS")
                 rm -f TAGS
-               xtags etags
+               xtags etags $1
                 ;;
  esac


But then with your next patch maybe it would be better to just have a flag?

----8<-----

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 833813a..4b1755d 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -166,9 +166,6 @@ exuberant()
         all_defconfigs | xargs -r $1 -a                         \
         --langdef=dotconfig --language-force=dotconfig          \
         --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
-
-       # Remove structure forward declarations.
-       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
  }

  emacs()
@@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then
         fi
  fi

+remove_structs=
  case "$1" in
         "cscope")
                 docscope
@@ -244,11 +242,18 @@ case "$1" in

         "tags")
                 rm -f tags
-               xtags ctags
+               xtags ctags $1
+               remove_structs=y
                 ;;

         "TAGS")
                 rm -f TAGS
-               xtags etags
+               xtags etags $1
+               remove_structs=y
                 ;;
  esac
+
+# Remove structure forward declarations.
+if [ -n $remove_structs ]; then
+       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $1
+fi


-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


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

* Re: [PATCH] Makefile: fix error when gen TAGS
  2012-03-12  7:34     ` Stephen Boyd
@ 2012-03-12  7:50       ` Yang Bai
  2012-03-12  7:52         ` Stephen Boyd
  0 siblings, 1 reply; 6+ messages in thread
From: Yang Bai @ 2012-03-12  7:50 UTC (permalink / raw)
  To: Stephen Boyd; +Cc: mmarek, rostedt, adobriyan, linux-kernel

On Mon, Mar 12, 2012 at 3:34 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
>
> Ah ok. How about this patch instead? Then we don't duplicate the sed
> statement.
>
> ---->8-------
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 833813a..b390096 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -168,7 +168,7 @@ exuberant()
>
>        --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
>
>        # Remove structure forward declarations.
> -       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
> \1;.*\$\/;"\tx$/d' tags
> +       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
> \1;.*\$\/;"\tx$/d' $2
>  }
>
>  emacs()
> @@ -213,9 +213,9 @@ emacs()
>  xtags()
>  {
>        if $1 --version 2>&1 | grep -iq exuberant; then
> -               exuberant $1
> +               exuberant $1 $2
>        elif $1 --version 2>&1 | grep -iq emacs; then
> -               emacs $1
> +               emacs $1 $2
>        else
>                all_sources | xargs $1 -a
>         fi
> @@ -244,11 +244,11 @@ case "$1" in
>
>        "tags")
>                rm -f tags
> -               xtags ctags
> +               xtags ctags $1
>                ;;
>
>        "TAGS")
>                rm -f TAGS
> -               xtags etags
> +               xtags etags $1
>                ;;
>  esac
>
>
> But then with your next patch maybe it would be better to just have a flag?
>
> ----8<-----
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 833813a..4b1755d 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -166,9 +166,6 @@ exuberant()
>        all_defconfigs | xargs -r $1 -a                         \
>        --langdef=dotconfig --language-force=dotconfig          \
>
>        --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
> -
> -       # Remove structure forward declarations.
>
> -       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
> \1;.*\$\/;"\tx$/d' tags
>  }
>
>  emacs()
> @@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then
>        fi
>  fi
>
> +remove_structs=
>  case "$1" in
>        "cscope")
>                docscope
> @@ -244,11 +242,18 @@ case "$1" in
>
>        "tags")
>                rm -f tags
> -               xtags ctags
> +               xtags ctags $1

Why we need a $1 here??
> +               remove_structs=y
>                ;;
>
>        "TAGS")
>                rm -f TAGS
> -               xtags etags
> +               xtags etags $1
The same.
> +               remove_structs=y
>                ;;
>  esac
> +
> +# Remove structure forward declarations.
> +if [ -n $remove_structs ]; then
> +       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
> \1;.*\$\/;"\tx$/d' $1
> +fi
>

This way is better but I don't understand why a $1 is there.
I think it is useless and if you agree with me, i will send a fine patch to you.

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

* Re: [PATCH] Makefile: fix error when gen TAGS
  2012-03-12  7:50       ` Yang Bai
@ 2012-03-12  7:52         ` Stephen Boyd
  0 siblings, 0 replies; 6+ messages in thread
From: Stephen Boyd @ 2012-03-12  7:52 UTC (permalink / raw)
  To: Yang Bai; +Cc: mmarek, rostedt, adobriyan, linux-kernel

On 3/12/2012 12:50 AM, Yang Bai wrote:
> On Mon, Mar 12, 2012 at 3:34 PM, Stephen Boyd<sboyd@codeaurora.org>  wrote:
>> Ah ok. How about this patch instead? Then we don't duplicate the sed
>> statement.
>>
>> ---->8-------
>>
>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>> index 833813a..b390096 100755
>> --- a/scripts/tags.sh
>> +++ b/scripts/tags.sh
>> @@ -168,7 +168,7 @@ exuberant()
>>
>>         --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
>>
>>         # Remove structure forward declarations.
>> -       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
>> \1;.*\$\/;"\tx$/d' tags
>> +       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
>> \1;.*\$\/;"\tx$/d' $2
>>   }
>>
>>   emacs()
>> @@ -213,9 +213,9 @@ emacs()
>>   xtags()
>>   {
>>         if $1 --version 2>&1 | grep -iq exuberant; then
>> -               exuberant $1
>> +               exuberant $1 $2
>>         elif $1 --version 2>&1 | grep -iq emacs; then
>> -               emacs $1
>> +               emacs $1 $2
>>         else
>>                 all_sources | xargs $1 -a
>>          fi
>> @@ -244,11 +244,11 @@ case "$1" in
>>
>>         "tags")
>>                 rm -f tags
>> -               xtags ctags
>> +               xtags ctags $1
>>                 ;;
>>
>>         "TAGS")
>>                 rm -f TAGS
>> -               xtags etags
>> +               xtags etags $1
>>                 ;;
>>   esac
>>
>>
>> But then with your next patch maybe it would be better to just have a flag?
>>
>> ----8<-----
>>
>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>> index 833813a..4b1755d 100755
>> --- a/scripts/tags.sh
>> +++ b/scripts/tags.sh
>> @@ -166,9 +166,6 @@ exuberant()
>>         all_defconfigs | xargs -r $1 -a                         \
>>         --langdef=dotconfig --language-force=dotconfig          \
>>
>>         --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
>> -
>> -       # Remove structure forward declarations.
>>
>> -       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
>> \1;.*\$\/;"\tx$/d' tags
>>   }
>>
>>   emacs()
>> @@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then
>>         fi
>>   fi
>>
>> +remove_structs=
>>   case "$1" in
>>         "cscope")
>>                 docscope
>> @@ -244,11 +242,18 @@ case "$1" in
>>
>>         "tags")
>>                 rm -f tags
>> -               xtags ctags
>> +               xtags ctags $1
> Why we need a $1 here??
>> +               remove_structs=y
>>                 ;;
>>
>>         "TAGS")
>>                 rm -f TAGS
>> -               xtags etags
>> +               xtags etags $1
> The same.
>> +               remove_structs=y
>>                 ;;
>>   esac
>> +
>> +# Remove structure forward declarations.
>> +if [ -n $remove_structs ]; then
>> +       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
>> \1;.*\$\/;"\tx$/d' $1
>> +fi
>>
> This way is better but I don't understand why a $1 is there.
> I think it is useless and if you agree with me, i will send a fine patch to you.

It's a holdover from the previous patch. Thanks for spotting/removing it.

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


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

end of thread, other threads:[~2012-03-12  7:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-12  3:53 [PATCH] Makefile: fix error when gen TAGS Yang Bai
2012-03-12  6:46 ` Stephen Boyd
2012-03-12  7:06   ` Yang Bai
2012-03-12  7:34     ` Stephen Boyd
2012-03-12  7:50       ` Yang Bai
2012-03-12  7:52         ` Stephen Boyd

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