BPF List
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Ricardo B. Marlière" <rbm@suse.com>
Cc: bpf@vger.kernel.org
Subject: Re: [PATCH bpf-next v8 08/11] selftests/bpf: Allow test_progs to link with a partial object set
Date: Wed, 29 Apr 2026 05:07:16 +0000	[thread overview]
Message-ID: <20260429050717.53C37C19425@smtp.kernel.org> (raw)
In-Reply-To: <20260428-selftests-bpf_misconfig-v8-8-bf02cf97dbcb@suse.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Permissive mode completely breaks `test_maps` compilation if any map test fails to build.
--

commit 15e53592c403b04c6a911fd423e83a28f95d78e8
Author: Ricardo B. Marlière <rbm@suse.com>

selftests/bpf: Allow test_progs to link with a partial object set

This commit modifies the test runner linker recipe in permissive mode to only
link against test objects that already exist on disk, while keeping the full
list as order-only prerequisites. This allows the build to succeed even if
individual test files fail to compile.

> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index f0545ee6b32a..9a5177455f0a 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -767,14 +767,15 @@ endif
>  # some X.test.o files have runtime dependencies on Y.bpf.o files
>  $(OUTPUT)/$(TRUNNER_BINARY): | $(TRUNNER_BPF_OBJS)
>  
> -$(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS)			\
> +$(OUTPUT)/$(TRUNNER_BINARY): $(if $(PERMISSIVE),$$(wildcard $(TRUNNER_TEST_OBJS)),$(TRUNNER_TEST_OBJS))	\
>  			     $(TRUNNER_EXTRA_OBJS) $$(BPFOBJ)		\
>  			     $(TRUNNER_LIB_OBJS)			\
>  			     $(TRUNNER_BPFTOOL)				\
>  			     $(OUTPUT)/veristat				\
> -			     | $(TRUNNER_BINARY)-extras
> +			     | $(TRUNNER_BINARY)-extras			\
> +			     $(if $(PERMISSIVE),$(TRUNNER_TEST_OBJS))
>  	$$(call msg,BINARY,,$$@)
> -	$(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) $$(LLVM_LDLIBS) $$(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@
> +	$(Q)$$(CC) $$(CFLAGS) $(if $(PERMISSIVE),$$(filter %.a %.o,$$(wildcard $(TRUNNER_TEST_OBJS)) $$(filter-out $(TRUNNER_TEST_OBJS),$$^)),$$(filter %.a %.o,$$^)) $$(LDLIBS) $$(LLVM_LDLIBS) $$(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@

Does this change break the test_maps build in permissive mode?

The modified linker recipe applies to all test runners, which includes
test_maps. In permissive mode, if a test in map_tests/ fails to compile, its
object file is excluded from the linker command line.

Unlike test_progs.c which uses weak references, test_maps.c expects strong
references to all tests. The map_tests/tests.h header expands to
"extern void test_##name(void);" and makes direct calls to "test_##name();".

If a test object is excluded, will the linker abort with an "undefined
reference" error when linking test_maps, defeating the purpose of
permissive mode?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260428-selftests-bpf_misconfig-v8-0-bf02cf97dbcb@suse.com?part=8

  reply	other threads:[~2026-04-29  5:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-28 23:45 [PATCH bpf-next v8 00/11] selftests/bpf: Tolerate partial builds across kernel configs Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 01/11] selftests/bpf: Add BPF_STRICT_BUILD toggle Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 02/11] selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels Ricardo B. Marlière
2026-04-29  3:53   ` sashiko-bot
2026-04-28 23:45 ` [PATCH bpf-next v8 03/11] selftests/bpf: Tolerate BPF and skeleton generation failures Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 04/11] selftests/bpf: Avoid rebuilds when running emit_tests Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 05/11] selftests/bpf: Make skeleton headers order-only prerequisites of .test.d Ricardo B. Marlière
2026-04-29  4:24   ` sashiko-bot
2026-04-28 23:45 ` [PATCH bpf-next v8 06/11] selftests/bpf: Tolerate test file compilation failures Ricardo B. Marlière
2026-04-29  4:38   ` sashiko-bot
2026-04-28 23:45 ` [PATCH bpf-next v8 07/11] selftests/bpf: Skip tests whose objects were not built Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 08/11] selftests/bpf: Allow test_progs to link with a partial object set Ricardo B. Marlière
2026-04-29  5:07   ` sashiko-bot [this message]
2026-04-28 23:45 ` [PATCH bpf-next v8 09/11] selftests/bpf: Tolerate benchmark build failures Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 10/11] selftests/bpf: Provide weak definitions for cross-test functions Ricardo B. Marlière
2026-04-28 23:45 ` [PATCH bpf-next v8 11/11] selftests/bpf: Tolerate missing files during install Ricardo B. Marlière

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260429050717.53C37C19425@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=rbm@suse.com \
    --cc=sashiko@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox