LinuxPPC-Dev Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] powerpc/tools: Don't quote $objdump in scripts
@ 2019-10-24  0:47 Michael Ellerman
  2019-10-24 17:28 ` Segher Boessenkool
  2019-11-07  3:45 ` Michael Ellerman
  0 siblings, 2 replies; 6+ messages in thread
From: Michael Ellerman @ 2019-10-24  0:47 UTC (permalink / raw)
  To: linuxppc-dev

Some of our scripts are passed $objdump and then call it as
"$objdump". This doesn't work if it contains spaces because we're
using ccache, for example you get errors such as:

  ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
  ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory

Fix it by not quoting the string when we expand it, allowing the shell
to do the right thing for us.

Fixes: a71aa05e1416 ("powerpc: Convert relocs_check to a shell script using grep")
Fixes: 4ea80652dc75 ("powerpc/64s: Tool to flag direct branches from unrelocated interrupt vectors")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/tools/relocs_check.sh       | 2 +-
 arch/powerpc/tools/unrel_branch_check.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/tools/relocs_check.sh b/arch/powerpc/tools/relocs_check.sh
index 2b4e959caa36..7b9fe0a567cf 100755
--- a/arch/powerpc/tools/relocs_check.sh
+++ b/arch/powerpc/tools/relocs_check.sh
@@ -20,7 +20,7 @@ objdump="$1"
 vmlinux="$2"
 
 bad_relocs=$(
-"$objdump" -R "$vmlinux" |
+$objdump -R "$vmlinux" |
 	# Only look at relocation lines.
 	grep -E '\<R_' |
 	# These relocations are okay
diff --git a/arch/powerpc/tools/unrel_branch_check.sh b/arch/powerpc/tools/unrel_branch_check.sh
index 1e972df3107e..77114755dc6f 100755
--- a/arch/powerpc/tools/unrel_branch_check.sh
+++ b/arch/powerpc/tools/unrel_branch_check.sh
@@ -18,14 +18,14 @@ vmlinux="$2"
 #__end_interrupts should be located within the first 64K
 
 end_intr=0x$(
-"$objdump" -R "$vmlinux" -d --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -d --start-address=0xc000000000000000           \
 		 --stop-address=0xc000000000010000 |
 grep '\<__end_interrupts>:' |
 awk '{print $1}'
 )
 
 BRANCHES=$(
-"$objdump" -R "$vmlinux" -D --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -D --start-address=0xc000000000000000           \
 		--stop-address=${end_intr} |
 grep -e "^c[0-9a-f]*:[[:space:]]*\([0-9a-f][0-9a-f][[:space:]]\)\{4\}[[:space:]]*b" |
 grep -v '\<__start_initialization_multiplatform>' |
-- 
2.21.0


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

* Re: [PATCH] powerpc/tools: Don't quote $objdump in scripts
  2019-10-24  0:47 [PATCH] powerpc/tools: Don't quote $objdump in scripts Michael Ellerman
@ 2019-10-24 17:28 ` Segher Boessenkool
  2019-10-25  8:53   ` David Laight
  2019-10-30 11:55   ` Michael Ellerman
  2019-11-07  3:45 ` Michael Ellerman
  1 sibling, 2 replies; 6+ messages in thread
From: Segher Boessenkool @ 2019-10-24 17:28 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev

On Thu, Oct 24, 2019 at 11:47:30AM +1100, Michael Ellerman wrote:
> Some of our scripts are passed $objdump and then call it as
> "$objdump". This doesn't work if it contains spaces because we're
> using ccache, for example you get errors such as:
> 
>   ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
>   ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory
> 
> Fix it by not quoting the string when we expand it, allowing the shell
> to do the right thing for us.

This breaks things for people with spaces in their paths.  Why doesn't your
user use something like  alias objdump="ccache ppc64le-objdump"  , instead?


Segher

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

* RE: [PATCH] powerpc/tools: Don't quote $objdump in scripts
  2019-10-24 17:28 ` Segher Boessenkool
@ 2019-10-25  8:53   ` David Laight
  2019-10-30 11:55   ` Michael Ellerman
  1 sibling, 0 replies; 6+ messages in thread
From: David Laight @ 2019-10-25  8:53 UTC (permalink / raw)
  To: Segher Boessenkool, Michael Ellerman; +Cc: linuxppc-dev

From: Segher Boessenkool
> Sent: 24 October 2019 18:29
> On Thu, Oct 24, 2019 at 11:47:30AM +1100, Michael Ellerman wrote:
> > Some of our scripts are passed $objdump and then call it as
> > "$objdump". This doesn't work if it contains spaces because we're
> > using ccache, for example you get errors such as:
> >
> >   ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
> >   ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory
> >
> > Fix it by not quoting the string when we expand it, allowing the shell
> > to do the right thing for us.
> 
> This breaks things for people with spaces in their paths.  Why doesn't your
> user use something like  alias objdump="ccache ppc64le-objdump"  , instead?

Given that make doesn't handle spaces in filenames it is likely that a build
will have terrible issues is there are spaces in any directory names.
(It is a right PITA running make on a certain OS.)
For command paths, spaces can be replaced by ? relying on shell globbing
to restore the space.

OTOH rather than alias, put the name of a script containing:
    #! /bin/sh
    exec ccache ppc64le-objdump "$@"
into $objdump.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


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

* Re: [PATCH] powerpc/tools: Don't quote $objdump in scripts
  2019-10-24 17:28 ` Segher Boessenkool
  2019-10-25  8:53   ` David Laight
@ 2019-10-30 11:55   ` Michael Ellerman
  2019-10-30 23:27     ` Segher Boessenkool
  1 sibling, 1 reply; 6+ messages in thread
From: Michael Ellerman @ 2019-10-30 11:55 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev

Segher Boessenkool <segher@kernel.crashing.org> writes:
> On Thu, Oct 24, 2019 at 11:47:30AM +1100, Michael Ellerman wrote:
>> Some of our scripts are passed $objdump and then call it as
>> "$objdump". This doesn't work if it contains spaces because we're
>> using ccache, for example you get errors such as:
>> 
>>   ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
>>   ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory
>> 
>> Fix it by not quoting the string when we expand it, allowing the shell
>> to do the right thing for us.
>
> This breaks things for people with spaces in their paths.

Spaces in their what? Who does that? :)

Also we don't support it:

  $ pwd
  $ /home/michael/foo bar
  $ make clean
  Makefile:147: *** source directory cannot contain spaces or colons.  Stop.

cheers

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

* Re: [PATCH] powerpc/tools: Don't quote $objdump in scripts
  2019-10-30 11:55   ` Michael Ellerman
@ 2019-10-30 23:27     ` Segher Boessenkool
  0 siblings, 0 replies; 6+ messages in thread
From: Segher Boessenkool @ 2019-10-30 23:27 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev

On Wed, Oct 30, 2019 at 10:55:03PM +1100, Michael Ellerman wrote:
> Segher Boessenkool <segher@kernel.crashing.org> writes:
> > On Thu, Oct 24, 2019 at 11:47:30AM +1100, Michael Ellerman wrote:
> >> Some of our scripts are passed $objdump and then call it as
> >> "$objdump". This doesn't work if it contains spaces because we're
> >> using ccache, for example you get errors such as:
> >> 
> >>   ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
> >>   ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory
> >> 
> >> Fix it by not quoting the string when we expand it, allowing the shell
> >> to do the right thing for us.
> >
> > This breaks things for people with spaces in their paths.
> 
> Spaces in their what? Who does that? :)

I know, right?

> Also we don't support it:
> 
>   $ pwd
>   $ /home/michael/foo bar
>   $ make clean
>   Makefile:147: *** source directory cannot contain spaces or colons.  Stop.

Of course.  But it's shell scripting 101 that you *do* quote all variable
expansions.  Do you want to set a bad example?  ;-)


Segher

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

* Re: [PATCH] powerpc/tools: Don't quote $objdump in scripts
  2019-10-24  0:47 [PATCH] powerpc/tools: Don't quote $objdump in scripts Michael Ellerman
  2019-10-24 17:28 ` Segher Boessenkool
@ 2019-11-07  3:45 ` Michael Ellerman
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Ellerman @ 2019-11-07  3:45 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev

On Thu, 2019-10-24 at 00:47:30 UTC, Michael Ellerman wrote:
> Some of our scripts are passed $objdump and then call it as
> "$objdump". This doesn't work if it contains spaces because we're
> using ccache, for example you get errors such as:
> 
>   ./arch/powerpc/tools/relocs_check.sh: line 48: ccache ppc64le-objdump: No such file or directory
>   ./arch/powerpc/tools/unrel_branch_check.sh: line 26: ccache ppc64le-objdump: No such file or directory
> 
> Fix it by not quoting the string when we expand it, allowing the shell
> to do the right thing for us.
> 
> Fixes: a71aa05e1416 ("powerpc: Convert relocs_check to a shell script using grep")
> Fixes: 4ea80652dc75 ("powerpc/64s: Tool to flag direct branches from unrelocated interrupt vectors")
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Applied to powerpc next.

https://git.kernel.org/powerpc/c/e44ff9ea8f4c8a90c82f7b85bd4f5e497c841960

cheers

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

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-24  0:47 [PATCH] powerpc/tools: Don't quote $objdump in scripts Michael Ellerman
2019-10-24 17:28 ` Segher Boessenkool
2019-10-25  8:53   ` David Laight
2019-10-30 11:55   ` Michael Ellerman
2019-10-30 23:27     ` Segher Boessenkool
2019-11-07  3:45 ` Michael Ellerman

LinuxPPC-Dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linuxppc-dev/0 linuxppc-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linuxppc-dev linuxppc-dev/ https://lore.kernel.org/linuxppc-dev \
		linuxppc-dev@lists.ozlabs.org linuxppc-dev@ozlabs.org
	public-inbox-index linuxppc-dev

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.ozlabs.lists.linuxppc-dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git