dwarves.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Luca Boccassi <bluca@debian.org>
Cc: dwarves@vger.kernel.org,
	Andrii Nakryiko <andrii.nakryiko@gmail.com>,
	Jiri Olsa <jolsa@kernel.org>, Michael Petlan <mpetlan@redhat.com>
Subject: Re: [PATCH dwarves v3] libbpf: allow to use packaged version
Date: Wed, 9 Jun 2021 13:38:04 -0300	[thread overview]
Message-ID: <YMDubLyVLnVw//+g@kernel.org> (raw)
In-Reply-To: <YMDrhaRvsmuBRTL9@kernel.org>

Em Wed, Jun 09, 2021 at 01:25:41PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Jan 04, 2021 at 10:16:22PM +0000, Luca Boccassi escreveu:
> > Add a new CMake option, LIBBPF_EMBEDDED, to switch between the
> > embedded version and the system version (searched via pkg-config)
> > of libbpf. Set the embedded version as the default.
> > 
> > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > ---
> > v2: switched default to use embedded version
> > v3: add lib/include/bpf -> lib/bpf/src symlink to allow using 'system'
> >     style #include everywhere, rather than #ifdefs.
> >     Thanks Andrii for the suggestion!
> 
> I've updated it as I did a lot of refactorings, and here is why its
> better to have it default to using the embedded libbpf:

It is now at:

https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?h=tmp.master&id=ae2581647e84948810ba209f3891359dd4540110

After some more tests I'll move it to master.

- Arnaldo
 
