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