[PATCH] tools/perf/build: Fix redirection printouts

2013-10-09 Thread Ingo Molnar

* Arnaldo Carvalho de Melo  wrote:

> So while merging what I have in my perf/core branch I got to Vitillo's, as
> peterz called it, "inlining" of addr2line, i.e. using libbfd to do that work,
> it will look if lbfd is in EXTLIBS and if so, use it, otherwise we continue
> exec'in the addr2line tool.
> 
> Since this appears when doing the feature check:
> 
> ...libbfd: [ on  ]
> 
> I wanted to build just one object file that is related to this:
> 
> [acme@sandy linux]$ ls -la /tmp/build/perf/util/util/srcline.o
> ls: cannot access /tmp/build/perf/util/util/srcline.o: No such file or 
> directory
> [acme@sandy linux]$ ls -la tools/perf/util/srcline.c 
> -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
> [acme@sandy linux]$ ls -la tools/perf/util/srcline.*
> -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
> [acme@sandy linux]$ make V=1 O=/tmp/build/perf -C tools/perf/ util/srcline.o
> make: Entering directory `/home/acme/git/linux/tools/perf'
> BUILD: Doing 'make -j8' parallel build
> # Redirected target util/srcline.o => /tmp/build/perf/util/util/srcline.o
> make: Leaving directory `/home/acme/git/linux/tools/perf'
> [acme@sandy linux]$ 
> [acme@sandy linux]$ ls -la /tmp/build/perf/util/util/srcline.o
> ls: cannot access /tmp/build/perf/util/util/srcline.o: No such file or 
> directory
> [acme@sandy linux]$ make V=1 O=/tmp/build/perf -C tools/perf/ 
> /tmp/build/perf/util/util/srcline.o
> make: Entering directory `/home/acme/git/linux/tools/perf'
> BUILD: Doing 'make -j8' parallel build
> make[1]: *** No rule to make target `/tmp/build/perf/util/util/srcline.o'.  
> Stop.
> make: *** [/tmp/build/perf/util/util/srcline.o] Error 2
> make: Leaving directory `/home/acme/git/linux/tools/perf'
> [acme@sandy linux]$ ls -la tools/perf/util/srcline.*
> -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
> [acme@sandy linux]$
> 
>   What am I doing wrong here while trying to build just one .o file?
> 
>   Back to checking why it is not using the 'inline' addr2line...
> 
> - Arnaldo

There's two things that I can see here.

1)

The printout is a bit off, duplicating util/util. The fix below should 
help with that.

2)

This issue is more difficult: if tools/perf/util/srcline.o exists, then 
the redirection will not happen and make just says:

 comet:~/tip/tools/perf> rm -f /tmp/build/perf/util/pager.o
 comet:~/tip/tools/perf> make O=/tmp/build/perf/ util/pager.o
 make: `util/pager.o' is up to date.

 comet:~/tip/tools/perf> ll /tmp/build/perf/util/pager.o
 ls: cannot access /tmp/build/perf/util/pager.o: No such file or directory
 comet:~/tip/tools/perf> ll util/pager.o
 -rw-rw-r-- 1 mingo mingo 297488 Oct 10 07:34 util/pager.o

So the redirection quirks will only work in a clean tree. I think that 
should be fine - people who build via O= generally do it to keep their 
source trees clean.

Thanks,

Ingo

==>
>From 881641d16f8445d8796c3b437cb33d6467af98b7 Mon Sep 17 00:00:00 2001
From: Ingo Molnar 
Date: Thu, 10 Oct 2013 07:36:52 +0200
Subject: [PATCH] tools/perf/bench: Fix redirection printouts

Fix the duplicate util/util printout Arnaldo reported:

   $ make V=1 O=/tmp/build/perf -C tools/perf/ util/srcline.o
   ...
   # Redirected target util/srcline.o => 
/tmp/build/perf/util/util/srcline.o

Reported-by: Arnaldo Carvalho de Melo 
Cc: Peter Zijlstra 
Cc: Namhyung Kim 
Cc: David Ahern 
Cc: Jiri Olsa 
Signed-off-by: Ingo Molnar 
---
 tools/perf/Makefile.perf | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index ee97778..2d55480 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -585,11 +585,11 @@ ifneq ($(OUTPUT),)
 %.o: $(OUTPUT)%.o
@echo "# Redirected target $@ => $(OUTPUT)$@"
 util/%.o: $(OUTPUT)util/%.o
-   @echo "# Redirected target $@ => $(OUTPUT)util/$@"
+   @echo "# Redirected target $@ => $(OUTPUT)$@"
 bench/%.o: $(OUTPUT)bench/%.o
-   @echo "# Redirected target $@ => $(OUTPUT)bench/$@"
+   @echo "# Redirected target $@ => $(OUTPUT)$@"
 tests/%.o: $(OUTPUT)tests/%.o
-   @echo "# Redirected target $@ => $(OUTPUT)tests/$@"
+   @echo "# Redirected target $@ => $(OUTPUT)$@"
 endif
 
 # These two need to be here so that when O= is not used they take precedence
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] tools/perf/build: Fix redirection printouts

2013-10-09 Thread Ingo Molnar

