lkml.org 
[lkml]   [2010]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/urgent] perf tools: Fix build error on read only source.
    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"')

    \
     
     \ /
      Last update: 2010-08-19 13:25    [W:0.032 / U:0.704 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site