Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755825AbbLQKPJ (ORCPT ); Thu, 17 Dec 2015 05:15:09 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:9305 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754887AbbLQKPF (ORCPT ); Thu, 17 Dec 2015 05:15:05 -0500 Message-ID: <567289D6.9050209@huawei.com> Date: Thu, 17 Dec 2015 18:09:26 +0800 From: "Wangnan (F)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Daniel Wagner , , , , , , , , , , , CC: , Subject: Re: [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations References: <1450329794-161948-1-git-send-email-wangnan0@huawei.com> <56725868.6080902@bmw-carit.de> <56725B67.2010309@huawei.com> <56725E59.6090507@bmw-carit.de> <56727259.80002@bmw-carit.de> In-Reply-To: <56727259.80002@bmw-carit.de> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.111.66.109] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.567289E7.01CD,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 7ac5d488cc762e07905cfa50388c95ff Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5289 Lines: 131 On 2015/12/17 16:29, Daniel Wagner wrote: > On 12/17/2015 08:03 AM, Daniel Wagner wrote: >> On 12/17/2015 07:51 AM, Wangnan (F) wrote: >>> On 2015/12/17 14:38, Daniel Wagner wrote: >>>> On 12/17/2015 06:23 AM, Wang Nan wrote: >>>>> Since we already have libbpf in tools/lib, we don't need to maintain >>>>> another bpf loader and operations library in samples/bpf. >>>>> >>>>> In patchset: >>>>> >>>>> Patch 1/10 - 7/10 improves libbpf, add missing features to support >>>>> samples, >>>>> >>>>> Patch 8/10 adds utils.[ch], which creates similar API like old >>>>> bpf_load.c and libbpf.c. >>>>> >>>>> Patch 9/10 replace all sampels to use API provides by utils.[ch] and >>>>> libbpf. >>>>> >>>>> Patch 10/10 removes unneeded files. >>>> Which tree did you use for your patches? I tried to apply them against >>>> mainline and net-next which didn't really work out. >>> These patches based on Arnaldo's 'perf/core' because of those libbpf >>> changes. >> Okay, I'll try with this one. > I applied those patches on top of > > 5c560cfcf1c0 ("tools subcmd: Rename subcmd header include guards") > > Patch number 2 didn't apply cleanly. Because I have another patch in my local tree which also modifis bpf Makefile: http://lkml.kernel.org/g/1450316632-152513-1-git-send-email-wangnan0@huawei.com sorry. > After fixing this manually > I was able to continue to the build step: > > $ make samples/bpf/ > CHK include/config/kernel.release > CHK include/generated/uapi/linux/version.h > CHK include/generated/utsrelease.h > CHK include/generated/bounds.h > CHK include/generated/timeconst.h > CHK include/generated/asm-offsets.h > CALL scripts/checksyscalls.sh > make -C /home/wagi/src/linux/tools/lib/bpf O=/home/wagi/src/linux/samples/bpf/libbpf CFLAGS= LDFLAGS= V=1 /home/wagi/src/linux/samples/bpf/libbpf/libbpf.a > No libelf found > Makefile:203: recipe for target 'elfdep' failed > make[2]: *** [elfdep] Error 255 > samples/bpf/Makefile:10: recipe for target 'samples/bpf/libbpf/libbpf.a' failed > make[1]: *** [samples/bpf/libbpf/libbpf.a] Error 2 > Makefile:1550: recipe for target 'samples/bpf/' failed > make: *** [samples/bpf/] Error 2 When you see this, could you please have a look at: /home/wagi/src/linux/samples/bpf/libbpf/feature/test-*.make.output ? This error means it can't find libelf on your platform, but it is not true obviously. > > Executing the above command line by myself in order > to figure out what's going on ended in this mess: > > > $ make -C /home/wagi/src/linux/tools/lib/bpf O=/home/wagi/src/linux/samples/bpf/libbpf CFLAGS= LDFLAGS= V=1 /home/wagi/src/linux/samples/bpf/libbpf/libbpf.a > make: Entering directory '/home/wagi/src/linux/tools/lib/bpf' > > Auto-detecting system features: > ... libelf: [ on ] > ... bpf: [ on ] > > [...] > > samples/bpf/fds_example.c: In function ‘bpf_do_map’: > samples/bpf/fds_example.c:78:9: warning: implicit declaration of function ‘bpf_pin_object’ [-Wimplicit-function-declaration] > ret = bpf_pin_object(fd, file); > ^ > samples/bpf/fds_example.c:82:8: warning: implicit declaration of function ‘bpf_get_pinned_object’ [-Wimplicit-function-declaration] > fd = bpf_get_pinned_object(file); > ^ > gcc -Lsamples/bpf/libbpf -o samples/bpf/fds_example samples/bpf/utils.o samples/bpf/fds_example.o -lelf -lbpf > samples/bpf/fds_example.o: In function `main': > fds_example.c:(.text.startup+0x20e): undefined reference to `bpf_pin_object' > fds_example.c:(.text.startup+0x2b0): undefined reference to `bpf_pin_object' > fds_example.c:(.text.startup+0x2f3): undefined reference to `bpf_get_pinned_object' > fds_example.c:(.text.startup+0x344): undefined reference to `bpf_get_pinned_object' > collect2: error: ld returned 1 exit status > scripts/Makefile.host:100: recipe for target 'samples/bpf/fds_example' failed > make[1]: *** [samples/bpf/fds_example] Error 1 > Makefile:1550: recipe for target 'samples/bpf/' failed > make: *** [samples/bpf/] Error 2 > [wagi@handman linux (bpf-test)]$ make samples/bpf/ > CHK include/config/kernel.release > CHK include/generated/uapi/linux/version.h > CHK include/generated/utsrelease.h > CHK include/generated/bounds.h > CHK include/generated/timeconst.h > CHK include/generated/asm-offsets.h > CALL scripts/checksyscalls.sh > HOSTLD samples/bpf/fds_example > samples/bpf/fds_example.o: In function `main': > fds_example.c:(.text.startup+0x20e): undefined reference to `bpf_pin_object' > fds_example.c:(.text.startup+0x2b0): undefined reference to `bpf_pin_object' > fds_example.c:(.text.startup+0x2f3): undefined reference to `bpf_get_pinned_object' > fds_example.c:(.text.startup+0x344): undefined reference to `bpf_get_pinned_object' > collect2: error: ld returned 1 exit status > Could you please check whether this patch: bpf tools: Support BPF_OBJ_PIN and BPF_OBJ_GET is applied properly? Thank you. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/