Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

From: Wangnan (F)
Date: Thu Jan 07 2016 - 20:57:30 EST




On 2016/1/8 5:23, Arnaldo Carvalho de Melo wrote:
Em Thu, Jan 07, 2016 at 05:39:57PM -0300, Arnaldo Carvalho de Melo escreveu:
Em Thu, Jan 07, 2016 at 12:28:15PM +0530, Naveen N. Rao escreveu:
Can you please push at least the initial 3 patches of this for v4.4?
Wang Nan has posted v6 here:
http://thread.gmane.org/gmane.linux.kernel/2110626
So I tried it again today, from the v6, the latest patch with that
subject line in my inbox, and I get this, after applying the first three
patches:
[acme@zoo linux]$ make -C tools clean > /dev/null
[acme@zoo linux]$ make -C tools/perf build-test
make: Entering directory '/home/git/linux/tools/perf'
Testing Makefile
tests/make:15: /scripts/Makefile.arch: No such file or directory
make[2]: *** No rule to make target '/scripts/Makefile.arch'. Stop.
tests/make:5: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:81: recipe for target 'build-test' failed
make: *** [build-test] Error 2
make: Leaving directory '/home/git/linux/tools/perf'
[acme@zoo linux]$
Trying to figure this out...
So, this doesn't seem to have been tessted, this part, specifically:

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index 8ea3dffc5065..cd9c3ce1a5c2 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -12,7 +12,7 @@ endif
else
PERF := .
-include config/Makefile.arch
+include $(srctree)/scripts/Makefile.arch
# FIXME looks like x86 is the only arch running tests ;-)
# we need some IS_(32/64) flag to make this generic


----------------------------------------------------

Because $(srctree) is not set at that point, I copied the needed bits from
tools/perf/Makefile.perf and got the patch below, which makes:L

make -C tools/perf build-test

Work for me again.

This should wrap up the day nicely, making me think of Jens Axboe recent
cool reaction to an untested patch:

http://lkml.kernel.org/r/5661C2BC.9030007@xxxxxxxxx

:-)


Sorry. I though I have tested my patch by building perf, but didn't
realize perf/tests/make is not used in normal building. Doing build-test
takes too long, so I always forget it. Also, in my environment it can fail:

LD /opt/wangnan/yocto_build/tmp-eglibc/work/generic_x86_64-oe-linux/perf/1.0-r8/perf-1.0/perf-in.o
LINK /opt/wangnan/yocto_build/tmp-eglibc/work/generic_x86_64-oe-linux/perf/1.0-r8/perf-1.0/perf
test: test -x ./perf
make[2]: *** [make_no_newt] Error 1
make[1]: *** [all] Error 2
make: *** [build-test] Error 2

since I'm in a yocto building environment. I'll look into this problem and give a patch on it.

Thank you.