public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Fix build error on read only source.
@ 2010-08-16 12:40 Kusanagi Kouichi
  2010-08-16 15:24 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Kusanagi Kouichi @ 2010-08-16 12:40 UTC (permalink / raw)
  To: Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Arnaldo Carvalho de Melo
  Cc: linux-kernel

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
---
 tools/perf/Makefile          |    8 ++++----
 tools/perf/feature-tests.mak |    6 ++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 41abb90..31b528f 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -935,15 +935,15 @@ $(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
 	$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
 
 $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-	$(QUIET_GEN)$(RM) $@ $@+ && \
+	$(QUIET_GEN)$(RM) $(OUTPUT)$@ $(OUTPUT)$@+ && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
 	    -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
 	    -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
 	    -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-	    $@.sh >$@+ && \
-	chmod +x $@+ && \
-	mv $@+ $(OUTPUT)$@
+	    $@.sh > $(OUTPUT)$@+ && \
+	chmod +x $(OUTPUT)$@+ && \
+	mv $(OUTPUT)$@+ $(OUTPUT)$@
 
 configure: configure.ac
 	$(QUIET_GEN)$(RM) $@ $<+ && \
diff --git a/tools/perf/feature-tests.mak b/tools/perf/feature-tests.mak
index ddb68e6..cd75798 100644
--- a/tools/perf/feature-tests.mak
+++ b/tools/perf/feature-tests.mak
@@ -113,7 +113,5 @@ endef
 # try-cc
 # Usage: option = $(call try-cc, source-to-build, cc-options)
 try-cc = $(shell sh -c						  \
-	'TMP="$(TMPOUT).$$$$";			 		  \
-	 echo "$(1)" |						  \
-	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
-	 rm -f "$$TMP"')
+	'echo "$(1)" |						  \
+	 $(CC) -x c - $(2) -o /dev/null > /dev/null 2>&1 && echo y')
-- 
1.7.1


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

* Re: [PATCH] perf tools: Fix build error on read only source.
  2010-08-16 12:40 [PATCH] perf tools: Fix build error on read only source Kusanagi Kouichi
@ 2010-08-16 15:24 ` Arnaldo Carvalho de Melo
  2010-08-17 12:57   ` Kusanagi Kouichi
  2010-08-17 14:08   ` Kusanagi Kouichi
  0 siblings, 2 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2010-08-16 15:24 UTC (permalink / raw)
  To: Kusanagi Kouichi
  Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, linux-kernel

Em Mon, Aug 16, 2010 at 09:40:13PM +0900, Kusanagi Kouichi escreveu:
... 
> diff --git a/tools/perf/feature-tests.mak b/tools/perf/feature-tests.mak
> @@ -113,7 +113,5 @@ endef
>  # try-cc
>  # Usage: option = $(call try-cc, source-to-build, cc-options)
>  try-cc = $(shell sh -c						  \
> -	'TMP="$(TMPOUT).$$$$";			 		  \
> -	 echo "$(1)" |						  \
> -	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
> -	 rm -f "$$TMP"')
> +	'echo "$(1)" |						  \
> +	 $(CC) -x c - $(2) -o /dev/null > /dev/null 2>&1 && echo y')

Please read:

 f9af3a4c1f59753bdd5a49e3a34263005f96972e
 8b2c551f9635bf1c5c2d38de300137998915478f
 1703f2c321a8a531c393e137a82602e16c6061cb

To see why we can't use '-o /dev/null' like that.

- Arnaldo

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

* Re: [PATCH] perf tools: Fix build error on read only source.
  2010-08-16 15:24 ` Arnaldo Carvalho de Melo
@ 2010-08-17 12:57   ` Kusanagi Kouichi
  2010-08-17 14:08   ` Kusanagi Kouichi
  1 sibling, 0 replies; 6+ messages in thread
From: Kusanagi Kouichi @ 2010-08-17 12:57 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, linux-kernel

On 2010-08-16 12:24:10 -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, Aug 16, 2010 at 09:40:13PM +0900, Kusanagi Kouichi escreveu:
> ... 
> > diff --git a/tools/perf/feature-tests.mak b/tools/perf/feature-tests.mak
> > @@ -113,7 +113,5 @@ endef
> >  # try-cc
> >  # Usage: option = $(call try-cc, source-to-build, cc-options)
> >  try-cc = $(shell sh -c						  \
> > -	'TMP="$(TMPOUT).$$$$";			 		  \
> > -	 echo "$(1)" |						  \
> > -	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
> > -	 rm -f "$$TMP"')
> > +	'echo "$(1)" |						  \
> > +	 $(CC) -x c - $(2) -o /dev/null > /dev/null 2>&1 && echo y')
> 
> Please read:
> 
>  f9af3a4c1f59753bdd5a49e3a34263005f96972e
>  8b2c551f9635bf1c5c2d38de300137998915478f
>  1703f2c321a8a531c393e137a82602e16c6061cb
> 
> To see why we can't use '-o /dev/null' like that.
> 
> - Arnaldo

I see. I will try another way.

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

* [PATCH] perf tools: Fix build error on read only source.
  2010-08-16 15:24 ` Arnaldo Carvalho de Melo
  2010-08-17 12:57   ` Kusanagi Kouichi
@ 2010-08-17 14:08   ` Kusanagi Kouichi
  2010-08-17 14:17     ` Arnaldo Carvalho de Melo
  2010-08-19 11:22     ` [tip:perf/urgent] " tip-bot for Kusanagi Kouichi
  1 sibling, 2 replies; 6+ messages in thread
From: Kusanagi Kouichi @ 2010-08-17 14:08 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, linux-kernel

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
---
 tools/perf/Makefile          |    8 ++++----
 tools/perf/feature-tests.mak |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 41abb90..31b528f 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -935,15 +935,15 @@ $(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
 	$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
 
 $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-	$(QUIET_GEN)$(RM) $@ $@+ && \
+	$(QUIET_GEN)$(RM) $(OUTPUT)$@ $(OUTPUT)$@+ && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
 	    -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
 	    -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
 	    -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-	    $@.sh >$@+ && \
-	chmod +x $@+ && \
-	mv $@+ $(OUTPUT)$@
+	    $@.sh > $(OUTPUT)$@+ && \
+	chmod +x $(OUTPUT)$@+ && \
+	mv $(OUTPUT)$@+ $(OUTPUT)$@
 
 configure: configure.ac
 	$(QUIET_GEN)$(RM) $@ $<+ && \
diff --git a/tools/perf/feature-tests.mak b/tools/perf/feature-tests.mak
index ddb68e6..7a7b608 100644
--- a/tools/perf/feature-tests.mak
+++ b/tools/perf/feature-tests.mak
@@ -113,7 +113,7 @@ endef
 # try-cc
 # Usage: option = $(call try-cc, source-to-build, cc-options)
 try-cc = $(shell sh -c						  \
-	'TMP="$(TMPOUT).$$$$";			 		  \
+	'TMP="$(OUTPUT)$(TMPOUT).$$$$";				  \
 	 echo "$(1)" |						  \
 	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
 	 rm -f "$$TMP"')
-- 
1.7.1


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

* Re: [PATCH] perf tools: Fix build error on read only source.
  2010-08-17 14:08   ` Kusanagi Kouichi
@ 2010-08-17 14:17     ` Arnaldo Carvalho de Melo
  2010-08-19 11:22     ` [tip:perf/urgent] " tip-bot for Kusanagi Kouichi
  1 sibling, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2010-08-17 14:17 UTC (permalink / raw)
  To: Kusanagi Kouichi
  Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, linux-kernel

Em Tue, Aug 17, 2010 at 11:08:40PM +0900, Kusanagi Kouichi escreveu:
> --- a/tools/perf/feature-tests.mak
> +++ b/tools/perf/feature-tests.mak
> @@ -113,7 +113,7 @@ endef
>  # try-cc
>  # Usage: option = $(call try-cc, source-to-build, cc-options)
>  try-cc = $(shell sh -c						  \
> -	'TMP="$(TMPOUT).$$$$";			 		  \
> +	'TMP="$(OUTPUT)$(TMPOUT).$$$$";				  \
>  	 echo "$(1)" |						  \
>  	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
>  	 rm -f "$$TMP"')

Much better! Will test and merge, thanks!

- Arnaldo

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

* [tip:perf/urgent] perf tools: Fix build error on read only source.
  2010-08-17 14:08   ` Kusanagi Kouichi
  2010-08-17 14:17     ` Arnaldo Carvalho de Melo
@ 2010-08-19 11:22     ` tip-bot for Kusanagi Kouichi
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Kusanagi Kouichi @ 2010-08-19 11:22 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra, slash, tglx,
	mingo

Commit-ID:  ecafda60e88031bcc4271c446f984ee883d69ea8
Gitweb:     http://git.kernel.org/tip/ecafda60e88031bcc4271c446f984ee883d69ea8
Author:     Kusanagi Kouichi <slash@ac.auone-net.jp>
AuthorDate: Wed, 18 Aug 2010 13:32:37 -0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 18 Aug 2010 13:32:37 -0300

perf tools: Fix build error on read only source.

Parts of the build process were generating files outside the specified
O= directory, causing the build to fail on systems where the sources are
in a read only file system.

Fix it by using $(OUTPUT) on these locations.

Also check that $(OUTPUT) actually exists, just like the top level
kernel Makefile does. Otherwise the failure message emitted is
completely misleading.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <20100817140841.0859362C03A@msa106.auone-net.jp>
Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Makefile          |   14 ++++++++++----
 tools/perf/feature-tests.mak |    2 +-
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index dcb9700..4f1fa77 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -5,6 +5,12 @@ endif
 # The default target of this Makefile is...
 all::
 
+ifneq ($(OUTPUT),)
+# check that the output directory actually exists
+OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
+$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
+endif
+
 # Define V=1 to have a more verbose compile.
 # Define V=2 to have an even more verbose compile.
 #
@@ -931,15 +937,15 @@ $(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
 	$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
 
 $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-	$(QUIET_GEN)$(RM) $@ $@+ && \
+	$(QUIET_GEN)$(RM) $(OUTPUT)$@ $(OUTPUT)$@+ && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
 	    -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
 	    -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
 	    -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-	    $@.sh >$@+ && \
-	chmod +x $@+ && \
-	mv $@+ $(OUTPUT)$@
+	    $@.sh > $(OUTPUT)$@+ && \
+	chmod +x $(OUTPUT)$@+ && \
+	mv $(OUTPUT)$@+ $(OUTPUT)$@
 
 configure: configure.ac
 	$(QUIET_GEN)$(RM) $@ $<+ && \
diff --git a/tools/perf/feature-tests.mak b/tools/perf/feature-tests.mak
index ddb68e6..7a7b608 100644
--- a/tools/perf/feature-tests.mak
+++ b/tools/perf/feature-tests.mak
@@ -113,7 +113,7 @@ endef
 # try-cc
 # Usage: option = $(call try-cc, source-to-build, cc-options)
 try-cc = $(shell sh -c						  \
-	'TMP="$(TMPOUT).$$$$";			 		  \
+	'TMP="$(OUTPUT)$(TMPOUT).$$$$";				  \
 	 echo "$(1)" |						  \
 	 $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
 	 rm -f "$$TMP"')

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

end of thread, other threads:[~2010-08-19 11:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-16 12:40 [PATCH] perf tools: Fix build error on read only source Kusanagi Kouichi
2010-08-16 15:24 ` Arnaldo Carvalho de Melo
2010-08-17 12:57   ` Kusanagi Kouichi
2010-08-17 14:08   ` Kusanagi Kouichi
2010-08-17 14:17     ` Arnaldo Carvalho de Melo
2010-08-19 11:22     ` [tip:perf/urgent] " tip-bot for Kusanagi Kouichi

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