Messages in this thread | | | Date | Wed, 9 Oct 2013 16:51:57 +0200 | From | Ingo Molnar <> | Subject | Re: [GIT PULL] tools/perf/build: Speed up the perf build system |
| |
* Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote:
> Em Wed, Oct 09, 2013 at 09:01:49AM +0200, Ingo Molnar escreveu: > > Arnaldo, > > > > Please pull the tools/perf/build git tree from: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tmp.tools/perf/build > > > > # HEAD: 165108a92fc554d51e73b143b69b77e7c278da78 tools/perf/build: Clean up feature_print_code() > > > > This tree contains the build system speedup series described at: > > > > https://lkml.org/lkml/2013/10/7/199 > > > > Reviewed by David Ahern and Jiri Olsa (thanks guys!). > > One problem I just noticed, and that is not preventing me from merging > this now, as it has a (obvious) workaround: > > If I try using O= I better make sure the directory it points to exists: > > [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o > ls: cannot access tools/perf/*.o: No such file or directory > ls: cannot access tools/perf/util/*.o: No such file or directory > [acme@sandy linux]$ mkdir -p /tmp/build/perf/ > [acme@sandy linux]$ time make O=/tmp/build/perf -C tools/perf/ install-bin > make: Entering directory `/home/acme/git/linux/tools/perf' > BUILD: Doing 'make -j8' parallel build > > Auto-detecting system features: > ... backtrace: [ on ] > ... dwarf: [ on ] > <SNIP> > make: Leaving directory `/home/acme/git/linux/tools/perf' > > real 0m2.751s > user 0m4.270s > sys 0m1.240s > [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o > ls: cannot access tools/perf/*.o: No such file or directory > ls: cannot access tools/perf/util/*.o: No such file or directory > [acme@sandy linux]$ ls -la /tmp/build/perf/perf > -rwxrwxr-x. 1 acme acme 9791281 Oct 9 11:32 /tmp/build/perf/perf > [acme@sandy linux]$ > > --------------------------------------------------------------------------------- > > Works as expected, but if I do: > > [acme@sandy linux]$ rm -rf /tmp/build > [acme@sandy linux]$ time make O=/tmp/build/perf -C tools/perf/ install-bin > make: Entering directory `/home/acme/git/linux/tools/perf' > BUILD: Doing 'make -j8' parallel build > > Auto-detecting system features: > ... backtrace: [ on ] > <SNIP> > make: Leaving directory `/home/acme/git/linux/tools/perf' > > real 0m2.715s > user 0m4.118s > sys 0m1.204s > [acme@sandy linux]$ ls -la tools/perf/*.o tools/perf/util/*.o | wc -l > 94 > [acme@sandy linux]$ ls -la /tmp/build > ls: cannot access /tmp/build: No such file or directory > [acme@sandy linux]$ > > --------------------------------------------------------------------------------- > > It silently ignores the O= target, as it doesn't exists. > > Previous, expected behaviour is for the build process to stop, > complaining that the target directory doesn't exists.
Yeah. So the reproducer for me is:
rm -rf /tmp/build mkdir -p /tmp/build/perf make O=/tmp/build/perf -C tools/perf/ install-bin rm -rf /tmp/build make O=/tmp/build/perf -C tools/perf/ install-bin
the second install-bin should fail, and on the old tree it fails correctly - but with the new tree it pretends that it succeeds.
Looking into it.
Thanks,
Ingo
| |