Sudip Mukherjee <sudipm.mukher...@gmail.com> writes:

> I have now uploaded libbpf/0.7.0 to experimental, can you please try
> building bpfcc and let me know if it works for you.
>

I'm ending up getting different error now related to deprecation.

>/<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:178:33: error: invalid application of 
>‘sizeof’ to incomplete type 
>‘btf_ext_vendored::btf_ext_setup_core_relos(btf_ext_vendored::btf_ext*)::bpf_core_relo’
>   178 |                 .min_rec_size = sizeof(struct bpf_core_relo),
>       |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc: In member function ‘int 
> ebpf::BTF::get_map_tids(std::string, unsigned int, unsigned int, unsigned 
> int*, unsigned int*)’:
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:655:30: warning: ‘int 
> btf__get_map_kv_tids(const btf*, const char*, __u32, __u32, __u32*, __u32*)’ 
> is deprecated: libbpf v0.7+: this API is not necessary when BTF-defined maps 
> are used [-Wdeprecated-declarations]
>   655 |   return btf__get_map_kv_tids(btf_, map_name.c_str(),
>       |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   656 |                               expected_ksize, expected_vsize,
>       |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   657 |                               key_tid, value_tid);
>       |                               ~~~~~~~~~~~~~~~~~~~
> In file included from /<<PKGBUILDDIR>>/src/cc/bcc_libbpf_inc.h:5,
>                  from /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:22:
> /usr/include/bpf/btf.h:154:16: note: declared here
>   154 | LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char 
> *map_name,
>       |                ^~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc: In function ‘int 
> btf_ext_vendored::btf_ext_setup_core_relos(btf_ext_vendored::btf_ext*)’:
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:178:33: error: invalid application of 
> ‘sizeof’ to incomplete type 
> ‘btf_ext_vendored::btf_ext_setup_core_relos(btf_ext_vendored::btf_ext*)::bpf_core_relo’
>   178 |                 .min_rec_size = sizeof(struct bpf_core_relo),
>       |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc: In member function ‘int 
> ebpf::BTF::get_map_tids(std::string, unsigned int, unsigned int, unsigned 
> int*, unsigned int*)’:
> /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:655:30: warning: ‘int 
> btf__get_map_kv_tids(const btf*, const char*, __u32, __u32, __u32*, __u32*)’ 
> is deprecated: libbpf v0.7+: this API is not necessary when BTF-defined maps 
> are used [-Wdeprecated-declarations]
>   655 |   return btf__get_map_kv_tids(btf_, map_name.c_str(),
>       |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   656 |                               expected_ksize, expected_vsize,
>       |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   657 |                               key_tid, value_tid);
>       |                               ~~~~~~~~~~~~~~~~~~~
> In file included from /<<PKGBUILDDIR>>/src/cc/bcc_libbpf_inc.h:5,
>                  from /<<PKGBUILDDIR>>/src/cc/bcc_btf.cc:22:
> /usr/include/bpf/btf.h:154:16: note: declared here
>   154 | LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char 
> *map_name,
>       |                ^~~~~~~~~~~~~~~~~~~~
> make[3]: *** [src/cc/CMakeFiles/bcc-shared.dir/build.make:121: 
> src/cc/CMakeFiles/bcc-shared.dir/bcc_btf.cc.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> [ 69%] Building CXX object 
> src/cc/CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o
> cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc && /usr/bin/c++ -DEXPORT_USDT 
> -DHAVE_EXTERNAL_LIBBPF -I/usr/lib/llvm-13/include/../tools/clang/include 
> -I/<<PKGBUILDDIR>>/src -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src 
> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc -I/<<PKGBUILDDIR>>/src/cc 
> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc/frontends/b 
> -I/<<PKGBUILDDIR>>/src/cc/frontends/b 
> -I/<<PKGBUILDDIR>>/src/cc/frontends/clang -I/usr/lib/llvm-13/include -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DCUSTOM_MACRO=true 
> -Wall  -fno-rtti -fPIC -DBCC_PROG_TAG_DIR='"/var/tmp/bcc"' -Wno-unused-result 
> -DLLVM_MAJOR_VERSION=13 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS 
> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -std=gnu++14 -MD -MT 
> src/cc/CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o -MF 
> CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o.d -o 
> CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o -c 
> /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc
> [ 69%] Building CXX object 
> src/cc/CMakeFiles/bcc-shared.dir/exported_files.cc.o
> cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc && /usr/bin/c++ -DEXPORT_USDT 
> -DHAVE_EXTERNAL_LIBBPF -Dbcc_shared_EXPORTS 
> -I/usr/lib/llvm-13/include/../tools/clang/include -I/<<PKGBUILDDIR>>/src 
> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src 
> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc -I/<<PKGBUILDDIR>>/src/cc 
> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cc/frontends/b 
> -I/<<PKGBUILDDIR>>/src/cc/frontends/b 
> -I/<<PKGBUILDDIR>>/src/cc/frontends/clang -I/usr/lib/llvm-13/include -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DCUSTOM_MACRO=true 
> -Wall  -fno-rtti -fPIC -DBCC_PROG_TAG_DIR='"/var/tmp/bcc"' -Wno-unused-result 
> -DLLVM_MAJOR_VERSION=13 -fPIC -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS 
> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -std=gnu++14 -MD -MT 
> src/cc/CMakeFiles/bcc-shared.dir/exported_files.cc.o -MF 
> CMakeFiles/bcc-shared.dir/exported_files.cc.o.d -o 
> CMakeFiles/bcc-shared.dir/exported_files.cc.o -c 
> /<<PKGBUILDDIR>>/src/cc/exported_files.cc
> make[3]: *** [src/cc/CMakeFiles/bcc-static.dir/build.make:107: 
> src/cc/CMakeFiles/bcc-static.dir/bcc_btf.cc.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc: In function ‘llvm::LoadInst* 
> ebpf::createLoad(llvm::IRBuilder<>&, llvm::Value*, bool)’:
> /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc:55:22: warning: 
> ‘llvm::LoadInst* llvm::IRBuilderBase::CreateLoad(llvm::Value*, bool, const 
> llvm::Twine&)’ is deprecated: Use the version that explicitly specifies the 
> loaded type instead [-Wdeprecated-declarations]
>    55 |   return B.CreateLoad(addr, isVolatile);
>       |          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
> In file included from 
> /usr/lib/llvm-13/include/llvm/Support/ErrorHandling.h:17,
>                  from /usr/lib/llvm-13/include/llvm/ADT/Hashing.h:48,
>                  from /usr/lib/llvm-13/include/llvm/ADT/ArrayRef.h:12,
>                  from 
> /usr/lib/llvm-13/include/llvm/ExecutionEngine/ExecutionEngine.h:18,
>                  from 
> /usr/lib/llvm-13/include/llvm/ExecutionEngine/MCJIT.h:17,
>                  from /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc:20:
> /usr/lib/llvm-13/include/llvm/IR/IRBuilder.h:1686:39: note: declared here
>  1686 |   LLVM_ATTRIBUTE_DEPRECATED(LoadInst *CreateLoad(Value *Ptr,
>       |                                       ^~~~~~~~~~
> /usr/lib/llvm-13/include/llvm/Support/Compiler.h:320:74: note: in definition 
> of macro ‘LLVM_ATTRIBUTE_DEPRECATED’
>   320 | #define LLVM_ATTRIBUTE_DEPRECATED(decl, message) 
> [[deprecated(message)]] decl
>       |                                                                       
>    ^~~~
> /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc: In function ‘llvm::Value* 
> ebpf::createInBoundsGEP(llvm::IRBuilder<>&, llvm::Value*, 
> llvm::ArrayRef<llvm::Value*>)’:
> /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc:65:29: warning: ‘llvm::Value* 
> llvm::IRBuilderBase::CreateInBoundsGEP(llvm::Value*, 
> llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)’ is deprecated: Use the 
> version with explicit element type instead [-Wdeprecated-declarations]
>    65 |   return B.CreateInBoundsGEP(ptr, idxlist);
>       |          ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
> In file included from 
> /usr/lib/llvm-13/include/llvm/Support/ErrorHandling.h:17,
>                  from /usr/lib/llvm-13/include/llvm/ADT/Hashing.h:48,
>                  from /usr/lib/llvm-13/include/llvm/ADT/ArrayRef.h:12,
>                  from 
> /usr/lib/llvm-13/include/llvm/ExecutionEngine/ExecutionEngine.h:18,
>                  from 
> /usr/lib/llvm-13/include/llvm/ExecutionEngine/MCJIT.h:17,
>                  from /<<PKGBUILDDIR>>/src/cc/bpf_module_rw_engine.cc:20:
> /usr/lib/llvm-13/include/llvm/IR/IRBuilder.h:1810:14: note: declared here
>  1810 |       Value *CreateInBoundsGEP(Value *Ptr, ArrayRef<Value *> IdxList,
>       |              ^~~~~~~~~~~~~~~~~
> /usr/lib/llvm-13/include/llvm/Support/Compiler.h:320:74: note: in definition 
> of macro ‘LLVM_ATTRIBUTE_DEPRECATED’
>   320 | #define LLVM_ATTRIBUTE_DEPRECATED(decl, message) 
> [[deprecated(message)]] decl

I don't really have time to debug this I was hoping upstream to fix
this. As they embed libbpf and we removed the embedded file. I will just
wait for some more time till they include libbpf with their release.

Previous release also did not work with libbpf 0.6.0 even though
embedded version included 0.6.0 in it. Again I did not get enough time
to debug.

Cheers,
Vasudev

Reply via email to