netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* libbpf-devel rpm uapi headers
@ 2019-10-02 17:43 Jiri Olsa
  2019-10-02 18:43 ` Alexei Starovoitov
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2019-10-02 17:43 UTC (permalink / raw)
  To: Julia Kartseva, Yonghong Song
  Cc: debian-kernel, md, Alexei Starovoitov, Andrii Nakryiko, labbott,
	acme, netdev, Andrey Ignatov, jolsa, Daniel Borkmann,
	Jesper Dangaard Brouer, Toke Høiland-Jørgensen,
	iovisor-dev

hi,
we'd like to have bcc linked with libbpf instead of the
github submodule, initial change is discussed in here:
  https://github.com/iovisor/bcc/pull/2535

In order to do that, we need to have access to uapi headers
compatible with libbpf rpm, bcc is attaching and using them
during compilation.

I added them in the fedora spec below (not submitted yet),
so libbpf would carry those headers.

Thoughts? thanks,
jirka


---
Subject: [PATCH] Package uapi headers under /usr/include/bpf/uapi/linux

The full list of files for libbpf-devel is now:

  /usr/include/bpf
  /usr/include/bpf/bpf.h
  /usr/include/bpf/btf.h
  /usr/include/bpf/libbpf.h
  /usr/include/bpf/libbpf_util.h
  /usr/include/bpf/uapi
  /usr/include/bpf/uapi/linux
  /usr/include/bpf/uapi/linux/compiler.h
  /usr/include/bpf/uapi/linux/err.h
  /usr/include/bpf/uapi/linux/filter.h
  /usr/include/bpf/uapi/linux/kernel.h
  /usr/include/bpf/uapi/linux/list.h
  /usr/include/bpf/uapi/linux/overflow.h
  /usr/include/bpf/uapi/linux/ring_buffer.h
  /usr/include/bpf/uapi/linux/types.h
  /usr/include/bpf/xsk.h
  /usr/lib64/libbpf.so
  /usr/lib64/pkgconfig/libbpf.pc
---
 libbpf.spec | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/libbpf.spec b/libbpf.spec
index 5d0f29718cac..681800c7f93e 100644
--- a/libbpf.spec
+++ b/libbpf.spec
@@ -4,7 +4,7 @@
 
 Name:           %{githubname}
 Version:        %{githubver}
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Libbpf library
 
 License:        LGPLv2 or BSD
@@ -48,6 +48,8 @@ developing applications that use %{name}
 
 %install
 %make_install -C ./src %{make_flags}
+install -d -m 755  %{buildroot}/usr/include/bpf/uapi/linux
+cp include/linux/* %{buildroot}/usr/include/bpf/uapi/linux
 
 %files
 %{_libdir}/libbpf.so.%{version}
@@ -62,6 +64,9 @@ developing applications that use %{name}
 %{_libdir}/libbpf.a
 
 %changelog
+* Wed Oct 02 2019 Jiri Olsa <jolsa@redhat.com> - 0.0.3-3
+- Add uapi headers
+
 * Wed Sep 25 2019 Jiri Olsa <jolsa@redhat.com> - 0.0.3-2
 - Fix libelf linking (BZ#1755317)
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libbpf-devel rpm uapi headers
  2019-10-02 17:43 libbpf-devel rpm uapi headers Jiri Olsa
@ 2019-10-02 18:43 ` Alexei Starovoitov
  2019-10-02 20:08   ` Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Alexei Starovoitov @ 2019-10-02 18:43 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Julia Kartseva, Yonghong Song, debian-kernel, md,
	Alexei Starovoitov, Andrii Nakryiko, labbott, acme, netdev,
	Andrey Ignatov, jolsa, Daniel Borkmann, Jesper Dangaard Brouer,
	Toke Høiland-Jørgensen, iovisor-dev

On Wed, Oct 02, 2019 at 07:43:31PM +0200, Jiri Olsa wrote:
> hi,
> we'd like to have bcc linked with libbpf instead of the
> github submodule, initial change is discussed in here:
>   https://github.com/iovisor/bcc/pull/2535
> 
> In order to do that, we need to have access to uapi headers
> compatible with libbpf rpm, bcc is attaching and using them
> during compilation.
> 
> I added them in the fedora spec below (not submitted yet),
> so libbpf would carry those headers.
> 
> Thoughts? thanks,

I think it may break a bunch of people who rely on bcc being a single library.
What is the main motiviation to use libbpf as a shared library in libbcc?

I think we can have both options. libbpf as git submodule and as shared.
In practice git submodule is so much simpler to use and a lot less headaches.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libbpf-devel rpm uapi headers
  2019-10-02 18:43 ` Alexei Starovoitov
@ 2019-10-02 20:08   ` Jiri Olsa
  0 siblings, 0 replies; 3+ messages in thread
From: Jiri Olsa @ 2019-10-02 20:08 UTC (permalink / raw)
  To: Alexei Starovoitov
  Cc: Julia Kartseva, Yonghong Song, debian-kernel, md,
	Alexei Starovoitov, Andrii Nakryiko, labbott, acme, netdev,
	Andrey Ignatov, jolsa, Daniel Borkmann, Jesper Dangaard Brouer,
	Toke Høiland-Jørgensen, iovisor-dev

On Wed, Oct 02, 2019 at 11:43:17AM -0700, Alexei Starovoitov wrote:
> On Wed, Oct 02, 2019 at 07:43:31PM +0200, Jiri Olsa wrote:
> > hi,
> > we'd like to have bcc linked with libbpf instead of the
> > github submodule, initial change is discussed in here:
> >   https://github.com/iovisor/bcc/pull/2535
> > 
> > In order to do that, we need to have access to uapi headers
> > compatible with libbpf rpm, bcc is attaching and using them
> > during compilation.
> > 
> > I added them in the fedora spec below (not submitted yet),
> > so libbpf would carry those headers.
> > 
> > Thoughts? thanks,
> 
> I think it may break a bunch of people who rely on bcc being a single library.

there's still libbpf.a available so it's still possible

> What is the main motiviation to use libbpf as a shared library in libbcc?

Besides that it's better to share common source of libbpf code,
it also prevents issues when having application that links to
libbpf and libbcc, where you could end up conflicting functions
and segfaults if those 2 libbpf libs are not on the same version.

quote from the github pull request ;-)

bpftrace links to libbcc, which carries libbcc_bpf and if I link
bpftrace with libbpf, the dynamic loader might get consused and
I get crash if those 2 libbpf libs (bcc x bpftrace) are not the
same version

> 
> I think we can have both options. libbpf as git submodule and as shared.
> In practice git submodule is so much simpler to use and a lot less headaches.

that's what the change to bcc suggests.. the build detects libbpf-devel
and if available links with it.. Yonghong suggested we also need uapi
headers so we don't rely on standard kernel headers

jirka

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-10-02 20:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-02 17:43 libbpf-devel rpm uapi headers Jiri Olsa
2019-10-02 18:43 ` Alexei Starovoitov
2019-10-02 20:08   ` Jiri Olsa

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).