* Arnaldo Carvalho de Melo a...@ghostprotocols.net wrote:

 So while merging what I have in my perf/core branch I got to Vitillo's, as
 peterz called it, inlining of addr2line, i.e. using libbfd to do that work,
 it will look if lbfd is in EXTLIBS and if so, use it, otherwise we continue
 exec'in the addr2line tool.
 
 Since this appears when doing the feature check:
 
 ...libbfd: [ on  ]
 
 I wanted to build just one object file that is related to this:
 
 [acme@sandy linux]$ ls -la /tmp/build/perf/util/util/srcline.o
 ls: cannot access /tmp/build/perf/util/util/srcline.o: No such file or 
 directory
 [acme@sandy linux]$ ls -la tools/perf/util/srcline.c 
 -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
 [acme@sandy linux]$ ls -la tools/perf/util/srcline.*
 -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
 [acme@sandy linux]$ make V=1 O=/tmp/build/perf -C tools/perf/ util/srcline.o
 make: Entering directory `/home/acme/git/linux/tools/perf'
 BUILD: Doing 'make -j8' parallel build
 # Redirected target util/srcline.o = /tmp/build/perf/util/util/srcline.o
 make: Leaving directory `/home/acme/git/linux/tools/perf'
 [acme@sandy linux]$ 
 [acme@sandy linux]$ ls -la /tmp/build/perf/util/util/srcline.o
 ls: cannot access /tmp/build/perf/util/util/srcline.o: No such file or 
 directory
 [acme@sandy linux]$ make V=1 O=/tmp/build/perf -C tools/perf/ 
 /tmp/build/perf/util/util/srcline.o
 make: Entering directory `/home/acme/git/linux/tools/perf'
 BUILD: Doing 'make -j8' parallel build
 make[1]: *** No rule to make target `/tmp/build/perf/util/util/srcline.o'.  
 Stop.
 make: *** [/tmp/build/perf/util/util/srcline.o] Error 2
 make: Leaving directory `/home/acme/git/linux/tools/perf'
 [acme@sandy linux]$ ls -la tools/perf/util/srcline.*
 -rw-rw-r--. 1 acme acme 1777 Oct  9 16:06 tools/perf/util/srcline.c
 [acme@sandy linux]$
 
   What am I doing wrong here while trying to build just one .o file?
 
   Back to checking why it is not using the 'inline' addr2line...
 
 - Arnaldo

There's two things that I can see here.

1)

The printout is a bit off, duplicating util/util. The fix below should 
help with that.

2)

This issue is more difficult: if tools/perf/util/srcline.o exists, then 
the redirection will not happen and make just says:

 comet:~/tip/tools/perf rm -f /tmp/build/perf/util/pager.o
 comet:~/tip/tools/perf make O=/tmp/build/perf/ util/pager.o
 make: `util/pager.o' is up to date.

 comet:~/tip/tools/perf ll /tmp/build/perf/util/pager.o
 ls: cannot access /tmp/build/perf/util/pager.o: No such file or directory
 comet:~/tip/tools/perf ll util/pager.o
 -rw-rw-r-- 1 mingo mingo 297488 Oct 10 07:34 util/pager.o

So the redirection quirks will only work in a clean tree. I think that 
should be fine - people who build via O= generally do it to keep their 
source trees clean.

Thanks,

Ingo

==
From 881641d16f8445d8796c3b437cb33d6467af98b7 Mon Sep 17 00:00:00 2001
From: Ingo Molnar mi...@kernel.org
Date: Thu, 10 Oct 2013 07:36:52 +0200
Subject: [PATCH] tools/perf/bench: Fix redirection printouts

Fix the duplicate util/util printout Arnaldo reported:

   $ make V=1 O=/tmp/build/perf -C tools/perf/ util/srcline.o
   ...
   # Redirected target util/srcline.o = 
/tmp/build/perf/util/util/srcline.o

Reported-by: Arnaldo Carvalho de Melo a...@redhat.com
Cc: Peter Zijlstra a.p.zijls...@chello.nl
Cc: Namhyung Kim namhy...@kernel.org
Cc: David Ahern dsah...@gmail.com
Cc: Jiri Olsa jo...@redhat.com
Signed-off-by: Ingo Molnar mi...@kernel.org
---
 tools/perf/Makefile.perf | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index ee97778..2d55480 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -585,11 +585,11 @@ ifneq ($(OUTPUT),)
 %.o: $(OUTPUT)%.o
@echo # Redirected target $@ = $(OUTPUT)$@
 util/%.o: $(OUTPUT)util/%.o
-   @echo # Redirected target $@ = $(OUTPUT)util/$@
+   @echo # Redirected target $@ = $(OUTPUT)$@
 bench/%.o: $(OUTPUT)bench/%.o
-   @echo # Redirected target $@ = $(OUTPUT)bench/$@
+   @echo # Redirected target $@ = $(OUTPUT)$@
 tests/%.o: $(OUTPUT)tests/%.o
-   @echo # Redirected target $@ = $(OUTPUT)tests/$@
+   @echo # Redirected target $@ = $(OUTPUT)$@
 endif
 
 # These two need to be here so that when O= is not used they take precedence
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/