Re: [PATCH] selinux-testsuite: add libelf to builds using libbpf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 25, 2019 at 12:58 AM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> From: Paul Moore <paul@xxxxxxxxxxxxxx>
>
> 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@xxxxxxxxxxxxxx>
> ---
>  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)
>

-- 
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux