diff mbox series

[bpf-next] bpf/selftests: Allow vmtest.sh to build statically linked test_progs.

Message ID 20220304150402.729127-1-kpsingh@kernel.org (mailing list archive)
State Superseded
Delegated to: BPF
Headers show
Series [bpf-next] bpf/selftests: Allow vmtest.sh to build statically linked test_progs. | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for bpf-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers warning 7 maintainers not CCed: linux-kselftest@vger.kernel.org john.fastabend@gmail.com kafai@fb.com songliubraving@fb.com shuah@kernel.org yhs@fb.com netdev@vger.kernel.org
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 24 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

KP Singh March 4, 2022, 3:04 p.m. UTC
Dynamic linking when compiling on the host can cause issues when the
libc version does not match the one in the VM image.
Allow the user to use static compilation when this issue arises:

Before:
  ./vmtest.sh -- ./test_progs -t test_ima
  ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)

After:

  TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
  test_ima:OK
  Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED

Not using static as the default as some distros may not have dependent
static libraries.

Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
Signed-off-by: KP Singh <kpsingh@kernel.org>
---
 tools/testing/selftests/bpf/Makefile  | 4 ++--
 tools/testing/selftests/bpf/vmtest.sh | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

KP Singh March 4, 2022, 3:06 p.m. UTC | #1
On Fri, Mar 4, 2022 at 4:04 PM KP Singh <kpsingh@kernel.org> wrote:
>
> Dynamic linking when compiling on the host can cause issues when the
> libc version does not match the one in the VM image.
> Allow the user to use static compilation when this issue arises:
>
> Before:
>   ./vmtest.sh -- ./test_progs -t test_ima
>   ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)
>
> After:
>
>   TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
>   test_ima:OK
>   Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
>
> Not using static as the default as some distros may not have dependent
> static libraries.
>
> Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
> Signed-off-by: KP Singh <kpsingh@kernel.org>
> ---
>  tools/testing/selftests/bpf/Makefile  | 4 ++--
>  tools/testing/selftests/bpf/vmtest.sh | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index fe12b4f5fe20..2473c9b0cb2e 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -162,7 +162,7 @@ $(MAKE_DIRS):
>
>  $(OUTPUT)/%.o: %.c
>         $(call msg,CC,,$@)
> -       $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> +       $(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
>
>  $(OUTPUT)/%:%.c
>         $(call msg,BINARY,,$@)
> @@ -468,7 +468,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)                   \
>                              $(RESOLVE_BTFIDS)                          \
>                              | $(TRUNNER_BINARY)-extras
>         $$(call msg,BINARY,,$$@)
> -       $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> +       $(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
>         $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
>         $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
>
> diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
> index e0bb04a97e10..a8bf6ceb3d06 100755
> --- a/tools/testing/selftests/bpf/vmtest.sh
> +++ b/tools/testing/selftests/bpf/vmtest.sh
> @@ -155,7 +155,7 @@ update_selftests()
>         local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
>
>         cd "${selftests_dir}"
> -       ${make_command}
> +       ${make_command} TRUNNER_LDFLAGS=-static

This is not what you want to do KP, amend your commit so that
-static is not the default.

Okay, resending.

>
>         # Mount the image and copy the selftests to the image.
>         mount_image
> --
> 2.35.1.616.g0bdcbb4464-goog
>
sunyucong@gmail.com March 4, 2022, 4:57 p.m. UTC | #2
On Fri, Mar 4, 2022 at 8:48 AM KP Singh <kpsingh@kernel.org> wrote:
>
> Dynamic linking when compiling on the host can cause issues when the
> libc version does not match the one in the VM image.
> Allow the user to use static compilation when this issue arises:
>
> Before:
>   ./vmtest.sh -- ./test_progs -t test_ima
>   ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)
>
> After:
>
>   TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
>   test_ima:OK
>   Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
>
> Not using static as the default as some distros may not have dependent
> static libraries.
>
> Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
> Signed-off-by: KP Singh <kpsingh@kernel.org>
> ---
>  tools/testing/selftests/bpf/Makefile  | 4 ++--
>  tools/testing/selftests/bpf/vmtest.sh | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index fe12b4f5fe20..2473c9b0cb2e 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -162,7 +162,7 @@ $(MAKE_DIRS):
>
>  $(OUTPUT)/%.o: %.c
>         $(call msg,CC,,$@)
> -       $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> +       $(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
>
>  $(OUTPUT)/%:%.c
>         $(call msg,BINARY,,$@)
> @@ -468,7 +468,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)                   \
>                              $(RESOLVE_BTFIDS)                          \
>                              | $(TRUNNER_BINARY)-extras
>         $$(call msg,BINARY,,$$@)
> -       $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> +       $(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
>         $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
>         $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
>
> diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
> index e0bb04a97e10..a8bf6ceb3d06 100755
> --- a/tools/testing/selftests/bpf/vmtest.sh
> +++ b/tools/testing/selftests/bpf/vmtest.sh
> @@ -155,7 +155,7 @@ update_selftests()
>         local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
>
>         cd "${selftests_dir}"
> -       ${make_command}
> +       ${make_command} TRUNNER_LDFLAGS=-static

In the commit message you mentioned we are not making it default for
everyone, Yet here making it default?
Also, do we need to add a new TRUNNER_LDFLAGS ? Why not just LDFLAGS,
we also use CFLAGS.  Thinking ahead if we want add ASAN support later,
maybe add a switch to vmtest.sh for choosing flavor to run would be
better.


>
>         # Mount the image and copy the selftests to the image.
>         mount_image
> --
> 2.35.1.616.g0bdcbb4464-goog
>
KP Singh March 4, 2022, 5:18 p.m. UTC | #3
On Fri, Mar 4, 2022 at 5:57 PM sunyucong@gmail.com <sunyucong@gmail.com> wrote:
>
> On Fri, Mar 4, 2022 at 8:48 AM KP Singh <kpsingh@kernel.org> wrote:
> >
> > Dynamic linking when compiling on the host can cause issues when the
> > libc version does not match the one in the VM image.
> > Allow the user to use static compilation when this issue arises:
> >
> > Before:
> >   ./vmtest.sh -- ./test_progs -t test_ima
> >   ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)
> >
> > After:
> >
> >   TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
> >   test_ima:OK
> >   Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
> >
> > Not using static as the default as some distros may not have dependent
> > static libraries.
> >
> > Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
> > Signed-off-by: KP Singh <kpsingh@kernel.org>
> > ---
> >  tools/testing/selftests/bpf/Makefile  | 4 ++--
> >  tools/testing/selftests/bpf/vmtest.sh | 2 +-
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> > index fe12b4f5fe20..2473c9b0cb2e 100644
> > --- a/tools/testing/selftests/bpf/Makefile
> > +++ b/tools/testing/selftests/bpf/Makefile
> > @@ -162,7 +162,7 @@ $(MAKE_DIRS):
> >
> >  $(OUTPUT)/%.o: %.c
> >         $(call msg,CC,,$@)
> > -       $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> > +       $(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> >
> >  $(OUTPUT)/%:%.c
> >         $(call msg,BINARY,,$@)
> > @@ -468,7 +468,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)                   \
> >                              $(RESOLVE_BTFIDS)                          \
> >                              | $(TRUNNER_BINARY)-extras
> >         $$(call msg,BINARY,,$$@)
> > -       $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> > +       $(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> >         $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
> >         $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
> >
> > diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
> > index e0bb04a97e10..a8bf6ceb3d06 100755
> > --- a/tools/testing/selftests/bpf/vmtest.sh
> > +++ b/tools/testing/selftests/bpf/vmtest.sh
> > @@ -155,7 +155,7 @@ update_selftests()
> >         local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
> >
> >         cd "${selftests_dir}"
> > -       ${make_command}
> > +       ${make_command} TRUNNER_LDFLAGS=-static
>
> In the commit message you mentioned we are not making it default for
> everyone, Yet here making it default?

I have already sent a v2, maybe you missed that

https://lore.kernel.org/bpf/20220304150708.729904-1-kpsingh@kernel.org/T/#u

after noticing my mistake

https://lore.kernel.org/bpf/CAJygYd1uwX05w3-+avZfz9d2a=8OD7VTMEv8Uo9AHLHrnu=k+Q@mail.gmail.com/T/#m1a3eedc831d8b27e5639b1d57e3af36a2b20f449

> Also, do we need to add a new TRUNNER_LDFLAGS ? Why not just LDFLAGS,
> we also use CFLAGS.  Thinking ahead if we want add ASAN support later,

Simple LDFLAGS and CFLAGS (not TRUNNER_*) did not work for me for some reason.

> maybe add a switch to vmtest.sh for choosing flavor to run would be
> better.

I am not sure if we want to add a switch for everything. But I don't
mind if folks think it would be useful.

>
>
> >
> >         # Mount the image and copy the selftests to the image.
> >         mount_image
> > --
> > 2.35.1.616.g0bdcbb4464-goog
> >
Andrii Nakryiko March 5, 2022, 12:38 a.m. UTC | #4
On Fri, Mar 4, 2022 at 9:18 AM KP Singh <kpsingh@kernel.org> wrote:
>
> On Fri, Mar 4, 2022 at 5:57 PM sunyucong@gmail.com <sunyucong@gmail.com> wrote:
> >
> > On Fri, Mar 4, 2022 at 8:48 AM KP Singh <kpsingh@kernel.org> wrote:
> > >
> > > Dynamic linking when compiling on the host can cause issues when the
> > > libc version does not match the one in the VM image.
> > > Allow the user to use static compilation when this issue arises:
> > >
> > > Before:
> > >   ./vmtest.sh -- ./test_progs -t test_ima
> > >   ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)
> > >
> > > After:
> > >
> > >   TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
> > >   test_ima:OK
> > >   Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
> > >
> > > Not using static as the default as some distros may not have dependent
> > > static libraries.
> > >
> > > Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
> > > Signed-off-by: KP Singh <kpsingh@kernel.org>
> > > ---
> > >  tools/testing/selftests/bpf/Makefile  | 4 ++--
> > >  tools/testing/selftests/bpf/vmtest.sh | 2 +-
> > >  2 files changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> > > index fe12b4f5fe20..2473c9b0cb2e 100644
> > > --- a/tools/testing/selftests/bpf/Makefile
> > > +++ b/tools/testing/selftests/bpf/Makefile
> > > @@ -162,7 +162,7 @@ $(MAKE_DIRS):
> > >
> > >  $(OUTPUT)/%.o: %.c
> > >         $(call msg,CC,,$@)
> > > -       $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> > > +       $(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> > >
> > >  $(OUTPUT)/%:%.c
> > >         $(call msg,BINARY,,$@)
> > > @@ -468,7 +468,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)                   \
> > >                              $(RESOLVE_BTFIDS)                          \
> > >                              | $(TRUNNER_BINARY)-extras
> > >         $$(call msg,BINARY,,$$@)
> > > -       $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> > > +       $(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> > >         $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
> > >         $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
> > >
> > > diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
> > > index e0bb04a97e10..a8bf6ceb3d06 100755
> > > --- a/tools/testing/selftests/bpf/vmtest.sh
> > > +++ b/tools/testing/selftests/bpf/vmtest.sh
> > > @@ -155,7 +155,7 @@ update_selftests()
> > >         local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
> > >
> > >         cd "${selftests_dir}"
> > > -       ${make_command}
> > > +       ${make_command} TRUNNER_LDFLAGS=-static
> >
> > In the commit message you mentioned we are not making it default for
> > everyone, Yet here making it default?
>
> I have already sent a v2, maybe you missed that
>
> https://lore.kernel.org/bpf/20220304150708.729904-1-kpsingh@kernel.org/T/#u
>
> after noticing my mistake
>
> https://lore.kernel.org/bpf/CAJygYd1uwX05w3-+avZfz9d2a=8OD7VTMEv8Uo9AHLHrnu=k+Q@mail.gmail.com/T/#m1a3eedc831d8b27e5639b1d57e3af36a2b20f449
>
> > Also, do we need to add a new TRUNNER_LDFLAGS ? Why not just LDFLAGS,
> > we also use CFLAGS.  Thinking ahead if we want add ASAN support later,
>
> Simple LDFLAGS and CFLAGS (not TRUNNER_*) did not work for me for some reason.

I think LDFLAGS are not wired properly everywhere. But have you tried

LDLIBS=-static ./vmtest.sh ?

In my case I can't get libcap.a to be installed in my system, so
compilation never completely succeeds, but I think it should get you
what you want

>
> > maybe add a switch to vmtest.sh for choosing flavor to run would be
> > better.
>
> I am not sure if we want to add a switch for everything. But I don't
> mind if folks think it would be useful.
>
> >
> >
> > >
> > >         # Mount the image and copy the selftests to the image.
> > >         mount_image
> > > --
> > > 2.35.1.616.g0bdcbb4464-goog
> > >
KP Singh March 7, 2022, 1:10 p.m. UTC | #5
On Sat, Mar 5, 2022 at 1:38 AM Andrii Nakryiko
<andrii.nakryiko@gmail.com> wrote:
>
> On Fri, Mar 4, 2022 at 9:18 AM KP Singh <kpsingh@kernel.org> wrote:
> >
> > On Fri, Mar 4, 2022 at 5:57 PM sunyucong@gmail.com <sunyucong@gmail.com> wrote:
> > >
> > > On Fri, Mar 4, 2022 at 8:48 AM KP Singh <kpsingh@kernel.org> wrote:
> > > >
> > > > Dynamic linking when compiling on the host can cause issues when the
> > > > libc version does not match the one in the VM image.
> > > > Allow the user to use static compilation when this issue arises:
> > > >
> > > > Before:
> > > >   ./vmtest.sh -- ./test_progs -t test_ima
> > > >   ./test_progs: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./test_progs)
> > > >
> > > > After:
> > > >
> > > >   TRUNNER_LDFLAGS=-static ./vmtest.sh -- ./test_progs -t test_ima
> > > >   test_ima:OK
> > > >   Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
> > > >
> > > > Not using static as the default as some distros may not have dependent
> > > > static libraries.
> > > >
> > > > Reported-by: "Geyslan G. Bem" <geyslan@gmail.com>
> > > > Signed-off-by: KP Singh <kpsingh@kernel.org>
> > > > ---
> > > >  tools/testing/selftests/bpf/Makefile  | 4 ++--
> > > >  tools/testing/selftests/bpf/vmtest.sh | 2 +-
> > > >  2 files changed, 3 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> > > > index fe12b4f5fe20..2473c9b0cb2e 100644
> > > > --- a/tools/testing/selftests/bpf/Makefile
> > > > +++ b/tools/testing/selftests/bpf/Makefile
> > > > @@ -162,7 +162,7 @@ $(MAKE_DIRS):
> > > >
> > > >  $(OUTPUT)/%.o: %.c
> > > >         $(call msg,CC,,$@)
> > > > -       $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> > > > +       $(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
> > > >
> > > >  $(OUTPUT)/%:%.c
> > > >         $(call msg,BINARY,,$@)
> > > > @@ -468,7 +468,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)                   \
> > > >                              $(RESOLVE_BTFIDS)                          \
> > > >                              | $(TRUNNER_BINARY)-extras
> > > >         $$(call msg,BINARY,,$$@)
> > > > -       $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> > > > +       $(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
> > > >         $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
> > > >         $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
> > > >
> > > > diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
> > > > index e0bb04a97e10..a8bf6ceb3d06 100755
> > > > --- a/tools/testing/selftests/bpf/vmtest.sh
> > > > +++ b/tools/testing/selftests/bpf/vmtest.sh
> > > > @@ -155,7 +155,7 @@ update_selftests()
> > > >         local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
> > > >
> > > >         cd "${selftests_dir}"
> > > > -       ${make_command}
> > > > +       ${make_command} TRUNNER_LDFLAGS=-static
> > >
> > > In the commit message you mentioned we are not making it default for
> > > everyone, Yet here making it default?
> >
> > I have already sent a v2, maybe you missed that
> >
> > https://lore.kernel.org/bpf/20220304150708.729904-1-kpsingh@kernel.org/T/#u
> >
> > after noticing my mistake
> >
> > https://lore.kernel.org/bpf/CAJygYd1uwX05w3-+avZfz9d2a=8OD7VTMEv8Uo9AHLHrnu=k+Q@mail.gmail.com/T/#m1a3eedc831d8b27e5639b1d57e3af36a2b20f449
> >
> > > Also, do we need to add a new TRUNNER_LDFLAGS ? Why not just LDFLAGS,
> > > we also use CFLAGS.  Thinking ahead if we want add ASAN support later,
> >
> > Simple LDFLAGS and CFLAGS (not TRUNNER_*) did not work for me for some reason.
>
> I think LDFLAGS are not wired properly everywhere. But have you tried
>
> LDLIBS=-static ./vmtest.sh ?

LDLIBS=-static ./vmtest.sh -j 72 -- ./test_progs -t test_ima

works for me. Sending a docs patch instead.

>
> In my case I can't get libcap.a to be installed in my system, so
> compilation never completely succeeds, but I think it should get you
> what you want
>
> >
> > > maybe add a switch to vmtest.sh for choosing flavor to run would be
> > > better.
> >
> > I am not sure if we want to add a switch for everything. But I don't
> > mind if folks think it would be useful.
> >
> > >
> > >
> > > >
> > > >         # Mount the image and copy the selftests to the image.
> > > >         mount_image
> > > > --
> > > > 2.35.1.616.g0bdcbb4464-goog
> > > >
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index fe12b4f5fe20..2473c9b0cb2e 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -162,7 +162,7 @@  $(MAKE_DIRS):
 
 $(OUTPUT)/%.o: %.c
 	$(call msg,CC,,$@)
-	$(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
+	$(Q)$(CC) $(CFLAGS) $(TRUNNER_LDFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
 
 $(OUTPUT)/%:%.c
 	$(call msg,BINARY,,$@)
@@ -468,7 +468,7 @@  $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)			\
 			     $(RESOLVE_BTFIDS)				\
 			     | $(TRUNNER_BINARY)-extras
 	$$(call msg,BINARY,,$$@)
-	$(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
+	$(Q)$$(CC) $$(CFLAGS) $(TRUNNER_LDFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
 	$(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.o $$@
 	$(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool $(if $2,$2/)bpftool
 
diff --git a/tools/testing/selftests/bpf/vmtest.sh b/tools/testing/selftests/bpf/vmtest.sh
index e0bb04a97e10..a8bf6ceb3d06 100755
--- a/tools/testing/selftests/bpf/vmtest.sh
+++ b/tools/testing/selftests/bpf/vmtest.sh
@@ -155,7 +155,7 @@  update_selftests()
 	local selftests_dir="${kernel_checkout}/tools/testing/selftests/bpf"
 
 	cd "${selftests_dir}"
-	${make_command}
+	${make_command} TRUNNER_LDFLAGS=-static
 
 	# Mount the image and copy the selftests to the image.
 	mount_image