On 04/22/2018 09:51 AM, Wang Sheng-Hui wrote:
> Sorry to trouble you !
>
> I run debian and installed binutils-dev beforehand.
> Then I copied tools/build/feature/test-libbfd.c to t.c and run:
> ------------------------------------------------------------------------
> root@lazyfintech:~# cat t.c
> #include <bfd.h>
>
> extern int printf(const char *format, ...);
>
> int main(void)
> {
> char symbol[4096] = "FieldName__9ClassNameFd";
> char *tmp;
>
> tmp = bfd_demangle(0, symbol, 0);
>
> printf("demangled symbol: {%s}\n", tmp);
>
> return 0;
> }
> root@lazyfintech:~# gcc t.c -lbfd
Can you run with 'gcc t.c -lbfd -lz -liberty -ldl' since this is
what the Makefile for the feature test is doing:
$(OUTPUT)test-libbfd.bin:
$(BUILD) -DPACKAGE='"perf"' -lbfd -lz -liberty -ldl
Seems most likely that you're missing some of the remaining libs
to have the feature test properly detect it?
> root@lazyfintech:~# ./a.out
> demangled symbol: {ClassName::FieldName}
>
>
> I thought libbfd can be reached from above.
> But when I built tools/bpf, libbfd cannot be detected:
> -------------------------------------------------------------------------
> /linux# make O=../buildkernel/ tools/bpf
> make[1]: Entering directory '/root/buildkernel'
> DESCEND bpf
>
> Auto-detecting system features:
> ... libbfd: [ OFF ]
> ... disassembler-four-args: [ on ]
>
> DESCEND bpftool
>
> Auto-detecting system features:
> ... libbfd: [ OFF ]
> ... disassembler-four-args: [ on ]
>
> make[1]: Leaving directory '/root/buildkernel'
>
>
> I wonder how should I do to get libbfd auto detected when building bpf tool?
>
> Regards,
> shenghui