> ⬢[acme@toolbox pahole]$ rpm -q libbpf-devel
> libbpf-devel-0.3.0-2.fc34.x86_64
> ⬢[acme@toolbox pahole]$ cat /etc/redhat-release
> Fedora release 34 (Thirty Four)
> ⬢[acme@toolbox pahole]$
> 
> ⬢[acme@toolbox pahole]$ rm -rf build ; mkdir build ; cd build ; cmake -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=Off .. ; cd ..
> -- The C compiler identification is GNU 11.1.1
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working C compiler: /usr/bin/cc - skipped
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Found PkgConfig: /usr/bin/pkg-config (found version "1.7.3") 
> -- Checking for module 'libbpf>=0.3.0'
> --   Found libbpf, version 0.3.0
> -- Checking availability of DWARF and ELF development libraries
> -- Looking for dwfl_module_build_id in elf
> -- Looking for dwfl_module_build_id in elf - found
> -- Found dwarf.h header: /usr/include
> -- Found elfutils/libdw.h header: /usr/include
> -- Found libdw library: /usr/lib64/libdw.so
> -- Found libelf library: /usr/lib64/libelf.so
> -- Checking availability of DWARF and ELF development libraries - done
> -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11") 
> -- Submodule update
> -- Submodule update - done
> -- Performing Test HAVE_REALLOCARRAY_SUPPORT
> -- Performing Test HAVE_REALLOCARRAY_SUPPORT - Success
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /var/home/acme/git/pahole/build
> ⬢[acme@toolbox pahole]$ m
> make: Entering directory '/var/home/acme/git/pahole/build'
> make[1]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target dwarves
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> [  5%] Building C object CMakeFiles/dwarves.dir/dwarves.c.o
> [  5%] Building C object CMakeFiles/dwarves.dir/dwarves_fprintf.c.o
> [ 10%] Building C object CMakeFiles/dwarves.dir/gobuffer.c.o
> [ 10%] Building C object CMakeFiles/dwarves.dir/ctf_encoder.c.o
> [ 12%] Building C object CMakeFiles/dwarves.dir/ctf_loader.c.o
> [ 15%] Building C object CMakeFiles/dwarves.dir/libctf.c.o
> [ 17%] Building C object CMakeFiles/dwarves.dir/dutil.c.o
> [ 20%] Building C object CMakeFiles/dwarves.dir/btf_encoder.c.o
> [ 25%] Building C object CMakeFiles/dwarves.dir/strings.c.o
> [ 25%] Building C object CMakeFiles/dwarves.dir/btf_loader.c.o
> [ 28%] Building C object CMakeFiles/dwarves.dir/dwarf_loader.c.o
> [ 33%] Building C object CMakeFiles/dwarves.dir/rbtree.c.o
> [ 33%] Building C object CMakeFiles/dwarves.dir/elf_symtab.c.o
> /var/home/acme/git/pahole/btf_encoder.c:84:10: error: ‘BTF_KIND_FLOAT’ undeclared here (not in a function); did you mean ‘BTF_KIND_INT’?
>    84 |         [BTF_KIND_FLOAT]        = "FLOAT",
>       |          ^~~~~~~~~~~~~~
>       |          BTF_KIND_INT
> /var/home/acme/git/pahole/btf_encoder.c:84:10: error: array index in initializer not of integer type
> /var/home/acme/git/pahole/btf_encoder.c:84:10: note: (near initialization for ‘btf_kind_str’)
> /var/home/acme/git/pahole/btf_encoder.c:84:35: warning: excess elements in array initializer
>    84 |         [BTF_KIND_FLOAT]        = "FLOAT",
>       |                                   ^~~~~~~
> /var/home/acme/git/pahole/btf_encoder.c:84:35: note: (near initialization for ‘btf_kind_str’)
> /var/home/acme/git/pahole/btf_loader.c: In function ‘btf__load_types’:
> /var/home/acme/git/pahole/btf_loader.c:455:22: error: ‘BTF_KIND_FLOAT’ undeclared (first use in this function); did you mean ‘BTF_KIND_INT’?
>   455 |                 case BTF_KIND_FLOAT:
>       |                      ^~~~~~~~~~~~~~
>       |                      BTF_KIND_INT
> /var/home/acme/git/pahole/btf_loader.c:455:22: note: each undeclared identifier is reported only once for each function it appears in
> /var/home/acme/git/pahole/btf_encoder.c: In function ‘btf_encoder__add_float’:
> /var/home/acme/git/pahole/btf_encoder.c:224:22: warning: implicit declaration of function ‘btf__add_float’; did you mean ‘btf__add_var’? [-Wimplicit-function-declaration]
>   224 |         int32_t id = btf__add_float(encoder->btf, name, BITS_ROUNDUP_BYTES(bt->bit_size));
>       |                      ^~~~~~~~~~~~~~
>       |                      btf__add_var
> make[2]: *** [CMakeFiles/dwarves.dir/build.make:186: CMakeFiles/dwarves.dir/btf_loader.c.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: *** [CMakeFiles/dwarves.dir/build.make:173: CMakeFiles/dwarves.dir/btf_encoder.c.o] Error 1
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[1]: *** [CMakeFiles/Makefile2:173: CMakeFiles/dwarves.dir/all] Error 2
> make[1]: Leaving directory '/var/home/acme/git/pahole/build'
> make: *** [Makefile:149: all] Error 2
> make: Leaving directory '/var/home/acme/git/pahole/build'
> ⬢[acme@toolbox pahole]$ 
> 
> 
> 
> With it off, the default, it works, so I'm applying this patch, will soon
> appear in the tmp.master branch and then move to master.
> 
> ⬢[acme@toolbox pahole]$ rm -rf build ; mkdir build ; cd build ; cmake -DCMAKE_BUILD_TYPE=Release .. ; cd ..
> -- The C compiler identification is GNU 11.1.1
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working C compiler: /usr/bin/cc - skipped
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Checking availability of DWARF and ELF development libraries
> -- Looking for dwfl_module_build_id in elf
> -- Looking for dwfl_module_build_id in elf - found
> -- Found dwarf.h header: /usr/include
> -- Found elfutils/libdw.h header: /usr/include
> -- Found libdw library: /usr/lib64/libdw.so
> -- Found libelf library: /usr/lib64/libelf.so
> -- Checking availability of DWARF and ELF development libraries - done
> -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11") 
> -- Submodule update
> -- Submodule update - done
> -- Performing Test HAVE_REALLOCARRAY_SUPPORT
> -- Performing Test HAVE_REALLOCARRAY_SUPPORT - Success
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /var/home/acme/git/pahole/build
> ⬢[acme@toolbox pahole]$ m
> make: Entering directory '/var/home/acme/git/pahole/build'
> make[1]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target bpf
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> [  3%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/bpf.c.o
> [  3%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/btf.c.o
> [  5%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/bpf_prog_linfo.c.o
> [  7%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/btf_dump.c.o
> [  9%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/hashmap.c.o
> [ 11%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf.c.o
> [ 13%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf_errno.c.o
> [ 15%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/ringbuf.c.o
> [ 17%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/libbpf_probes.c.o
> [ 19%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/netlink.c.o
> [ 21%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/nlattr.c.o
> [ 23%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/str_error.c.o
> [ 25%] Building C object CMakeFiles/bpf.dir/lib/bpf/src/xsk.c.o
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 25%] Built target bpf
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target dwarves
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> [ 28%] Building C object CMakeFiles/dwarves.dir/dwarves.c.o
> [ 28%] Building C object CMakeFiles/dwarves.dir/dwarves_fprintf.c.o
> [ 30%] Building C object CMakeFiles/dwarves.dir/gobuffer.c.o
> [ 32%] Building C object CMakeFiles/dwarves.dir/strings.c.o
> [ 34%] Building C object CMakeFiles/dwarves.dir/ctf_encoder.c.o
> [ 36%] Building C object CMakeFiles/dwarves.dir/libctf.c.o
> [ 38%] Building C object CMakeFiles/dwarves.dir/dutil.c.o
> [ 42%] Building C object CMakeFiles/dwarves.dir/btf_encoder.c.o
> [ 42%] Building C object CMakeFiles/dwarves.dir/btf_loader.c.o
> [ 44%] Building C object CMakeFiles/dwarves.dir/ctf_loader.c.o
> [ 48%] Building C object CMakeFiles/dwarves.dir/elf_symtab.c.o
> [ 48%] Building C object CMakeFiles/dwarves.dir/rbtree.c.o
> [ 50%] Building C object CMakeFiles/dwarves.dir/dwarf_loader.c.o
> [ 51%] Linking C shared library libdwarves.so
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 51%] Built target dwarves
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target codiff
> Scanning dependencies of target syscse
> Scanning dependencies of target dtagnames
> Scanning dependencies of target scncopy
> Scanning dependencies of target dwarves_reorganize
> Scanning dependencies of target dwarves_emit
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target prefcnt
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target pdwtags
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target pglobal
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> [ 55%] Building C object CMakeFiles/codiff.dir/codiff.c.o
> [ 55%] Building C object CMakeFiles/dtagnames.dir/dtagnames.c.o
> [ 57%] Building C object CMakeFiles/dwarves_emit.dir/dwarves_emit.c.o
> [ 61%] Building C object CMakeFiles/scncopy.dir/elfcreator.c.o
> [ 63%] Building C object CMakeFiles/prefcnt.dir/prefcnt.c.o
> [ 63%] Building C object CMakeFiles/dwarves_reorganize.dir/dwarves_reorganize.c.o
> [ 65%] Building C object CMakeFiles/pdwtags.dir/pdwtags.c.o
> [ 69%] Building C object CMakeFiles/syscse.dir/syscse.c.o
> [ 69%] Building C object CMakeFiles/pglobal.dir/pglobal.c.o
> [ 71%] Building C object CMakeFiles/scncopy.dir/scncopy.c.o
> [ 73%] Linking C executable dtagnames
> [ 75%] Linking C executable prefcnt
> [ 76%] Linking C executable syscse
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 80%] Linking C executable pdwtags
> [ 80%] Linking C executable pglobal
> [ 82%] Linking C executable scncopy
> [ 82%] Built target dtagnames
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 82%] Built target prefcnt
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 82%] Built target syscse
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 84%] Linking C shared library libdwarves_reorganize.so
> [ 86%] Linking C shared library libdwarves_emit.so
> [ 86%] Built target pglobal
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 86%] Built target pdwtags
> [ 86%] Built target scncopy
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 86%] Built target dwarves_reorganize
> [ 86%] Built target dwarves_emit
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> Scanning dependencies of target pahole
> Scanning dependencies of target ctracer
> Scanning dependencies of target pfunct
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> make[2]: Entering directory '/var/home/acme/git/pahole/build'
> [ 88%] Building C object CMakeFiles/pahole.dir/pahole.c.o
> [ 90%] Building C object CMakeFiles/ctracer.dir/ctracer.c.o
> [ 92%] Building C object CMakeFiles/pfunct.dir/pfunct.c.o
> [ 94%] Linking C executable codiff
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 94%] Built target codiff
> [ 96%] Linking C executable pfunct
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 98%] Linking C executable ctracer
> [ 98%] Built target pfunct
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [ 98%] Built target ctracer
> [100%] Linking C executable pahole
> make[2]: Leaving directory '/var/home/acme/git/pahole/build'
> [100%] Built target pahole
> make[1]: Leaving directory '/var/home/acme/git/pahole/build'
> make: Leaving directory '/var/home/acme/git/pahole/build'
> ⬢[acme@toolbox pahole]$

-- 

- Arnaldo

  reply	other threads:[~2021-06-09 16:38 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-02 18:22 [PATCH dwarves] libbpf: allow to use packaged version Luca Boccassi
2021-01-03 19:10 ` Andrii Nakryiko
2021-01-03 21:30   ` Luca Boccassi
2021-01-04 20:23     ` Andrii Nakryiko
2021-01-04 22:17       ` Luca Boccassi
2021-01-21 13:29         ` Arnaldo Carvalho de Melo
2021-01-21 20:02           ` Andrii Nakryiko
2021-01-21 20:33             ` Arnaldo Carvalho de Melo
2021-01-21 20:34             ` Arnaldo Carvalho de Melo
2021-01-21 21:19               ` Luca Boccassi
2021-01-15 15:29       ` Arnaldo Carvalho de Melo
2021-01-15 15:40         ` Luca Boccassi
2021-06-09 16:07           ` Arnaldo Carvalho de Melo
2021-06-09 16:11             ` Luca Boccassi
2021-01-03 21:32 ` [PATCH dwarves v2] " Luca Boccassi
2021-01-04 22:16   ` [PATCH dwarves v3] " Luca Boccassi
2021-01-13 11:18     ` Arnaldo Carvalho de Melo
2021-03-30  4:47     ` Dominique Martinet
2021-03-30 10:50       ` Luca Boccassi
2021-03-30 11:06         ` Luca Boccassi
2021-03-30 11:45           ` Dominique Martinet
2021-03-30 15:12       ` Arnaldo Carvalho de Melo
2021-03-31  1:05         ` Dominique Martinet
2021-04-13 13:42           ` Luca Boccassi
2021-05-18 14:07             ` Luca Boccassi
2021-06-09  4:10               ` Dominique Martinet
2021-06-09 16:25     ` Arnaldo Carvalho de Melo
2021-06-09 16:38       ` Arnaldo Carvalho de Melo [this message]
2021-06-09 16:43         ` Luca Boccassi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YMDubLyVLnVw//+g@kernel.org \
    --to=acme@kernel.org \
    --cc=andrii.nakryiko@gmail.com \
    --cc=bluca@debian.org \
    --cc=dwarves@vger.kernel.org \
    --cc=jolsa@kernel.org \
    --cc=mpetlan@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).