On 2015/6/30 22:34, Arnaldo Carvalho de Melo wrote:
Em Tue, Jun 30, 2015 at 10:29:08AM +0800, Wangnan (F) escreveu:
On 2015/6/30 3:41, Arnaldo Carvalho de Melo wrote:
So, what should I do now? I want to have that OFF line turned to "on",
so that I can test this stuff.
But the changelog says nothing about it, lemme check the cover letter,
but having to do that is annoying, one expects to have instructions
related to some specific changeset in its comments...
So, when such build tests fail, we can see why by looking for a file
with a special name in the O= output dir:
[acme@felicio linux]$ cat /tmp/build/perf/feature/test-bpf.make.output
test-bpf.c:1:23: fatal error: linux/bpf.h: No such file or directory
  #include <linux/bpf.h>
                        ^
compilation terminated.
[acme@felicio linux]$
This patch tries to check the version of bpf.h, because old bpf.h doesn't
define 'kern_version' field for 'union bpf_attr'.
Ok, I realise it needs to find some bpf.h file, but where should it look
for it? What needs to be installed so that this feature test succeeds?
I think the problem you meet is caused by missing of kernel headers in your
host system environment. After patch 'perf tools: Make perf depend on
libbpf'
What is precise path to this bpf.h file? What was the cset that
introduced it and in what upstream branch is it?

The exact bpf.h patch 2/50 trying to find should be /usr/include/linux/bpf.h, which
can be found from /tmp/build/perf/feature/test-bpf.d:

/tmp/build/perf/feature/test-bpf.bin: test-bpf.c \
 /usr/include/stdc-predef.h \
 /usr/include/bits/predefs.h \
 /usr/include/linux/bpf.h \
 /usr/include/linux/types.h \
 ....

After applying 3/50, due to the setting of FEATURE_CHECK_CFLAGS-bpf, it
becomes /path/to/kernel/include/uapi/linux/bpf.h, so it won't fail again:

/tmp/build/bpf/feature/test-bpf.bin: test-bpf.c \
 /usr/include/stdc-predef.h \
 /usr/include/bits/predefs.h \
 /path/to/kernel/include/uapi/linux/bpf.h \
 /path/to/kernel/tools/include/linux/types.h \
 ...

this checking should always success because it adds required headers
into MANIFEST and setup FEATURE_CHECK_CFLAGS-bpf.

Also, after applying 3/50 you should see this:
IIRC I tried yesterday, will try again later and let you know, but
when introducing a feature test, please state what is required to be
installed in a system so that it can succeed, where to obtain it, etc.

It is possible to figure this out, but sometimes doing that takes time
that would be beter invested in processing further patches...

- Arnaldo
# make O=/tmp/build/bpf/ -C tools/lib/bpf/
Auto-detecting system features:
...                        libelf: [ on  ]
...             libelf-getphdrnum: [ on  ]
...                   libelf-mmap: [ on  ]
...                           bpf: [ on  ]

make: Entering directory `/home/wn/kernel-hydrogen/tools/lib/bpf'
   CC       /tmp/build/bpf/libbpf.o
   LD       /tmp/build/bpf/libbpf-in.o
   LINK     /tmp/build/bpf/libbpf.a
   LINK     /tmp/build/bpf/libbpf.so
make: Leaving directory `/home/wn/kernel/tools/lib/bpf'

Even if in perf checking bpf should fail in your machine now, checking bpf
feature in
libbpf should success because when build libbpf I have added following
setting to
tools/lib/bpf/Makefile:

   INCLUDES = -I. -I$(srctree)/tools/include
-I$(srctree)/arch/$(ARCH)/include/uapi -I$(srctree)/include/uapi
   FEATURE_CHECK_CFLAGS-bpf = $(INCLUDES)

Do you want me to squash 2/30 and 3/50 together and append 'bpf' checker
into FEATURE_TESTS in
tools/build/Makefile.feature in 23/50? Then there should be less confusion:
when compiling perf
before 23/50, bpf feature will never be checked then.

Thank you.

Right, one of the few things that could explain the failure, but:

[acme@felicio linux]$ find . -name bpf.h
./include/linux/bpf.h
./include/uapi/linux/bpf.h
[acme@felicio linux]$

So lemme try doing it in place:

[acme@felicio linux]$ make -C tools/perf/
make: Entering directory `/home/acme/git/linux/tools/perf'
   BUILD:   Doing 'make -j4' parallel build

Auto-detecting system features:
...                         dwarf: [ on  ]
...                         glibc: [ on  ]
...                          gtk2: [ on  ]
...                      libaudit: [ on  ]
...                        libbfd: [ on  ]
...                        libelf: [ on  ]
...                       libnuma: [ on  ]
...                       libperl: [ on  ]
...                     libpython: [ on  ]
...                      libslang: [ on  ]
...                     libunwind: [ on  ]
...            libdw-dwarf-unwind: [ on  ]
...                          zlib: [ on  ]
...                          lzma: [ on  ]
...                           bpf: [ OFF ]


Doesn't work as well :-\

Looking at the following patches...

- Arnaldo


--
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/

Reply via email to