Message ID | 156936589827.661145.16998799838921887816.stgit@chester (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
Series | selinux-testsuite: add libelf to builds using libbpf | expand |
On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@paul-moore.com> wrote: > From: Paul Moore <paul@paul-moore.com> > > On a modern Rawhide system builds that include libbpf require libelf > as well to avoid the following linker errors: > > # cc -g -O0 -Wall -D_GNU_SOURCE -DHAVE_BPF \ > client.c ../bpf/bpf_common.c ../bpf/bpf_common.h -lbpf -o client > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getshdr' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_rawdata' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getscn' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_begin' > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getrel' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_memory' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_end' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_strptr' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_nextscn' > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getehdr' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_version' > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getdata' > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getsym' This is a bug in libbpf. I filed a bug against the Fedora package [1] and also opened a PR [2] against the upstream repo (which is a modified mirror of the code in the kernel repo under tools/lib/bpf, where the bug is not present), which I think should fix this problem also in the Fedora builds. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1755317 [2] https://github.com/libbpf/libbpf/pull/72 > > Signed-off-by: Paul Moore <paul@paul-moore.com> > --- > tests/binder/Makefile | 2 +- > tests/bpf/Makefile | 2 +- > tests/fdreceive/Makefile | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tests/binder/Makefile b/tests/binder/Makefile > index e78ad16..8f3cc28 100644 > --- a/tests/binder/Makefile > +++ b/tests/binder/Makefile > @@ -12,7 +12,7 @@ endif > > ifneq (,$(findstring -DHAVE_BPF,$(CFLAGS))) > DEPS += ../bpf/bpf_common.c ../bpf/bpf_common.h > - LDLIBS += -lbpf > + LDLIBS += -lelf -lbpf > endif > > all: $(TARGETS) > diff --git a/tests/bpf/Makefile b/tests/bpf/Makefile > index 6fb230d..7b00b41 100644 > --- a/tests/bpf/Makefile > +++ b/tests/bpf/Makefile > @@ -1,6 +1,6 @@ > TARGETS = bpf_test > DEPS = bpf_common.c bpf_common.h > -LDLIBS += -lselinux -lbpf > +LDLIBS += -lselinux -lelf -lbpf > > # export so that BPF_ENABLED entries get built correctly on local build > export CFLAGS += -DHAVE_BPF > diff --git a/tests/fdreceive/Makefile b/tests/fdreceive/Makefile > index 895f91c..cf57327 100644 > --- a/tests/fdreceive/Makefile > +++ b/tests/fdreceive/Makefile > @@ -2,7 +2,7 @@ TARGETS = client server > > ifneq (,$(findstring -DHAVE_BPF,$(CFLAGS))) > DEPS = ../bpf/bpf_common.c ../bpf/bpf_common.h > - LDLIBS += -lbpf > + LDLIBS += -lelf -lbpf > endif > > all: $(TARGETS) >
On Wed, Sep 25, 2019 at 5:06 AM Ondrej Mosnacek <omosnace@redhat.com> wrote: > On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@paul-moore.com> wrote: > > From: Paul Moore <paul@paul-moore.com> > > > > On a modern Rawhide system builds that include libbpf require libelf > > as well to avoid the following linker errors: > > > > # cc -g -O0 -Wall -D_GNU_SOURCE -DHAVE_BPF \ > > client.c ../bpf/bpf_common.c ../bpf/bpf_common.h -lbpf -o client > > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getshdr' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_rawdata' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getscn' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_begin' > > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getrel' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_memory' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_end' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_strptr' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_nextscn' > > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getehdr' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_version' > > /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getdata' > > /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getsym' > > This is a bug in libbpf. I filed a bug against the Fedora package [1] > and also opened a PR [2] against the upstream repo (which is a > modified mirror of the code in the kernel repo under tools/lib/bpf, > where the bug is not present), which I think should fix this problem > also in the Fedora builds. > > [1] https://bugzilla.redhat.com/show_bug.cgi?id=1755317 > [2] https://github.com/libbpf/libbpf/pull/72 Thanks for tracking down the root cause and filing a report upstream; I didn't have time to sort out the "why", I just wanted to get the test working again :) It looks like the best course of action is to hold off on this fix in hopes that it gets fixed upstream, or at least in Fedora. If this issue persists for a week or two we can always go ahead and merge this fix, it shouldn't break anything if/when this gets fixed upstream. Tests that fail to run made me sad :(
On 9/25/19 11:22 AM, Paul Moore wrote: > On Wed, Sep 25, 2019 at 5:06 AM Ondrej Mosnacek <omosnace@redhat.com> wrote: >> On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@paul-moore.com> wrote: >>> From: Paul Moore <paul@paul-moore.com> >>> >>> On a modern Rawhide system builds that include libbpf require libelf >>> as well to avoid the following linker errors: >>> >>> # cc -g -O0 -Wall -D_GNU_SOURCE -DHAVE_BPF \ >>> client.c ../bpf/bpf_common.c ../bpf/bpf_common.h -lbpf -o client >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getshdr' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_rawdata' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getscn' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_begin' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getrel' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_memory' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_end' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_strptr' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_nextscn' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getehdr' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_version' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getdata' >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getsym' >> >> This is a bug in libbpf. I filed a bug against the Fedora package [1] >> and also opened a PR [2] against the upstream repo (which is a >> modified mirror of the code in the kernel repo under tools/lib/bpf, >> where the bug is not present), which I think should fix this problem >> also in the Fedora builds. >> >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1755317 >> [2] https://github.com/libbpf/libbpf/pull/72 > > Thanks for tracking down the root cause and filing a report upstream; > I didn't have time to sort out the "why", I just wanted to get the > test working again :) > > It looks like the best course of action is to hold off on this fix in > hopes that it gets fixed upstream, or at least in Fedora. If this > issue persists for a week or two we can always go ahead and merge this > fix, it shouldn't break anything if/when this gets fixed upstream. > > Tests that fail to run made me sad :( FWIW, this is still broken on F30 (don't know about F31). Any chance we can get the updated package pushed to F30/F31 too?
On Wed, Oct 9, 2019 at 2:27 PM Stephen Smalley <sds@tycho.nsa.gov> wrote: > On 9/25/19 11:22 AM, Paul Moore wrote: > > On Wed, Sep 25, 2019 at 5:06 AM Ondrej Mosnacek <omosnace@redhat.com> wrote: > >> On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@paul-moore.com> wrote: > >>> From: Paul Moore <paul@paul-moore.com> > >>> > >>> On a modern Rawhide system builds that include libbpf require libelf > >>> as well to avoid the following linker errors: > >>> > >>> # cc -g -O0 -Wall -D_GNU_SOURCE -DHAVE_BPF \ > >>> client.c ../bpf/bpf_common.c ../bpf/bpf_common.h -lbpf -o client > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getshdr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_rawdata' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getscn' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_begin' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getrel' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_memory' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_end' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_strptr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_nextscn' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getehdr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_version' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getdata' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getsym' > >> > >> This is a bug in libbpf. I filed a bug against the Fedora package [1] > >> and also opened a PR [2] against the upstream repo (which is a > >> modified mirror of the code in the kernel repo under tools/lib/bpf, > >> where the bug is not present), which I think should fix this problem > >> also in the Fedora builds. > >> > >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1755317 > >> [2] https://github.com/libbpf/libbpf/pull/72 > > > > Thanks for tracking down the root cause and filing a report upstream; > > I didn't have time to sort out the "why", I just wanted to get the > > test working again :) > > > > It looks like the best course of action is to hold off on this fix in > > hopes that it gets fixed upstream, or at least in Fedora. If this > > issue persists for a week or two we can always go ahead and merge this > > fix, it shouldn't break anything if/when this gets fixed upstream. > > > > Tests that fail to run made me sad :( > > FWIW, this is still broken on F30 (don't know about F31). Any chance we > can get the updated package pushed to F30/F31 too? Alternatively, it is worth just patching the test suite? It's obviously better if Fedora (and all the other distros) fix this everywhere, but it doesn't look like that is happening.
On Wed, Oct 9, 2019 at 8:27 PM Stephen Smalley <sds@tycho.nsa.gov> wrote: > On 9/25/19 11:22 AM, Paul Moore wrote: > > On Wed, Sep 25, 2019 at 5:06 AM Ondrej Mosnacek <omosnace@redhat.com> wrote: > >> On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@paul-moore.com> wrote: > >>> From: Paul Moore <paul@paul-moore.com> > >>> > >>> On a modern Rawhide system builds that include libbpf require libelf > >>> as well to avoid the following linker errors: > >>> > >>> # cc -g -O0 -Wall -D_GNU_SOURCE -DHAVE_BPF \ > >>> client.c ../bpf/bpf_common.c ../bpf/bpf_common.h -lbpf -o client > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getshdr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_rawdata' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getscn' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_begin' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getrel' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_memory' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_end' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_strptr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_nextscn' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getehdr' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_version' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `elf_getdata' > >>> /usr/bin/ld: ... libbpf.so: undefined reference to `gelf_getsym' > >> > >> This is a bug in libbpf. I filed a bug against the Fedora package [1] > >> and also opened a PR [2] against the upstream repo (which is a > >> modified mirror of the code in the kernel repo under tools/lib/bpf, > >> where the bug is not present), which I think should fix this problem > >> also in the Fedora builds. > >> > >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1755317 > >> [2] https://github.com/libbpf/libbpf/pull/72 > > > > Thanks for tracking down the root cause and filing a report upstream; > > I didn't have time to sort out the "why", I just wanted to get the > > test working again :) > > > > It looks like the best course of action is to hold off on this fix in > > hopes that it gets fixed upstream, or at least in Fedora. If this > > issue persists for a week or two we can always go ahead and merge this > > fix, it shouldn't break anything if/when this gets fixed upstream. > > > > Tests that fail to run made me sad :( > > FWIW, this is still broken on F30 (don't know about F31). Any chance we > can get the updated package pushed to F30/F31 too? There are updates pending for F3[01], which both have the issue fixed: https://bodhi.fedoraproject.org/updates/FEDORA-2019-aa28a02f4e https://bodhi.fedoraproject.org/updates/FEDORA-2019-8519f326c2 Both should get pushed to stable automatically in 2 days if there is no negative feedback (or earlier if there is enough positive feedback - feel free to test and add +1 karma). -- Ondrej Mosnacek <omosnace at redhat dot com> Software Engineer, Security Technologies Red Hat, Inc.
diff --git a/tests/binder/Makefile b/tests/binder/Makefile index e78ad16..8f3cc28 100644 --- a/tests/binder/Makefile +++ b/tests/binder/Makefile @@ -12,7 +12,7 @@ endif ifneq (,$(findstring -DHAVE_BPF,$(CFLAGS))) DEPS += ../bpf/bpf_common.c ../bpf/bpf_common.h - LDLIBS += -lbpf + LDLIBS += -lelf -lbpf endif all: $(TARGETS) diff --git a/tests/bpf/Makefile b/tests/bpf/Makefile index 6fb230d..7b00b41 100644 --- a/tests/bpf/Makefile +++ b/tests/bpf/Makefile @@ -1,6 +1,6 @@ TARGETS = bpf_test DEPS = bpf_common.c bpf_common.h -LDLIBS += -lselinux -lbpf +LDLIBS += -lselinux -lelf -lbpf # export so that BPF_ENABLED entries get built correctly on local build export CFLAGS += -DHAVE_BPF diff --git a/tests/fdreceive/Makefile b/tests/fdreceive/Makefile index 895f91c..cf57327 100644 --- a/tests/fdreceive/Makefile +++ b/tests/fdreceive/Makefile @@ -2,7 +2,7 @@ TARGETS = client server ifneq (,$(findstring -DHAVE_BPF,$(CFLAGS))) DEPS = ../bpf/bpf_common.c ../bpf/bpf_common.h - LDLIBS += -lbpf + LDLIBS += -lelf -lbpf endif all: $(TARGETS)