From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1285F38C2DB for ; Wed, 15 Apr 2026 20:59:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286776; cv=none; b=Ic2C7Ld3VH/FXK3UrPRtzWDD5HnvMh+CnIGwtk86vhM61dey8Gdnn5D0q0p0/bWB2D5TVG2hM00fgg2dBljPUFFO1+BpJjaGSlSVKz1EtZI4R48hvGAsMARdzdyjcZ54TJDybNA/w0OuH2LvviRCC8z9iZmKsYTtij2E6ogtG3g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286776; c=relaxed/simple; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EV5DVBfbkhfo08tcPC9yWUGbqAupuZryV6I9NEEb1Q660tgF2WyogRSOZmGueD5Hf4PZ2GnjCYRLI/RBbieHOLbwi345P/+Kfr2S25uGdt1mOTOjzv2jYwC1xefy+mMj0aO8iPJzwE9xbrLT4EmOmAW/PyLW2K49yF78m/QCa3g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=UO6xBlmq; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="UO6xBlmq" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4888375f735so72231345e9.3 for ; Wed, 15 Apr 2026 13:59:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286773; x=1776891573; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Sg2etNAfQKZBd7rcNCY3p33XRFv6QLBK/6YkWrjaoRM=; b=UO6xBlmqDVBc0rPzQXvG9lOWiReITyiPcTQ7ZwnlUAYuMuk7jUq1S3xYMdAbYdaYh5 l+fO09VyoopGQXmw974+vosU8axuUd92LTjwttgndsAHy4L6u6VP4somV00FvBwTPRRO uGBi144giY35IPE56yObbdNKKI1Vb44vgG87o6V7Kx02RFQeX6bXS559YKTpmjXAl9DR fk8KeV6VGcchCqXMJ/bDZgX+VpLgA/8CNw+E3jf+aXKklocuhaR4VsyUmsnHsA+VNQ+S 1nEM1c88yPl0x9nV66gvtKzBng9KW+0jbAXSRmy8Ix3FA2U9gux5l3dOyIJceBG1eCO0 r/2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286773; x=1776891573; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Sg2etNAfQKZBd7rcNCY3p33XRFv6QLBK/6YkWrjaoRM=; b=mBkdI4wnxOfwZdxPjOGg2CneFvX3TLSoDplqWpC5nXKgR2BN1IWnkTTvGTA5Ll8SuR urEWus0JIcR4G7r295TOyYlalc9GIDN3OKEQ3tyFo9eZZet74BLH40efVZFF7tq1pMvq 01wEjCUzU1LiVIi+OZ7MnxQWsudsp2N/Fdu6qzXcA5B7rvv4SNScRUTp9+FTlYqFRBpK 7E/QPEuPS54nGc36Y+fum8miZJuMvKUI9jaglfqhvCExJaNM7G/XmPh2Jd16Yt5VIEj0 Mz7hyJRWdo6n12EIykaKzUWuc4ITdIefixn6Vhi+51nwDFIuHgIStJjyy9YVGZdz1gsi iA5g== X-Forwarded-Encrypted: i=1; AFNElJ/Gj1SwE5HGzn0Ax7NU9Ase0vBxwt35BWzponMjwOa+8fCmQz9BgwrJuadyeF2mYuo/APyCYBiGhF/l1qc=@vger.kernel.org X-Gm-Message-State: AOJu0YyzZtdzTe7L44HTgStxUfZxE4t4WPpE+JyiWscS0zPVgp7genjQ Ij9dR5v25d8JKwjtAfbQnW5hi9cFcsNDwd9YKRYPUUWn37gC6LnG5TGsIybRbLjuBj4= X-Gm-Gg: AeBDieu846k1klUr4m5iMMqyV5jHjmMMbao5WJhoLiLKXRCFN+Mgp8saw04hFVR+uhj 4OdWqckyMjJul238GSaY0Gh6Gh1Z25if0tB7rvIELw8UmcOsMoNmfECq4PRrVtkUigieA2xrsEc CYZivJU/Dl7LF4+osZj0xlDebAK+8NeNKkJcUm+trP+uPxq/QTstiQbc5KXGFw9U4Jxh4wPtxPG VIlJTJj/aEzP9JE/dg9ikdQfm3iN+7lFNOW+PiUIir62p1au4t7S1VAoPp2No7WhlNHPv6iZIrY zCqxSe461TzkhQLd/Eko8E88p9aF5sHw3j3GXcYw72VgbwbwwYE/gGwNQDVQqzQgXOzppxPkztx c/TI2LTQZwdRjmBciWf9jkPDyKjX1PKijeeWbwzZssP490DPE0lFyHN5Wy7TD/yawVMYRc/RGO3 Roc3lAE2ijEz0= X-Received: by 2002:a05:600c:4e48:b0:486:fb0b:ad79 with SMTP id 5b1f17b1804b1-488d6858368mr328090195e9.20.1776286773498; Wed, 15 Apr 2026 13:59:33 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c606925sm5430460eec.12.2026.04.15.13.59.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:32 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:19 -0300 Subject: [PATCH bpf-next v5 01/11] selftests/bpf: Add BPF_STRICT_BUILD toggle Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-1-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286764; l=1377; i=rbm@suse.com; h=from:subject:message-id; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QFYAv4WgAhzm3x9f07EKaYC1RXISsv6qSmiucrI5tHvTzF/Rk1cy8FTrC/AbeumqsIE8ElCxr0k 76aamKQT2lgM= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Add BPF_STRICT_BUILD (default 1) to control whether BPF compilation failures are fatal. When set to 0, failures are tolerated and skipped objects are reported, as implemented by subsequent patches in this series. When set to 1 (the default), the build fails on any error, preserving the existing behavior for CI and direct builds. Users can opt in to permissive mode on the command line: make -C tools/testing/selftests \ TARGETS=3Dbpf SKIP_TARGETS=3D BPF_STRICT_BUILD=3D0 Suggested-by: Alan Maguire Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 78e60040811e..c8ba8ccc2c6d 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -44,6 +44,12 @@ SKIP_LLVM ?=3D SKIP_LIBBFD ?=3D SKIP_CRYPTO ?=3D =20 +# When BPF_STRICT_BUILD is 1, any BPF object, skeleton, test object, or +# benchmark compilation failure is fatal. Set to 0 to tolerate failures +# and continue building the remaining tests. +BPF_STRICT_BUILD ?=3D 1 +PERMISSIVE :=3D $(filter 0,$(BPF_STRICT_BUILD)) + ifeq ($(srctree),) srctree :=3D $(patsubst %/,%,$(dir $(CURDIR))) srctree :=3D $(patsubst %/,%,$(dir $(srctree))) --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2EECE38C2A9 for ; Wed, 15 Apr 2026 20:59:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286781; cv=none; b=fBtYO/7wUF2/OjugD3yeub1vOhFmwyLzPl37TUgp9/JLR0eb+q1p19KSejxGiecTocB1oe6BatFvUJuFzORAze8w1o6kXzL71IiR+XR325IX+GGvEkZQ68VyIRhdQN9gDg4zCqaw3FDRmTd0i0nCqKvU1N8xoT1lfGY3Y5u/B08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286781; c=relaxed/simple; bh=+kWvOBx4rqawz2mTUlUsnpWSyI2UI+9G8NEPnIz/3AE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gD5agNdS3H7K2ookCDCp5KTmN1D1FxABZYv1rVNqILFaFenyD+m1UFKOv6Z1y6t2Q1webJ1gDdXsLYqdlqFPPDYj92SruvPfmmX2GYufUZn6Lj/n/Ub31++GnXRfJXVNbR/Pujm3eiPz5ZwVKCFbcU2NZpyPLCqCG2mDet0JtKw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=UpJ2t6bq; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="UpJ2t6bq" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4887f49ec5aso87650805e9.1 for ; Wed, 15 Apr 2026 13:59:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286778; x=1776891578; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=nhxRSOXgksPtZIm+YtJv0n+SeIRWIfViVplH8pw/2xg=; b=UpJ2t6bqLLggg8d5fS9iP2LqeGJxTmGLRrv2ZlDTMchtEadAB/b2m++kFtJXT+AYHh tW7Yx09DXE0vj0CA+9be9sGqn7pzOlWqEZA0sWyyABAxO+GSpzlbo7q+KNXfOuCIcEfs q/uXd0uzNUt+dINSwxlO1xnadJyWLChOV81DPfOdAyCD1XECmkwT890+7N33HMATlNP+ juT4eqQ2Vqz/ww+m5wZS+5xruWjQYsbgnAph3+F2baad1jgZBsgp3tAILzJnKDZJLKgZ JzAk8kVYcQLeDv3m57n0U5eNcX8aZ7509rEA2FoM5q+XhPmBIGS17du/27rQIazxmL3V dlRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286778; x=1776891578; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=nhxRSOXgksPtZIm+YtJv0n+SeIRWIfViVplH8pw/2xg=; b=gepCMjlOAZvNi/5cDvhlx9oMBN24ulKLFgjZDR6jlerGbMrTF+Uab/lObRyF0OMvL4 U2PXPmyOLP3G1aAtyy9aEStaOmfME4FG802AQmDyGI4Ho7XWhP2pHMbtXaFBjMJfgcyV PvGisLwRm0pw71fimg4IaRgroPOPldDXkjxnr+LrMSrYW5DPQyxIg+zGbeeJyffk8riC /+HVK4vwOklSNxNXdcOx64Q+sPnUy8OZTcM2zTdqcWATVnR8lDfAfsAh3LtMmakUQ5cc urjrpXRpwjQrUe9T+MFMGEc4htE8G50/9vtErppjDKJHUACJQdu28V4Ck0y8sqJ1jAfQ Gpig== X-Forwarded-Encrypted: i=1; AFNElJ9nJGq1zJnIYxQc7WwSTauLsk0vTfshYhXSA91BwMx9/D5OAlKP/jTJCloEnV/x4S5jYx2VHEwchrhT1RQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyBg2sdnsIpeFslzGN9zEIZEkGN68uwklgMVAj2J8XYJBIXlS8o qFksMPCmUgvyUjE8PI5jOEKivYjtnTEi5fP8dCQwnUEYgthgQ4u/NmHJFVVIMtm/Gdk= X-Gm-Gg: AeBDietg+hAUHf9YJZhtD+oxbEemReu00/D/ihOx4Hzi5L1fvhDxLpA4CDrVRgXShXp I8C2vSZLfTZElKvErW+2ROLN/Tx2rzNMmqZExJWxEDe0TLxsxmIFppRP0Kuqw5X8xkwk+2369bv CRUM5q0IkMnOsR7D7WKnW2KTun+0FpMs58vxu+oE2NGahqDdlbvLPsw/Wmt/rt3hosQIpcrJn7F Y3MsZWihFlCXaKMsrVNozHjGxIDtfVrGnX41BrR2n0YdfqdtQt1ywKvc6xDZyEpg1SSHExjNU75 O9C/AeJwNOsoflf3mTuqP8S/IvCP2CxnOzRmsP+BwQmF0rxFvqaQ+rqjgyFy5ehGIjmC/vsy3/a 9JaT0k3uDLSdK7giHFo5St3QetLz55Hc5t0GB39eCWFjtR2K1xAvT5iRJs3jKsODjgrV+g6UAZU vzww0PuPTtETC0eY2Z24tMvQ== X-Received: by 2002:a05:600c:4215:b0:488:d9ea:3da7 with SMTP id 5b1f17b1804b1-488d9ea3e0cmr186909635e9.10.1776286777618; Wed, 15 Apr 2026 13:59:37 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f960dd1sm4349265eec.25.2026.04.15.13.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:36 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:20 -0300 Subject: [PATCH bpf-next v5 02/11] selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-2-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286764; l=3353; i=rbm@suse.com; h=from:subject:message-id; bh=+kWvOBx4rqawz2mTUlUsnpWSyI2UI+9G8NEPnIz/3AE=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QHw9iObBL2lYNYLPF4X+24/9V1YHI1I/Iy4F5roXbaVvsXhqCbcE4EIjR5Dj196KLRJ7pvW5mKf AXaBLXgqEDwQ= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g test_kmods/Makefile always pointed KDIR at the kernel source tree root, ignoring O=3D and KBUILD_OUTPUT. On distro kernels where the source tree has not been built, the Makefile had no fallback and would fail unconditionally. When O=3D or KBUILD_OUTPUT is set, pass it through so kbuild can locate the correct kernel build directory (Module.symvers, scripts, etc.). Note that the module artifacts themselves still land in the M=3D directory, which is test_kmods/; O=3D only controls where kbuild finds its build infrastructure. Fall back to /lib/modules/$(uname -r)/build when neither an explicit build directory nor an in-tree Module.symvers is present. Guard both all and clean against a missing KDIR so the step is silently skipped rather than fatal. Make the parent Makefile's cp conditional so it does not abort when modules were not built. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 2 +- tools/testing/selftests/bpf/test_kmods/Makefile | 24 +++++++++++++++++++++= --- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index c8ba8ccc2c6d..5c4cdf1dafc8 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -296,7 +296,7 @@ $(addprefix test_kmods/,$(subst .ko,%ko,$(TEST_KMODS)))= : $(VMLINUX_BTF) $(RESOLV =20 $(TEST_KMOD_TARGETS): $(addprefix test_kmods/,$(TEST_KMODS)) $(call msg,MOD,,$@) - $(Q)cp test_kmods/$(@F) $@ + $(Q)$(if $(PERMISSIVE),if [ -f test_kmods/$(@F) ]; then )cp test_kmods/$(= @F) $@$(if $(PERMISSIVE),; fi) =20 =20 DEFAULT_BPFTOOL :=3D $(HOST_SCRATCH_DIR)/sbin/bpftool diff --git a/tools/testing/selftests/bpf/test_kmods/Makefile b/tools/testin= g/selftests/bpf/test_kmods/Makefile index 63c4d3f6a12f..10f202bd0d8c 100644 --- a/tools/testing/selftests/bpf/test_kmods/Makefile +++ b/tools/testing/selftests/bpf/test_kmods/Makefile @@ -1,5 +1,7 @@ TEST_KMOD_DIR :=3D $(realpath $(dir $(abspath $(lastword $(MAKEFILE_LIST))= ))) -KDIR ?=3D $(abspath $(TEST_KMOD_DIR)/../../../../..) +SRCTREE_KDIR :=3D $(abspath $(TEST_KMOD_DIR)/../../../../..) +KMOD_O :=3D $(or $(O),$(KBUILD_OUTPUT)) +KDIR ?=3D $(if $(KMOD_O),$(SRCTREE_KDIR),$(if $(wildcard $(SRCTREE_KDIR)/M= odule.symvers),$(SRCTREE_KDIR),/lib/modules/$(shell uname -r)/build)) =20 ifeq ($(V),1) Q =3D @@ -14,8 +16,24 @@ $(foreach m,$(MODULES),$(eval obj-m +=3D $(m:.ko=3D.o))) =20 CFLAGS_bpf_testmod.o =3D -I$(src) =20 +# When BPF_STRICT_BUILD !=3D 0, a missing KDIR is fatal (the default). +# When permissive, skip silently. +PERMISSIVE :=3D $(filter 0,$(BPF_STRICT_BUILD)) + all: - $(Q)$(MAKE) -C $(KDIR) M=3D$(TEST_KMOD_DIR) modules +ifeq ($(PERMISSIVE),) + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) modules +else ifneq ("$(wildcard $(KDIR))", "") + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) modules +endif =20 clean: - $(Q)$(MAKE) -C $(KDIR) M=3D$(TEST_KMOD_DIR) clean +ifeq ($(PERMISSIVE),) + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) clean +else ifneq ("$(wildcard $(KDIR))", "") + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) clean +endif --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A120238C438 for ; Wed, 15 Apr 2026 20:59:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286784; cv=none; b=MGKL38c7IRBllzsWn1mehrIfp5HOFKGIVLakCAAKZq/RqR/wA1HfVHk7d4b3KpKnG0TfSO7Ie91A7S3Y+rIcGs5G3XFBTg5pK/MC50KFpBQ4dL061JuCe+jO6GV0D5xFL7oGkrsYpjQqQ2B1Qn16Jcq2hR7YpBbx0QdPINxGymc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286784; c=relaxed/simple; bh=FhjfANddcaEijUdTgR5u6m0jgGERKsEm980Hv5Uy4zY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IfZqxXhHhIz46FE2XDTEryGBTFZGIuScdYDc3GGe0s3J0WqKAgFM6G8ERmkRlF9wGeH0WbRZdtBnzDevt6OdGOrrym8gO4ZhGn135tUNCAYp419Co6Gq1MV6a01YQKSNVLcxlZ4Zi2ZOa13It0PIhmmasvDhJ3K/E946pnSh2eY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=dX/MItMw; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="dX/MItMw" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488e1a8ac40so66005565e9.2 for ; Wed, 15 Apr 2026 13:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286781; x=1776891581; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=RUqHI/ssQrLIALRlyiIzc3ygk+501f0qcP0OQItY+xI=; b=dX/MItMwDTUEFjB0mfFwCVMlJZArEvSskeenBypQ5gmQRCXi2HSy5qFjAYk4Qfo5nK QF9hZj9T4g9oWp59NfzXgnpHvyW/gUsPPRGlk+hr1+yZp9RsuhO0OgSiC0jmzmf2MPFu Xkd0BBp+uUozl0ojoOpwHx3N2BxqXkhGWLfhIoqA8qrWcI/nt7SAHPv40jgipa59FkGR 3UMNxWKNtZQQHx/zKJkycw1esh/r6RsuG2GnKAoq4bv2bH3IfnoD3WcA9ZT7pOgn6+JN wMG1QVn5S3XzB3cfKZgprSUV6Q4Jsjf3W+gFdploCwabRDJ91hbFRjsO2yyWYxQcKI/R gCpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286781; x=1776891581; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=RUqHI/ssQrLIALRlyiIzc3ygk+501f0qcP0OQItY+xI=; b=ZRsTjlKvUbbfJnpNawFh0Jc47QYWNPUSOMPhvZs3CYYAT4OL67daxah7JsCGbYI+KB wHhEIOHsUJ+q39lIVRfzignKmCH30qOnuT0MWjLG71LiLIC9H2hZr5s6dS/zYFLCWDEA Ukz7MZOzlLVOeIEXjzmjG3XcOqQIB9qz0aPTqhtH26kAS/pY5IYKPqnxhUeegzt/l3Jy 6AWxg2cotljdEt08EXuuyQmzFYHiucBtpGIaUTGrJEslH1A/SP/svbPB/KHIpnptZLwH nrmeugblZmEjQAxfXcMLR2QWwqZxO/on5gA4QRfjdlZuAduv4FOk+/EU7ey2rsHmp2Cl 0a/Q== X-Forwarded-Encrypted: i=1; AFNElJ/39zpe6LDEQwOpGGkKWJYBbkLCxSVX8WnI8Y03dL/gK6JOxfi4jEBBOnGciHT7emrqNw9w3eFjHNjvZwM=@vger.kernel.org X-Gm-Message-State: AOJu0YxQElZ0SbsrCroktY/C1pjeKJhFUMihy2g7B4NqELfopm+lyf6c RUj9I9hSk4xB2E4nkREqRmuSVC07hYnTAcfvZQZQU+eBPANF3RcPXaC4JliezZ/rZdc= X-Gm-Gg: AeBDies4+hgz4EihdswAQf6cyMf04AC5TqnW8Uc+oMzPkd0Ub1JO65qmeyqZ4Z5rjTW p1C7XRoqvaNcEY2chJo1cUlQDDwLkaR3/gpiWvL8Wzf0F4zbkwa3Y399abo4MwKsRTpBuUyKoe2 mq2ZdoEmzTEVHd8LU3RP8G8KmB/SAvDjw7+PGlziwZjhKJxVk06SBBJmfSfcHDvNlv7qwObWoZI sJW7UqYzVw5DxWCWtM02r0LhzuPuQOVcTC5KIUcGQpjJbeUYbgLo54TliYkShZ2kJynaQSwcVfw ZOwpK9CIcUueZNbKUc2qqYcKQEOlkZS47qdhBZfvSenynVh5Le2KLeluNJbe4lNxj4QIr2TxacJ F3jM1qUdtqMkLwyavVOJ02m6JcL7AJiWlqIJQxIAUw7Li4grdBXR9F6hX06KOwa8livofKTFXJ7 XGI5jl1cIg51c= X-Received: by 2002:a05:600c:4443:b0:488:8577:d9cc with SMTP id 5b1f17b1804b1-488d686be7bmr307907335e9.20.1776286781028; Wed, 15 Apr 2026 13:59:41 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c641d18a7sm107625c88.0.2026.04.15.13.59.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:40 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:21 -0300 Subject: [PATCH bpf-next v5 03/11] selftests/bpf: Tolerate BPF and skeleton generation failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-3-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=9192; i=rbm@suse.com; h=from:subject:message-id; bh=FhjfANddcaEijUdTgR5u6m0jgGERKsEm980Hv5Uy4zY=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QPiG33HXXQ/XXdT0fxBafTp1XGhE0Cb1jCBDTNDylBsgrSLto8jl22v7/Qu6R6pCHymRomnyf4U ZAPzyN+qZiA0= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Some BPF programs cannot be built on distro kernels because required BTF types or features are missing. A single failure currently aborts the selftests/bpf build. Make BPF object and skeleton generation best effort: emit SKIP-BPF or SKIP-SKEL, remove failed outputs so downstream rules can detect absence, and continue with remaining tests. Apply the same tolerance to linked skeletons (TRUNNER_BPF_SKELS_LINKED), which depend on multiple .bpf.o files and would otherwise abort the build when any dependency is missing. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 104 +++++++++++++++++++++++--------= ---- 1 file changed, 69 insertions(+), 35 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 5c4cdf1dafc8..a305d13409e4 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -477,22 +477,26 @@ $(OUTPUT)/cgroup_getset_retval_hooks.o: cgroup_getset= _retval_hooks.h # $4 - binary name define CLANG_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv3 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv3 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Similar to CLANG_BPF_BUILD_RULE, but with disabled alu32 define CLANG_NOALU32_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv2 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv2 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Similar to CLANG_BPF_BUILD_RULE, but with cpu-v4 define CLANG_CPUV4_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv4 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv4 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Build BPF object using GCC define GCC_BPF_BUILD_RULE $(call msg,GCC-BPF,$4,$2) - $(Q)$(BPF_GCC) $3 -DBPF_NO_PRESERVE_ACCESS_INDEX -Wno-attributes -O2 -c $= 1 -o $2 + $(Q)$(BPF_GCC) $3 -DBPF_NO_PRESERVE_ACCESS_INDEX -Wno-attributes -O2 -c $= 1 -o $2 $(if $(PERMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef =20 SKEL_BLACKLIST :=3D btf__% test_pinning_invalid.c test_sk_assign.c @@ -598,47 +602,77 @@ $(TRUNNER_BPF_OBJS): $(TRUNNER_OUTPUT)/%.bpf.o: \ $$($$<-$2-CFLAGS),$(TRUNNER_BINARY)) =20 $(TRUNNER_BPF_SKELS): %.skel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked3.o) $$(<:.o=3D.linked2.o) - $(Q)diff $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) - $(Q)$$(BPFTOOL) gen skeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.b= pf.o=3D)) > $$@ - $(Q)$$(BPFTOOL) gen subskeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<= :.bpf.o=3D)) > $$(@:.skel.h=3D.subskel.h) - $(Q)rm -f $$(<:.o=3D.linked1.o) $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.= o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked3.o) $$(<:.o=3D.linked2.o) && \ + diff $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) && \ + $$(BPFTOOL) gen skeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.bpf.o= =3D)) > $$@ && \ + $$(BPFTOOL) gen subskeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.bp= f.o=3D)) > $$(@:.skel.h=3D.subskel.h) $(if $(PERMISSIVE),|| { \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }); \ + rm -f $$(<:.o=3D.linked1.o) $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) =20 $(TRUNNER_BPF_LSKELS): %.lskel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) - $(Q)diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) - $(Q)$$(BPFTOOL) gen skeleton -L $$(<:.o=3D.llinked3.o) name $$(notdir $$(= <:.bpf.o=3D_lskel)) > $$@ - $(Q)rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinke= d3.o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) && \ + diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) && \ + $$(BPFTOOL) gen skeleton -L $$(<:.o=3D.llinked3.o) name $$(notdir $$(<:.b= pf.o=3D_lskel)) > $$@ $(if $(PERMISSIVE),|| { \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }); \ + rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) =20 $(TRUNNER_BPF_LSKELS_SIGNED): %.lskel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OU= TPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY) (signed),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) - $(Q)diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) - $(Q)$$(BPFTOOL) gen skeleton $(LSKEL_SIGN) $$(<:.o=3D.llinked3.o) name $$= (notdir $$(<:.bpf.o=3D_lskel)) > $$@ - $(Q)rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinke= d3.o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY) (signed)] $$(notdir = $$@)' 1>&2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) && \ + diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) && \ + $$(BPFTOOL) gen skeleton $(LSKEL_SIGN) $$(<:.o=3D.llinked3.o) name $$(not= dir $$(<:.bpf.o=3D_lskel)) > $$@ $(if $(PERMISSIVE),|| { \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }); \ + rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) =20 $(LINKED_BPF_OBJS): %: $(TRUNNER_OUTPUT)/% =20 # .SECONDEXPANSION here allows to correctly expand %-deps variables as pre= requisites .SECONDEXPANSION: $(TRUNNER_BPF_SKELS_LINKED): $(TRUNNER_OUTPUT)/%: $$$$(%-deps) $(BPFTOOL) = | $(TRUNNER_OUTPUT) - $$(call msg,LINK-BPF,$(TRUNNER_BINARY),$$(@:.skel.h=3D.bpf.o)) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked1.o) $$(addprefix $(TRUN= NER_OUTPUT)/,$$($$(@F)-deps)) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.lin= ked1.o) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked3.o) $$(@:.skel.h=3D.lin= ked2.o) - $(Q)diff $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked3.o) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen skeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$= (@:.skel.h=3D)) > $$@ - $(Q)$$(BPFTOOL) gen subskeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir= $$(@:.skel.h=3D)) > $$(@:.skel.h=3D.subskel.h) - $(Q)rm -f $$(@:.skel.h=3D.linked1.o) $$(@:.skel.h=3D.linked2.o) $$(@:.ske= l.h=3D.linked3.o) + $(Q)$(if $(PERMISSIVE),for f in $$(addprefix $(TRUNNER_OUTPUT)/,$$($$(@F)= -deps)); do \ + if [ ! -f $$$$f ]; then \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi; \ + done;) \ + printf ' %-12s %s\n' 'LINK-BPF' '[$(TRUNNER_BINARY)] $$(notdir $$(@:.ske= l.h=3D.bpf.o))' 1>&2; \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked1.o) $$(addprefix $(TRUNNER_= OUTPUT)/,$$($$(@F)-deps)) && \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked1= .o) && \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked3.o) $$(@:.skel.h=3D.linked2= .o) && \ + diff $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked3.o) && \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2 && \ + $$(BPFTOOL) gen skeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$(@:.= skel.h=3D)) > $$@ && \ + $$(BPFTOOL) gen subskeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$(= @:.skel.h=3D)) > $$(@:.skel.h=3D.subskel.h) $(if $(PERMISSIVE),|| { \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }); \ + rm -f $$(@:.skel.h=3D.linked1.o) $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h= =3D.linked3.o) =20 # When the compiler generates a %.d file, only skel basenames (not # full paths) are specified as prerequisites for corresponding %.o --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01A7238D687 for ; Wed, 15 Apr 2026 20:59:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286787; cv=none; b=nHBEoCafSA4IQOoZvy8BFtQPKCmBCLB9VBzepgW1wivlcM0uW4uhK6gRtlEWEp5eupzNbfSZWLBiUYAgszQyPnWEhKkK971q0xyC4V6XUjnp1Lic7dOLqu6pksdECTM8kixStf5Q8PAEp27ve09exkT4q6nmWY1xAmB8KtmkhoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286787; c=relaxed/simple; bh=jf/lYASugDruBo2CvozLAvQJRNcmvI/0KtRg+oBQlXw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Zchr5lW19kEcKNfqLRXii3LCHl23UTFsTw5b03m+U3ZpHG8wJSnmFpLrANx/8KIpbw7uI85vVp/XMlQtaq8jcgv0TnNSHFbv/scPCMONayYg2riB8fB35+F+ZrB5pUovJNoXkaXtmIDa/xwXZv/U4h4vz4RyfzENVlwjSbKn5mA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=SamwDOqy; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="SamwDOqy" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488a4bc360bso40430815e9.0 for ; Wed, 15 Apr 2026 13:59:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286784; x=1776891584; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SWBVVAIazNyVJhptvtVZua+eaWOgIyfcbCtd+y2obXk=; b=SamwDOqyW/w8M2PzaWd6Wd30tOvyVY0ZDLJn6iSrEbv5gi+9G18OqBPcLRrzypNr6/ yOnCXn/25VQKpa/XrzAeHHAnQw2u7Q16+uEhdGMkN5C38aAYQgRo2whLnhspeglEdi5f EmTAsHV6FJ+nCMmwQ4s1rhuCzm3svOduuMQ6GA3JGDCmd2WmKZ8McTavxde1dmGuAMbx 4lGOELLuBKGe2JmEYPIYDLmC84+uxtr0u8gifzLzwS/NVBjwU+7m59f14lC3lXMkvM07 Nk02QiSy2K2VJiJ5SVH8QuOi5oM3CWNFyPRGO6gQ6SuGpo6ZfFWjeTW7mWi3TRKKBrYR dTDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286784; x=1776891584; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SWBVVAIazNyVJhptvtVZua+eaWOgIyfcbCtd+y2obXk=; b=qaH4kLJQff5CHdWgv6+WTw/e6WxJPEUGYihzcDA3IuOuR0JeXmH06UoqkoszB+3KES q3FPXlDDSX+CwcV6bvi39GAVaTMRggl3Rph87mgO37THoPWTfz5YiITG/gjqgUa1FKtS T18OD1p3CZSC8+8NAoeP7E8PCyvGHbf4TdUqm1R6wZcN4XJB3k6lTPlFUgU37mImEw2U 6cUEt4dmKOQwvqlElpu0KldekMTrN27giBcImZqRYowZKwUzCpLZEciv3ZEuW+lhAqsZ in8IDuu43RpaabYmXGFcEfoCnWJq57MREhPToS8MR9v01QASgkwpZKheriV+DMdRGx30 N9VA== X-Forwarded-Encrypted: i=1; AFNElJ98gIqrzzwRWGcPJxyG/DGsg6cWPrOdcTiszMDas1VC5tzzX3CtZ3CTwJIaC/xlJNIS57GMRrHkf5ZLULI=@vger.kernel.org X-Gm-Message-State: AOJu0YxVqn4TknNkpap+rDx9lhZvMcHSwpJNJkO/xUzC1hepAA4GV5vP ihYfAbw9japdcBYgguD+ozIbb08aEWaGZmEOPLyi5Rhk58qk6CR9LBXQYL5dl/HUsP0= X-Gm-Gg: AeBDievp04WTUxfGYPp2JEyuA+doUq+hdn5npC/ELCZpC894HbMXbCAnGpGo35tLkb8 THiD4DlFLiVJbvu3Z72rF7hfK8xr2m1Euvxm7t9B6o1awXzSQJZawk4f9DLbSErWTCliVSqbPXi zJBydMbhx2YueFWP4hC9Ec/Wak9DqB0QNzdhVbh9WzxQQpwCPd42cnXVyD6BTbrg11FznAqW2ju h8TvTx8mLiT4alwGaPt7caF/rN248r4wRh9p/UVvSSAYViRitJgQF+Gld4ARXOf2LbE85xjKoJZ f3AbDIsIvJXWaP1GA0XZYjZseOi6gkjADQZiP6u1Kf8PtX2oCHDQQ/pQZDxUhf0c33Eqa5yRr9G GgzxXl91rAS0iOsVnMQqyk4wqp0lQWq64wFqPK/kIBEu0OU5Zr8XQdKE86q0Emf79N9Mmz3KaZc iAgWMZ0ryC8h0= X-Received: by 2002:a05:600c:c0da:b0:485:4bd1:4c64 with SMTP id 5b1f17b1804b1-488d68a10e2mr277440585e9.31.1776286784356; Wed, 15 Apr 2026 13:59:44 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c90cd7esm5413125eec.13.2026.04.15.13.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:43 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:22 -0300 Subject: [PATCH bpf-next v5 04/11] selftests/bpf: Avoid rebuilds when running emit_tests Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-4-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=1555; i=rbm@suse.com; h=from:subject:message-id; bh=jf/lYASugDruBo2CvozLAvQJRNcmvI/0KtRg+oBQlXw=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QM34cirDbmhRm1nPaul7h/ospSnIGvJSl3eEH1VlVZwcLyto9/noFt/cTRess+j3NXHabjG9xfF M1J6t43xiUgc= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g emit_tests is used while installing selftests to generate the kselftest list. Pulling in .d files for this goal can trigger BPF rebuild rules and mix build output into list generation. Skip dependency file inclusion for emit_tests, like clean goals, so list generation stays side-effect free. Also add emit_tests to NON_CHECK_FEAT_TARGETS so that feature detection is skipped; without this, Makefile.feature's $(info) output leaks into stdout and corrupts the test list captured by the top-level selftests Makefile. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index a305d13409e4..040617c01bbb 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -164,7 +164,7 @@ endef =20 include ../lib.mk =20 -NON_CHECK_FEAT_TARGETS :=3D clean docs-clean +NON_CHECK_FEAT_TARGETS :=3D clean docs-clean emit_tests CHECK_FEAT :=3D $(filter-out $(NON_CHECK_FEAT_TARGETS),$(or $(MAKECMDGOALS= ), "none")) ifneq ($(CHECK_FEAT),) FEATURE_USER :=3D .selftests @@ -719,7 +719,7 @@ $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.= d: \ $(TRUNNER_BPF_SKELS_LINKED) \ $$(BPFOBJ) | $(TRUNNER_OUTPUT) =20 -ifeq ($(filter clean docs-clean,$(MAKECMDGOALS)),) +ifeq ($(filter clean docs-clean emit_tests,$(MAKECMDGOALS)),) include $(wildcard $(TRUNNER_TEST_OBJS:.o=3D.d)) endif =20 --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1218838D6B1 for ; Wed, 15 Apr 2026 20:59:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286791; cv=none; b=T4KQTCFQiBArklbJNidPeuL01qZSd/9/Aclix1C2Og6Ep6UsA6VsKQrHrxkhWMh1ft9SWZMtldTOQSoXouETewkyuyliYSb+ekibAJ/0w5O9yKMjRFFw01yG3WeduCEHE5YjNfbjRX03onUSgvMooA3t3tPLe01JeJRSz+6+l5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286791; c=relaxed/simple; bh=Dr4PihMoMr3qRKNSDl7IrxVJ9HeBlG623zgxVHaeaQ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o7xlPJ7d87+8IYRa40ZWwZryACj0rn2fjx2LsphQPBJeauXpkUmI8UEvENSKQ2Hq8+6K/1YTHZNnWIPwcZMwua6ZgudPS59BHzYd7YTaszoJazy5DcGmj167vtXRh4rnSthgMk/Ju6hlA9pQm5MEioJUchqiHb4YvDeS2y0Eu+E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=MYqJi0HC; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="MYqJi0HC" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4852b81c73aso67787865e9.3 for ; Wed, 15 Apr 2026 13:59:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286788; x=1776891588; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HFBLQbbwJlUBHhR630uwL3PndoUaJYspuC1LBCHiL9A=; b=MYqJi0HCydTQp86v/hFbx6c5FmsOJJKWo27vVhVSkKtWEzpDCXOqYG/9Zn9uti0+8F ICvTJou7Xet9lMXHD+4UUI5IqK6Nl0DPJm/1qznQHovAq7XY5jLPiZvgnxvBCkz3TPmn I97rHQlT4x+3yIPU5io4hX/zfTHUJeu8BlglLRdOWCkeZasTziDzYL22i6+BZpJZIEAJ 7m/5W6fajU2MC+/yccoKeykozhF3L8FZVtREjLyB/Ve7Z0CbBOUSclZsoPrdMcKapQjb P1zDKeb7qIoRN2+P5Pn/TW9OGc/b52odStlSSUAioGPGu3O7Br4mzBxMlN/s6zkAYpVN tsAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286788; x=1776891588; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=HFBLQbbwJlUBHhR630uwL3PndoUaJYspuC1LBCHiL9A=; b=aOQxfFcwMQv5Ehgw9DTxFg+LSgaIJdH35YHrpklSX/VTQW7Pbz5hj0vvFt3xTGUcuY 51NCJgMnoFPNWDmcyHj7UY2bZBqzXN31Zq5GfHH6B7UYiBtNTHkfR6lVPSfF+F2/Y3dq bHyv7il4LFLli6TDkVlwdPGLwbiBXdx4SiDmbGlHgZ39RhuKEnMZL+CiOignBOZf+2pK trsXj8YJFcdahZ0OcEwA1bt+WldLWKDQW7t1sNpTy58v/Ds2UfjcWgWEZ/tHkjzM40th v3Uk8EXZlK20w1cbKVOL8TNuZ/0HBbfLLkzWJjQp3zLLpy9IO9LAAAOZPS/rE+O/75py FFIw== X-Forwarded-Encrypted: i=1; AFNElJ/hTSsarbSoa+99WxTUE5W+71v/rcI1vSIfvkm+1V0d06Wnw+pExJv1rz5Srg/Gi93cB+p3PDEFsDfowkI=@vger.kernel.org X-Gm-Message-State: AOJu0YztiGi4Z2YNeVOKJSMo0+1tEhFVNMaxLCA/cOsrk1gD/hGjbDDf lHmSlPJ/EMcXkM1H8wxi9wvph06s5qvLV+PqlAk+syGNHsEnAYpm5tjYkHovadQop2M= X-Gm-Gg: AeBDiesstaljZga2dNICLPtC8JD1JiWRDfglt7IVgHxWNeqZdsYS105gX8hy1q2NYTN 5UtQIP5Uyvg0EHHqltpbVgu5L/qSoWjcWVJ1Bv/b42UgQsZsz4O8q/BCCMNwaloIMhn09g6KHkI XlhV6gR3Bh+e/6tpYFfCLsoytt0/DGBcRSCRNpQpMocup89cj8J1jsIV+pTgEcfKfMIDfOf31RK uBvWCP8UuICvRawBcFnP69V5DTLpkNm3mhUFpcueuUaAvXxZkCYoB49KJkVltJx7Y2p7OHTo0wm rcfCH8skuA1+slntELUePU7dUOqvuDSg+GrlcwZMmR+0vzwCDO/M0FqdqIkk4lhkCXbX1jN0b7k eSl2mMiw5AAVKs8hxasoY8Ca99EmvyaOw/R4DrHrGuFnkruhVZfuX9PgLciEODVTnW9kDAitDBA nQBHKlAHUoTFI= X-Received: by 2002:a05:600c:630d:b0:488:79a3:f04c with SMTP id 5b1f17b1804b1-488d687cfd0mr320769305e9.27.1776286788430; Wed, 15 Apr 2026 13:59:48 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6a8496sm3468696c88.10.2026.04.15.13.59.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:47 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:23 -0300 Subject: [PATCH bpf-next v5 05/11] selftests/bpf: Make skeleton headers order-only prerequisites of .test.d Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-5-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=1610; i=rbm@suse.com; h=from:subject:message-id; bh=Dr4PihMoMr3qRKNSDl7IrxVJ9HeBlG623zgxVHaeaQ4=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QMGWWbzfWEk41CsDSxTzXZll/JOC2pUkK6ZFcauKpPfsNAx1Y5sHy8bgQ7+Tme92jV66sKfhQJU 1pmDrrEwGUgE= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g The .test.d dependency files are generated by the C preprocessor and list the headers each test file actually #includes. Skeleton headers appear in those generated lists, so the .test.o -> .skel.h dependency is already tracked by the .d file content. Making skeletons order-only prerequisites of .test.d means that a missing or skipped skeleton does not prevent .test.d generation, and regenerating a skeleton does not force .test.d to be recreated. This avoids unnecessary recompilation and, more importantly, avoids build errors when a skeleton was intentionally skipped due to a BPF compilation failure. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 040617c01bbb..3c9d61023414 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -713,11 +713,11 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.d: \ $(TRUNNER_TESTS_DIR)/%.c \ $(TRUNNER_EXTRA_HDRS) \ + $$(BPFOBJ) | $(TRUNNER_OUTPUT) \ $(TRUNNER_BPF_SKELS) \ $(TRUNNER_BPF_LSKELS) \ $(TRUNNER_BPF_LSKELS_SIGNED) \ - $(TRUNNER_BPF_SKELS_LINKED) \ - $$(BPFOBJ) | $(TRUNNER_OUTPUT) + $(TRUNNER_BPF_SKELS_LINKED) =20 ifeq ($(filter clean docs-clean emit_tests,$(MAKECMDGOALS)),) include $(wildcard $(TRUNNER_TEST_OBJS:.o=3D.d)) --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0725838CFF8 for ; Wed, 15 Apr 2026 20:59:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286795; cv=none; b=Lx4xq2XSF7Y5HJm2Q3GtbPNeKFfH7e4WGsHu2T95nacMZN4u1xd3qwj0gDqwhwPM/tqWtO+Sd6o7J1laxNGyuUQIplizEfBY851ofSYqo2ibgwpsdumCesz25S45slm8N+oxc65LBmjtBz7qKDKE6Qfs3DEDiXyt8sWqXjSMYAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286795; c=relaxed/simple; bh=GbttUT6vyhtCn2eIxN8DR5H29xyp1zOxmftUR/Likoo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ix5u9PLNHli1ye0pPIWjwXYR6UxTdZuJVGYTh7saIopKVmVk9QVRQRDjWVkrja4y0nsxSjouchP+fYWHrqPOJqeCL1EM76+IEhwBO/rdBsaTpJGJtn5fS5ooz3uSah7H5wroPPTibrTwmp+wGc0NtqUsC8JsgPNXODZDeWGA9SI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=Rnh1Dybd; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="Rnh1Dybd" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4852a9c6309so67918465e9.0 for ; Wed, 15 Apr 2026 13:59:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286792; x=1776891592; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/Mfo/BD19IRGxdfb+sFo/dHsayqzRb0xyff0MVjqgFk=; b=Rnh1Dybd9hOAXM49NhyY7YtyfDn254B5cWHqYUheuD2MaAxIIljgCymv8CnljZ6XRP PA9CbZIkuPUleaZl6nvQkKghmZfw81/ooQ2iJyMiiCvlUIQ3Fq+pEq5EOIBMJz430Kxf pTZ1q9a/6YnkWO4sRq9BX+iez4wGLzh6mf27NhqKpnj3Gl/6VU4IRKj2fyVQMVId8Sjg oJXZ2Bv61CZkPpfOrV8KOJcXiJT6FxA7GFyq3YtuxoaMz5b7YF81i5fEfgnsxtE52AHp zziX7d6EUaJg3ZUqKtcZQ5UDZu74wPk1kNQ8deu3c0galDoQtH81wjVslEGSQJDoYcOl 2SNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286792; x=1776891592; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/Mfo/BD19IRGxdfb+sFo/dHsayqzRb0xyff0MVjqgFk=; b=Fi14FL/yFrBynhz6aXpQNNT3H2xxbMgADlfX/k1PfWB4Vg6YW3nPOIzAADZjVl9WRE 8B6fJESlQljR8rR+zci/yy9A2Ey841txy3oI/3hAetmhYaeWYTjVQfADVx4wSAWTAv4k S0NglFnWU1rmE4/Lp5SBSk8lumPdJdCjBP2JFgtuGNujXZx7oQmxjAoW0tglZKj1/9EI 7UT9CHtfX9MKSKEStoOVF4RWhbu8WMlj9FEWNcWB9wGtemInXvDaYsvEnKAvN96xvk0J j01ulVGIaPJeX+1IFUgxCyWeE/wrjkegCSGgIdrSZKPzeA5aKLXoxkFYz2Un69Bky1pS VerA== X-Forwarded-Encrypted: i=1; AFNElJ+skGIoe9ZIU9aUtmx3dGmCse6jwrhSfGf6cl/TEy0cuoiQeiQ+ZaJSdAvyaARFJWo5NAPAGyCC+TNdnMQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzSlQHPhp1VzyG0KFVDKhe5bkf6GJGjZwT748UdEclwSEcs+Gh7 lvbvmFQVJ4Bv0yr5aW3hfgDZW2L+ujT1byE0HPsSPk/PIHVntnXu6DmfahIVCiJxOSk= X-Gm-Gg: AeBDievbgFSYFj1XR1FDRmPa5IkldHsp3m13b7n9KFgiVFzZCb8BICXR98VONY9o7vc WjnLmI7egzynBL4ldkaNwJtW36IfIbaqD9BM7EOndnvptnpcRlmdQfAjaeCxPsIq+Y/VCOQIn1J PPykMBXVdK/8Um6r9/olcxJKfsR6YDSX/EVsgfrZ4D2/+/F7W3a7tSUzTu92hc6gDTLf0QUtqn4 chKW48tREoyr13tPs8nDsAlfWxizHytKRXXG0lq59bxoR+TlyMWDTXAIT8Jd0d0Zc6E2COuUEoK 91TZ8/sqzcyhtB64B42jHvCGVihDhmVxwDtfLIS5YnOYc/kj/oCdPemaPdPuZ4Q2AkSSZ/DS4pc qZgp4QniP2xxwpTCuAosaVlM7QZrybhp8rwT39WtCqDzm1fwe6KnGbvQxr374Y0rNY8en6ZSUZZ t5bzBiMP8xtGc= X-Received: by 2002:a05:600c:a109:b0:488:af7f:7751 with SMTP id 5b1f17b1804b1-488d6836508mr224987635e9.15.1776286792383; Wed, 15 Apr 2026 13:59:52 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f65fc42sm4398617eec.23.2026.04.15.13.59.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:51 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:24 -0300 Subject: [PATCH bpf-next v5 06/11] selftests/bpf: Tolerate test file compilation failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-6-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=2121; i=rbm@suse.com; h=from:subject:message-id; bh=GbttUT6vyhtCn2eIxN8DR5H29xyp1zOxmftUR/Likoo=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QH3cGtcWTizPM2OE5ymULTo3iCCGvIHO81cuS4JZD6Ja/+3FrPxfKy+il554FamZbpk/0Qtz4cU dQjIhgbwTtQ8= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Individual test files may fail to compile when headers or kernel features required by that test are absent. Currently this aborts the entire build. Make the per-test compilation non-fatal: remove the output object on failure and print a SKIP-TEST marker to stderr. Guard the BTFIDS post-processing step so it is skipped when the object file is absent. The linker step will later ignore absent objects, allowing the remaining tests to build and run. Use plain printf and $(Q) instead of $(call msg,...) in the BTFIDS block: the msg macro expands to @printf which is a make-recipe construct and is invalid as a shell command inside an if-then-fi body; $(Q) restores echo suppression at the recipe level where it is meaningful. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 3c9d61023414..ee7bbfcd661b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -704,11 +704,14 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ $(TRUNNER_TESTS_DIR)/%.c \ | $(TRUNNER_OUTPUT)/%.test.d $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@) - $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< $$(L= DLIBS) -o $$(@F) + $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< $$(L= DLIBS) -o $$(@F) $(if $(PERMISSIVE),|| \ + ($(RM) $$(@F); printf ' %-12s %s\n' 'SKIP-TEST' '$$(notdir $$@)' 1>&2)) $$(if $$(TEST_NEEDS_BTFIDS), \ - $$(call msg,BTFIDS,$(TRUNNER_BINARY),$$@) \ + $(Q)if [ -f $$@ ]; then \ + printf ' %-8s%s %s\n' "BTFIDS" " [$(TRUNNER_BINARY)]" "$$(notdir $$@)";= \ $(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.bpf.o $$@; \ - $(RESOLVE_BTFIDS) --patch_btfids $$@.BTF_ids $$@) + $(RESOLVE_BTFIDS) --patch_btfids $$@.BTF_ids $$@; \ + fi) =20 $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.d: \ $(TRUNNER_TESTS_DIR)/%.c \ --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4164B38D014 for ; Wed, 15 Apr 2026 20:59:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286801; cv=none; b=RRtO6NJ6MiYTbUpSpo9+/1odyldUM9qfpHEwsr+KBz2ULatSW00wIjMuObaUltZ+vx3bKWFpget14CnQyQwvwcbOi6qNf5sc5ecq9UtiBP12XlgCZbglXJ1CPtUNOkja2LEZiyan/wiZFwWUYHP5V4xY/qDfnwWBKVBApUIWvbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286801; c=relaxed/simple; bh=sd6o23TXTQBmDe9CNsrT1vAQRg7+CRHUQ5cNo1CDVZ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C/uWSNn6hYeI3Sudj/OQlywU8KfjSeIfi1JGfXzL1FcXWbFcbyUqmdNsbiZYcXoJBnYmyz2gosoNswrSgPWae8Yfxnhnf9LnUQcZq1taD8OPa1VIVAaxpkYX4IX3TcjpN6qUsEmW3j/MXoNy4ElcW5/d0x4wsx7g5ujHHLBTNhQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=YEZknZHP; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="YEZknZHP" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-488c2690057so73573025e9.0 for ; Wed, 15 Apr 2026 13:59:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286796; x=1776891596; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=R+LZLrUSOhq9xIydX+pHIEZAmNfKMNGZSAqdkfa11Ks=; b=YEZknZHP9aKPxjBFdRAVs3+YLbAsxo+p+/iUXZR+fmfnc5uCJNOCP3gs1ehyDV9PdL Ry6A96FB8ZpHN08SBhoofaPV54RSbyhvuSNwgSPX/Q/XCCJzyz4TpS+w68gS3cblVuY/ 1stdb48ePH4G3nmSmmik1WPKqT1E9GOG2SLLdqVbakeLlx9Slgc9Z6Fqj1CcZLjbF0HE oDADoL6SG5HR5N3OlHHle8vYXbd3vg+oB5VlI7x8Gkw9cUKTqzzaVWa4bYxcSrloJIpw 1ogabcCL2ZMzmA5Co9lHHpRddnSTCaJIzq6l4KP2g1UoP7sBo/sCNERJ6pjVH072XeBY idiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286796; x=1776891596; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=R+LZLrUSOhq9xIydX+pHIEZAmNfKMNGZSAqdkfa11Ks=; b=lnyi1HsQX3x6ngQ6rsXOtVQ3TEWYTpeq42LMH6rBfrU73ZONUSd8YRHWT8smxHA7iv hJYHaK/hDIDBtfM6mWyrVsN3+Tgx9FoOovjDE1zcL22tKONpuNacvYuBpwcYoLCrNHmW KkF/7VyQ+yA3Ij9yTQDCkHbzmsHsJLMY3p72cUVkmC3kc/SJ74hxyH/PoXVeG+cEZ3t5 frvKJ/l3vKpYM7o+WkSyWde8MDeUuor0jfNfPpnDX825YvaXOtHipxmSWssZ/2wr3I5X let5fHWfctiBUUebriCEkA3g3LLNszrBpUHE/di1k89s2hMaHWIG7mATsaqk9fNeEWDC +lYA== X-Forwarded-Encrypted: i=1; AFNElJ8uoV9UFW6d4mRw2jtvfB0+L0k6bTtX+6oq7sY/G4UXla1DV7Kt7+Q0nWex+ilqpgNWORwVEh13gaVGW/A=@vger.kernel.org X-Gm-Message-State: AOJu0YwZd/xMEluW0Bh0If7ohRKp3AEM/smtDTUJXjXtZBRetFOz+5JB DzufCUG2lBut+FeFfYC3op/4v7BtUGwakfwUTNlYrwYMN/rTTnXMdXSyygZExvuSsuM= X-Gm-Gg: AeBDiete7iDe/Zfkl9WowEpTarIZfjHfWvMc5DnsNk71T7GxngwxByq8S80anDplKm9 opQ5wAYx91zKqQMhsX8In0fhYUk7e+a/yhquHVgIL0OCyY12Qxhhlh+DVYMxAzQiqjBRapDECXR 0ayPOUHt8Cmmhu9zBX1d9fEBXe636uHWerYCwNYNt3OWDb8l4fqFqJy/+1d78TsK9C2Qx/HAeG5 rIp/HuJBt9bNrBqHyrd/f6wBDjLB2U7EjAb3reiGo8qVA6AHzVOzhGoZIkuRFs3kIs5FM9p3OA5 8C/B/pU4nEAuS3VY3bE85LyiycoNDGxTebSfRtIlyjVV9pUufpUMZusWpwWHFyuSeRQjt/xS47r OkYIcaSoq+WmE99KTSSGxMMA2d6H8DJ7YatQDw6xcctbVTrDYMS4W/o9mjJ+PpJXxnz/cKCQ5d8 v2QUFF2rozmtBAnuMFBuG/mw== X-Received: by 2002:a05:600c:528c:b0:488:a2ac:a337 with SMTP id 5b1f17b1804b1-488d68c2bffmr298755645e9.21.1776286795661; Wed, 15 Apr 2026 13:59:55 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f65f9bcsm5108876eec.22.2026.04.15.13.59.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:54 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:25 -0300 Subject: [PATCH bpf-next v5 07/11] selftests/bpf: Allow test_progs to link with a partial object set Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-7-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=2150; i=rbm@suse.com; h=from:subject:message-id; bh=sd6o23TXTQBmDe9CNsrT1vAQRg7+CRHUQ5cNo1CDVZ8=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QKF6hcje9wxrjG1OyZ3oiDzcAPEvRA/9gmflkFbNKl71F/Dnahqeq7yL0Mv6YwaWV6nV/2kL6t7 4cQZwZlwgbQM= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g When individual test files are skipped due to compilation failures, their .test.o files are absent. The linker step currently lists all expected .test.o files as explicit prerequisites, so make considers any missing one an error. Move TRUNNER_TEST_OBJS to the order-only prerequisite list so that their absence does not prevent linking. Use $(wildcard ...) in the filter expression passed to the linker so that only the objects that were actually built are linked in. Place the wildcard expansion before $^ in the filter to preserve the original link order: test objects must precede libbpf.a so that GNU ld, which scans static archives left-to-right, pulls in archive members that are referenced exclusively by test objects (e.g. ring_buffer__new from ringbuf.c). Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index ee7bbfcd661b..128ea61fd986 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -754,14 +754,14 @@ endif # some X.test.o files have runtime dependencies on Y.bpf.o files $(OUTPUT)/$(TRUNNER_BINARY): | $(TRUNNER_BPF_OBJS) =20 -$(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \ - $(TRUNNER_EXTRA_OBJS) $$(BPFOBJ) \ +$(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_EXTRA_OBJS) $$(BPFOBJ) \ $(TRUNNER_LIB_OBJS) \ $(TRUNNER_BPFTOOL) \ $(OUTPUT)/veristat \ - | $(TRUNNER_BINARY)-extras + | $(TRUNNER_BINARY)-extras \ + $(TRUNNER_TEST_OBJS) $$(call msg,BINARY,,$$@) - $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) $$(LLVM_LDLIBS) $= $(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@ + $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$(if $(PERMISSIVE),$$(wildcard $(= TRUNNER_TEST_OBJS)),$(TRUNNER_TEST_OBJS)) $$^) $$(LDLIBS) $$(LLVM_LDLIBS) $= $(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@ $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/$(USE_BOOTSTRAP)bpftool \ $(OUTPUT)/$(if $2,$2/)bpftool =20 --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A75838E5CC for ; Wed, 15 Apr 2026 21:00:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286804; cv=none; b=WesfJ0gCjxulc0yhp1kDaDLHBYzdaV1ZjEOhC3dJYSSTnpziYaqIfTlcn6FjZLG8bpPyDmDyHH61NCR1eNQ2P/ph9oNhDZtgM3pcRru06nLGgGNfOPFBEq+IYrD5B7exEUHhCAOPf5KrShgy25Zq8tVUNIByp3qMHfPmASRFs2c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286804; c=relaxed/simple; bh=XCKe1TjHfJlwSJAX4fuY9DLW2sOgBtAwMXzZhTx/5F4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N3RSJfyp+ynqg3WJX21+metIbt43Y1HheKXAg9F7yZtOzbpRpYxPCc1pZQVLTTuFdjCitJ3Lrsb3MXECAw7LPgz6XtMIX1VcHRCSkBrYKa37/eg2lgsg42oZV8CSllDfrKgd+KfiNpekBlIOvJU27/oHG2MjgpZpD5g3zsU8BQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=ECY9UoUj; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="ECY9UoUj" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488ba6366a7so88098315e9.0 for ; Wed, 15 Apr 2026 14:00:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286799; x=1776891599; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DtePe4tVB1ppaoNVFmbhZuXMDT7E+RF+3Sc+9onPhUc=; b=ECY9UoUjSbklVFUpImxTqN5Y9k9yqBCaMPKuv4QeR+9KYHB5HBgLFbkfmzlznCh0VM LsK52Pa6PEjzbINNwpHe5ONhUlvXky85o/GCmFgRRDcNDKWILDYSPZ8v4DFO6Zycvv31 DFEWbCklXpqQlntixEWer3P8MnIv4n8oaHBrn0EOn5z4T3EDslCVVpLq5iOYdLEYUSqB UgBPUqPXrIULVFA8FbuzBlz01lhbSSFVWE4XGd7cGS5F2Zgf/nHxcRtHQ9s6XGliIkoK 5nLaT3x2nhTJormhXgKSc7wxPjopBe6SlJzJ5S26zFIYbPpaN6CWYpAQk3hssPIdr5e8 6Sqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286799; x=1776891599; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DtePe4tVB1ppaoNVFmbhZuXMDT7E+RF+3Sc+9onPhUc=; b=Utjl3t4t9LsROmzRCeO+Insiwhyh/bViaMUoDLY5y8+7q7J7YIOqUK20Hl5oLKKik4 pp7SWvnZDhaxOnPgNtWTTMeqTpiszXiEuUBjOTZ3wVNDYaEE0M50YBWh8En9uSJyMTRw Gl+6fnLpVWgcinQYpF92G2UQMm5QI7iu7lyfBbiLlwtRfF5YsusWlptEiQk0E37MZDLX IqH6GonEQ5wkH+UMyO4CQ3N5PyoXAZkN59PmgVLWT6W66JZSEM5UKEjSz0BPIryDk2hU UuXsCHfZQbryULE911zOeOVtacVqmX2wYD+7WcwrKKDTrf+SiiAPyFT/M3aZN3+eOOOl rR8Q== X-Forwarded-Encrypted: i=1; AFNElJ/XQ8r21fN+X+ytWB5OAr3z5Nx6M1GrP+n2/71fTGUClbcCrP1epznStfGSLOvlpEETGuN2P0r7SD+T3Ks=@vger.kernel.org X-Gm-Message-State: AOJu0Yxyzy3hjD1/t2rdXiwuDKYoeyPpaTOQrG24GIcTj15dd39GiNEP RKrZzEER6Vn1WVZeXqucgwjPT67GPbzDP/0Oh0KYrcxUBdNq4vhfVpE8d1CWtH3PRXk= X-Gm-Gg: AeBDieusdxqZjV5KiOp4tbFn4DDQbw5J1N1PIKmXwM2HUYxOUZfC8zPDhb4NUDDa/Ko vXPRG6pfwTUeYSVjdMHy3KMx4+0bUe90uHrIAx2HB7Wz7WNP4ebOY7vyhg7bnzDXENaT+u9NDIk vFiVz/GJGe3+FY0kPYJ0J3Lhpb7pD1ngITB/3dpPkA8cQBcp5lObaYpTQoW5MIs2Y9u4BYACt0W oGvOvG170SpnyaMVC4qXHOrpu4BsjXsA/wFEtmMsqrlJghL87Zs7DKmUdfVtdAGf920EPG35rNs m49ZRNov3LPM6mjtbNpcr+UiGls18lb2JEY0oVm2PcSaHxUNmmfIUNxvOoqTIx6R5kOPPMw2K4c ZkEEvLeGo1D+xu5/Myo1kpj9WMT7ntf5TOvXs6oqYeuEfueRMwS6lmgaItRrPSh8vQTZrqcaiey A326iWv/3wJk8= X-Received: by 2002:a05:600c:c0da:b0:485:4eaf:eb53 with SMTP id 5b1f17b1804b1-488d685c12dmr272771665e9.19.1776286799559; Wed, 15 Apr 2026 13:59:59 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6b5627sm3423734c88.13.2026.04.15.13.59.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 13:59:58 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:26 -0300 Subject: [PATCH bpf-next v5 08/11] selftests/bpf: Tolerate benchmark build failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-8-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=2217; i=rbm@suse.com; h=from:subject:message-id; bh=XCKe1TjHfJlwSJAX4fuY9DLW2sOgBtAwMXzZhTx/5F4=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QGIQ/GwDhPKHV+R8rebF8BWOcRFMS81S8508Z9JJXDlNZw35XGIdfstY8zicLVz7LEf5figjWEE JMfBs4EJgvAI= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Benchmark objects depend on skeletons that may be missing when some BPF programs fail to build. In that case, benchmark object compilation or final bench linking should not abort the full selftests/bpf build. Keep both steps non-fatal, emit SKIP-BENCH or SKIP-LINK, and remove failed outputs so stale objects or binaries are not reused by later incremental builds. Note that because bench.c statically references every benchmark via extern symbols, partial linking is not possible: if any single benchmark object fails, the entire bench binary is skipped. This is by design -- the error handler catches all compilation failures including genuine ones, but those are caught by full-config CI runs. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 128ea61fd986..163552458327 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -891,7 +891,8 @@ $(OUTPUT)/test_cpp: test_cpp.cpp $(OUTPUT)/test_core_ex= tern.skel.h $(BPFOBJ) # Benchmark runner $(OUTPUT)/bench_%.o: benchs/bench_%.c bench.h $(BPFOBJ) $(call msg,CC,,$@) - $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@ + $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@ $(if $(PERMIS= SIVE),|| \ + ($(RM) $@; printf ' %-12s %s\n' 'SKIP-BENCH' '$(notdir $@)' 1>&2)) $(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h $(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h $(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \ @@ -934,7 +935,8 @@ $(OUTPUT)/bench: $(OUTPUT)/bench.o \ $(OUTPUT)/usdt_2.o \ # $(call msg,BINARY,,$@) - $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$^) $(LDLIBS) -o $@ + $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$(if $(PERMISSIVE),$(wild= card $^),$^)) $(LDLIBS) -o $@ $(if $(PERMISSIVE),|| \ + ($(RM) $@; printf ' %-12s %s\n' 'SKIP-LINK' '$(notdir $@) (some benchma= rks may have been skipped)' 1>&2)) =20 # This works around GCC warning about snprintf truncating strings like: # --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D6A838E130 for ; Wed, 15 Apr 2026 21:00:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286807; cv=none; b=OtNS3ORP+yuPO4TMWBPGJ7bRvetNoajUsXvI6ea5HpiKRhnn0nQBQaGcUcdfyYlq8BJz/ADoTMiaT2hewj2It0xKWb15qjntDcU7EbIpdTDy88RhKa4ITSlODP82Sl65G264sVwLWBnW7+SfR8Oe9AKKmu99Xp9ujZNEJW+aY7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286807; c=relaxed/simple; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YAYHjrQ22Vf09Q0zOUV7xFvFxs5mUWiJZEj06KmgSQbrGNBBeIL139oHsXIiu5ySY9JJQZphczQ3ee56rlsGExEHP+CErOQmlGETajtnELNp/ekZ1CHO6ykRWQWndkjw7A7SJUobLl3CxHDpTBISsOlAveYx0OMzFBSNax+hH7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=VwtBmeYT; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="VwtBmeYT" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-483487335c2so80111725e9.2 for ; Wed, 15 Apr 2026 14:00:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286803; x=1776891603; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Oynt2x6SXKNaRU8MrrgQe7iSYgm0Zd6fxbgaEr/IL1k=; b=VwtBmeYT76NqQkRYzbi/6Y421HwLgjfXDUhjrih9eVa8y64LGIDDVgBaLolk6eSQFj sXYw9ArtL7orio4A7VEX8mIMJOpyBgJwrk/E8ve0dK+2WPphwT8vZgUDHPHVYEe0/fse m3fhtcjMJ6u4rDBeo2pLxPSvLxN9bpu28k1Mn4bQwdeYzhG6HuVKnkFmMkhVZ0iO2t+8 X7r3Um+0YEIy06THsv8ZVjNDLp0YIP5qZPCwR1u60Zp694ac1kp/6+aY16dNeut9Po8M mvnL2l34aH0Raa+4vpEd+f+bSbz+8WYI/1WqelLQ8173i1OAD3SougRRc4HwPzgAp5Id iqRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286803; x=1776891603; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Oynt2x6SXKNaRU8MrrgQe7iSYgm0Zd6fxbgaEr/IL1k=; b=ESM8mNpgXew/VpNVA4tibPGVbKgVU6Qm8pN2TsoQ+sAoPmAwPBiOC+nukKCadaM8dW KhYdBYJA+xcjkkVpE23lar+qT3FZZWiHhPNRykeNariZSmOOsfVG1TIvoO53x9LlqLME DOz7h0hTBV15adSggZadoTpDWu2TNfIPYkZplKs5/cfWvDR/PG0N/PIm0+Ofje9zbVN3 7/G5LMeGwc/Xe7iA02CZ19PUmD8+IHFbipewcpYAntou60wvWP6Vdr0rixKhNtvWIzal rTf14uYsQCu6CXEu6/c0BjBJfVse7Mt5svyyzpMry+NyaqkR5cCv8/r6GKn+3IBpe55M 02sA== X-Forwarded-Encrypted: i=1; AFNElJ9knnz4Mhkh8pvnSqH3jHW8vbBbbcCL4c9CfwU3DUu0nI4L+AU476mN09HSOTGhPMegNe12I16dhjL79zI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1DkuI4gyYr02gOH6Hj5a/vrevQBzNik1boG+ENiJatoNAhpGm pXJRPmNxA3ClhX6cJTjUaVtPT3cbuXMjTJM771EEqct2Lq3sBRj4alcHIMM/PnnjpQs= X-Gm-Gg: AeBDieuZaI+ilSVBflI3JzYNVA9ukuPRAoQ8eOzsrFODgCw+Rugni98CgTveA91p4uz NR+/wVoUnzA+A3H/bFASINSYxsWz/1glMhEmIF2fyeKLkC6F9KBUroFOx7OKhfZIAGMu6f7M3B6 7xUMP5CQ+qkudNK1h3FKP/JJPvULlg38WLb6d7u1SKgnVrRnXTQu9OeUfamYfM4KOSZfN9KlU3O OsN8nWIQYjP4yHdL8ZndUx4zRLe3ZP96iCKJaBFBCCgkPYZkUu3aUhhnimbP0qUT/F3UsQ5mzSz 7dZopPcoq/BzB82teFZFOiPgX7652PTaC8pk3OOn/0zW/EPtieuypNQ63U3xYBk49vz80boDz/O mKom9RlvSFUfNxZ+QaP6xaEQvkZDgfsSfc+oto00wAghBisCWCquTEv4aCA4ikKmS1NA74yDZNm k+hO7Ufh9Kg2U5uBVzrjhYyw== X-Received: by 2002:a05:600c:64cf:b0:485:b6dd:5066 with SMTP id 5b1f17b1804b1-488d67ce664mr310218145e9.7.1776286803497; Wed, 15 Apr 2026 14:00:03 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e61cd32sm3511245c88.3.2026.04.15.14.00.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 14:00:02 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:27 -0300 Subject: [PATCH bpf-next v5 09/11] selftests/bpf: Provide weak definitions for cross-test functions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-9-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=5376; i=rbm@suse.com; h=from:subject:message-id; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QO7e/UYxw746hiXYJlNuN3lkdDoM2pGfqMjqiIc/PWW1OKv557/Zt0rqGkWmOTbeCyjKNsW6hSl L8udp9uaFdQY= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Some test files reference functions defined in other translation units that may not be compiled when skeletons are missing. Replace forward declarations of uprobe_multi_func_{1,2,3}() with weak no-op stubs so the linker resolves them regardless of which objects are present. Move stack_mprotect() from test_lsm.c into testing_helpers.c so it is always available. The previous weak-stub approach returned 0, which would cause callers expecting -1/EPERM to fail their assertions deterministically. Having the real implementation in a shared utility avoids this problem entirely. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- .../testing/selftests/bpf/prog_tests/bpf_cookie.c | 17 +++++++++++------ tools/testing/selftests/bpf/prog_tests/iters.c | 3 +-- tools/testing/selftests/bpf/prog_tests/test_lsm.c | 22 ------------------= ---- tools/testing/selftests/bpf/testing_helpers.c | 17 +++++++++++++++++ tools/testing/selftests/bpf/testing_helpers.h | 1 + 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_cookie.c index 35adc3f6d443..5a864cd8ad1b 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c @@ -252,10 +252,17 @@ static void kprobe_multi_attach_api_subtest(void) kprobe_multi__destroy(skel); } =20 -/* defined in prog_tests/uprobe_multi_test.c */ -void uprobe_multi_func_1(void); -void uprobe_multi_func_2(void); -void uprobe_multi_func_3(void); +/* + * Weak uprobe target stubs. noinline is required because + * uprobe_multi_test_run() takes their addresses to configure the BPF + * program's attachment points; an inlined function has no stable + * address in the binary to probe. The strong definitions in + * uprobe_multi_test.c take precedence when that translation unit is + * linked. + */ +noinline __weak void uprobe_multi_func_1(void) {} +noinline __weak void uprobe_multi_func_2(void) {} +noinline __weak void uprobe_multi_func_3(void) {} =20 static void uprobe_multi_test_run(struct uprobe_multi *skel) { @@ -574,8 +581,6 @@ static void tracing_subtest(struct test_bpf_cookie *ske= l) close(fmod_ret_fd); } =20 -int stack_mprotect(void); - static void lsm_subtest(struct test_bpf_cookie *skel) { __u64 cookie; diff --git a/tools/testing/selftests/bpf/prog_tests/iters.c b/tools/testing= /selftests/bpf/prog_tests/iters.c index a539980a2fbe..7c0b59fdf498 100644 --- a/tools/testing/selftests/bpf/prog_tests/iters.c +++ b/tools/testing/selftests/bpf/prog_tests/iters.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "cgroup_helpers.h" =20 @@ -202,8 +203,6 @@ static void subtest_task_iters(void) iters_task__destroy(skel); } =20 -extern int stack_mprotect(void); - static void subtest_css_task_iters(void) { struct iters_css_task *skel =3D NULL; diff --git a/tools/testing/selftests/bpf/prog_tests/test_lsm.c b/tools/test= ing/selftests/bpf/prog_tests/test_lsm.c index bdc4fc06bc5a..d7495efd4a56 100644 --- a/tools/testing/selftests/bpf/prog_tests/test_lsm.c +++ b/tools/testing/selftests/bpf/prog_tests/test_lsm.c @@ -5,36 +5,14 @@ */ =20 #include -#include #include #include -#include -#include =20 #include "lsm.skel.h" #include "lsm_tailcall.skel.h" =20 char *CMD_ARGS[] =3D {"true", NULL}; =20 -#define GET_PAGE_ADDR(ADDR, PAGE_SIZE) \ - (char *)(((unsigned long) (ADDR + PAGE_SIZE)) & ~(PAGE_SIZE-1)) - -int stack_mprotect(void) -{ - void *buf; - long sz; - int ret; - - sz =3D sysconf(_SC_PAGESIZE); - if (sz < 0) - return sz; - - buf =3D alloca(sz * 3); - ret =3D mprotect(GET_PAGE_ADDR(buf, sz), sz, - PROT_READ | PROT_WRITE | PROT_EXEC); - return ret; -} - int exec_cmd(int *monitored_pid) { int child_pid, child_status; diff --git a/tools/testing/selftests/bpf/testing_helpers.c b/tools/testing/= selftests/bpf/testing_helpers.c index 6fbe1e995660..3f7ae76c209b 100644 --- a/tools/testing/selftests/bpf/testing_helpers.c +++ b/tools/testing/selftests/bpf/testing_helpers.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include "disasm.h" @@ -516,3 +517,19 @@ bool is_jit_enabled(void) =20 return enabled; } + +int stack_mprotect(void) +{ + void *buf; + long sz; + int ret; + + sz =3D sysconf(_SC_PAGESIZE); + if (sz < 0) + return sz; + + buf =3D alloca(sz * 3); + ret =3D mprotect((void *)(((unsigned long)(buf + sz)) & ~(sz - 1)), sz, + PROT_READ | PROT_WRITE | PROT_EXEC); + return ret; +} diff --git a/tools/testing/selftests/bpf/testing_helpers.h b/tools/testing/= selftests/bpf/testing_helpers.h index 2ca2356a0b58..2edc6fb7fc52 100644 --- a/tools/testing/selftests/bpf/testing_helpers.h +++ b/tools/testing/selftests/bpf/testing_helpers.h @@ -59,5 +59,6 @@ struct bpf_insn; int get_xlated_program(int fd_prog, struct bpf_insn **buf, __u32 *cnt); int testing_prog_flags(void); bool is_jit_enabled(void); +int stack_mprotect(void); =20 #endif /* __TESTING_HELPERS_H */ --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34B8D38F646 for ; Wed, 15 Apr 2026 21:00:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286810; cv=none; b=rKSfnOhKfbRzBdll8uUkF1kmjMhWXu5rsch/3zxMPXQD8vrRtl+xfFA1bkeDEYxx+j5u7oKHIDtsjPPmyv1TQCiX3GFFWAmpX1Ex8wNmtFxr//+05rGNR1GmkICXJ+4hoSREFA2SMx77GQq7iBMr6dS9y97mlwSfJpOxjESmHaA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286810; c=relaxed/simple; bh=lgzOSFWnfizXkJttevzQ4RKDDkBKg9+cgJB2nDOdEzA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nJpLhlZdwtDvdhymsFtdj+4lAyK/0BKup2Hgu5o/D8qMoPtZYb9AWpvkBVQ2RxFZizr5ZY+euB9SNdZ9glMJ6COBOuL+RpklJyUvYWKc6n5yK2YCbZz/bT/ohguV+MPMtpWf/e8nLl+o2IJ4TEWrVZ/H4rCx/deDnOrCNofaPvA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=H1iG8xb4; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="H1iG8xb4" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488a4bc360bso40433215e9.0 for ; Wed, 15 Apr 2026 14:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286807; x=1776891607; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=W17fl6DlylZsqZw79dVwMj/l25sGnBeZjcx83IwMViI=; b=H1iG8xb4Fl2QlnyYhxebl3ch2c/NHioKqQ1B8bXqYJBIpSz/mnZt51bPPPesjqpJ64 HnrxjqOP++Z8rsNz0F0fTCnzWSgMl/fcmhBFrVrJyKrpdwRcOxewYLqvfGrgvdWTO61p ROC5/XU50w1ZKdvsceJEoBk11iF+ukvdBdFZLXAD6FuzyXd06YGwc4wdEi5UJ8OK/0wB VvDLaqcPqJSxD8A1bRbzgIquSTfZeY/po4TesVryNUTmKRQYf0qLlfmx0HdebYzaWesf MSVbUSc6dVVaPdiIQmK3UVWesGLGa1PdKFN5vHt2+PRA3+3KSnoOcJHjzMg3+ygGPjuO LPww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286807; x=1776891607; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=W17fl6DlylZsqZw79dVwMj/l25sGnBeZjcx83IwMViI=; b=HxswiIpxq72MouzmjKBS10WoXbVlh4bQnbD/jp53+adYL50+ETSHQ5/PuW32roukuL u8FYu9m8w093FjoF3Mn3GyOkzh62aZ/6dIZWDyC2l0XfeKtfT8y7NOYrOX0xcY+Ly1d7 NjN+5oalZI6mK5Z9kmK/mFIs3u02gmqHBCVrSoN1Sm/ZXtBFlRLk1qHOmfjbqOcm5o9l FYw1df9cY6znD3k1bnaPjXV2EBpyhfzD0Tj/TKpI+ZWB2oAWsXZX49AJ8Zxs41gHhZEz fKPaK3Gmg3aWrum2gi6DKBSjDxu4j0+j/cSeXUuFi8Ishbg+B/XTw6RpRH9Bl4Xg3RcF 99AQ== X-Forwarded-Encrypted: i=1; AFNElJ9XtmpP5CdUef4I8icGny2/WrsF1wtccz+a8HiKM2rW1jp5eEeCzbubFPT1SXlIqZTnVAtCjPjlAfFwMKg=@vger.kernel.org X-Gm-Message-State: AOJu0YxK13DCpt+zs5DiZKJksZy4q7rbftKu8lRFqIPptn6CJYrzFukc z3IG1tq4BWC6MapNTCs739GbAEDJGGzyjXxNQAQqpdljgDZSQ41G6FpgquWcZ9Y/2pE= X-Gm-Gg: AeBDietMqY9EeDhgfn0MUCsVClPkpimBQeLdMP01yzWSIezTzoG+ibgMqGtFRW1kRTp 0rRr8YHWR4HYKnP8Wlkfmm2mvT3LV9Wlc5lDrV8Lcy9sQtQjEGoOlapMqwWmfLnj0CWUEMreZb+ O4SGcdzhjxaEqeHKM3aIh8bcUtVaWLyPcwxeSlOAdcY8OqiLY7us9RxOywoxvNx3Snl5VIYTfep X85QmqIKa1KCc2ul93PjmE0CZNQ/HiW3K41vqc0XJp0hY8YenwbEuQ5ECJHModERHR1QiOvjj1w 3KGNhJIoqJTxXxgcyIqHe7pELrDqIT3HlsZr81AJz9c4u1U4ApmYnwbofycES7LFch98ASsS44J uMNNBY5JrBhnurVxzBOpIvrkYpe8yQzwxrVt2oBfiQMF4uxQ7VNW7goCTRjIgx/nHBhbmOffGHW JH0feFT2UDHZQ= X-Received: by 2002:a05:600c:8706:b0:488:b9c6:11ba with SMTP id 5b1f17b1804b1-488d6890cf9mr322699135e9.28.1776286807486; Wed, 15 Apr 2026 14:00:07 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e630143sm5097630c88.6.2026.04.15.14.00.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 14:00:06 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:28 -0300 Subject: [PATCH bpf-next v5 10/11] selftests/bpf: Skip tests whose objects were not built Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-10-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=4693; i=rbm@suse.com; h=from:subject:message-id; bh=lgzOSFWnfizXkJttevzQ4RKDDkBKg9+cgJB2nDOdEzA=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QI6DqtYECtFIZePV7wEsQlMK4Xw7Pp9qXIgR8RtkUwkPTduEVxFa8hyszHy6EWsM+cqoBGPN3Ii pux/llp8Mtww= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g When both run_test and run_serial_test are NULL (because the corresponding .test.o was not compiled), mark the test as not built instead of fatally aborting. Report these tests as "SKIP (not built)" in per-test output and include them in the skip count so they remain visible in CI results and JSON output. The summary line shows the not-built count when nonzero: Summary: 50/55 PASSED, 5 SKIPPED (3 not built), 0 FAILED Tests filtered out by -t/-n remain invisible as before; only genuinely unbuilt tests are surfaced. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/test_progs.c | 44 ++++++++++++++++++++++++++++= ---- tools/testing/selftests/bpf/test_progs.h | 1 + 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selft= ests/bpf/test_progs.c index 7fe16b5131b1..759e76d76c57 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -165,6 +165,7 @@ struct prog_test_def { void (*run_test)(void); void (*run_serial_test)(void); bool should_run; + bool not_built; bool need_cgroup_cleanup; bool should_tmon; }; @@ -372,6 +373,8 @@ static void print_test_result(const struct prog_test_de= f *test, const struct tes fprintf(env.stdout_saved, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, te= st->test_name); if (test_state->error_cnt) fprintf(env.stdout_saved, "FAIL"); + else if (test->not_built) + fprintf(env.stdout_saved, "SKIP (not built)"); else if (!skipped_cnt) fprintf(env.stdout_saved, "OK"); else if (skipped_cnt =3D=3D subtests_cnt || !subtests_cnt) @@ -1700,8 +1703,13 @@ static void calculate_summary_and_print_errors(struc= t test_env *env) if (env->json) fclose(env->json); =20 - printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", - succ_cnt, sub_succ_cnt, skip_cnt, fail_cnt); + if (env->not_built_cnt) + printf("Summary: %d/%d PASSED, %d SKIPPED (%d not built), %d FAILED\n", + succ_cnt, sub_succ_cnt, skip_cnt, env->not_built_cnt, + fail_cnt); + else + printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", + succ_cnt, sub_succ_cnt, skip_cnt, fail_cnt); =20 env->succ_cnt =3D succ_cnt; env->sub_succ_cnt =3D sub_succ_cnt; @@ -1772,6 +1780,19 @@ static void server_main(void) run_one_test(i); } =20 + /* mark not-built tests as skipped */ + for (int i =3D 0; i < prog_test_cnt; i++) { + struct prog_test_def *test =3D &prog_test_defs[i]; + struct test_state *state =3D &test_states[i]; + + if (test->not_built) { + state->tested =3D true; + state->skip_cnt =3D 1; + env.not_built_cnt++; + print_test_result(test, state); + } + } + /* generate summary */ fflush(stderr); fflush(stdout); @@ -2049,12 +2070,16 @@ int main(int argc, char **argv) test->should_run =3D should_run(&env.test_selector, test->test_num, test->test_name); =20 - if ((test->run_test =3D=3D NULL && test->run_serial_test =3D=3D NULL) || - (test->run_test !=3D NULL && test->run_serial_test !=3D NULL)) { + if (test->run_test && test->run_serial_test) { fprintf(stderr, "Test %d:%s must have either test_%s() or serial_test_%= sl() defined.\n", test->test_num, test->test_name, test->test_name, test->test_name); exit(EXIT_ERR_SETUP_INFRA); } + if (!test->run_test && !test->run_serial_test) { + test->not_built =3D true; + test->should_run =3D false; + continue; + } if (test->should_run) test->should_tmon =3D should_tmon(&env.tmon_selector, test->test_name); } @@ -2106,9 +2131,18 @@ int main(int argc, char **argv) =20 for (i =3D 0; i < prog_test_cnt; i++) { struct prog_test_def *test =3D &prog_test_defs[i]; + struct test_state *state =3D &test_states[i]; =20 - if (!test->should_run) + if (!test->should_run) { + if (test->not_built && !env.get_test_cnt && + !env.list_test_names) { + state->tested =3D true; + state->skip_cnt =3D 1; + env.not_built_cnt++; + print_test_result(test, state); + } continue; + } =20 if (env.get_test_cnt) { env.succ_cnt++; diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selft= ests/bpf/test_progs.h index 1a44467f4310..6ee10360e314 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -125,6 +125,7 @@ struct test_env { int sub_succ_cnt; /* successful sub-tests */ int fail_cnt; /* total failed tests + sub-tests */ int skip_cnt; /* skipped tests */ + int not_built_cnt; /* tests not built */ =20 int saved_netns_fd; int workers; /* number of worker process */ --=20 2.53.0 From nobody Tue Jun 16 03:49:03 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EC373845DB for ; Wed, 15 Apr 2026 21:00:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286814; cv=none; b=VPnWHhODH3PlAwQvgPEB6wf2+99g+7/fyusUctllSCRLIK/V615s+vho4fvgTXVimSSGGUFy7pCNLLe4tpNLeGgV3Ih/8IOrO7GRFO8oiDNVxcf5RoSnBl8sJkPh37dwv2Dc9n7aJ4Mhvh4NJLA8uNLJG7IKWtLA7/UuI0XKi2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776286814; c=relaxed/simple; bh=kCNYcmfNgjCtuuNJpdXVk9xztupOqrlgLYIOM5DXg/U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eBG+jnuMWpaxkyCdJEGwSjPWDDGfZ0UfZxP4RwNPteaoFPlyKRoNBtVrPjATNlTyEYO24zV6KAR1pClMcny9amyrmY83egU4VFsJc1z2lnsD4DEKZdkaaOxO6C3P92j61pyD5ZqgFKRhz1Rj8BKxvMiwI01JRxZkcMrqlAMlQ6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=RFduFoqM; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="RFduFoqM" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-488b0046078so70889305e9.1 for ; Wed, 15 Apr 2026 14:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776286811; x=1776891611; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QarwDcfAAe06CKb3JY8/kgN2OyTVrb9EUoTBmrcnojU=; b=RFduFoqMvvvhOqgmmufpKlZw5R3+T/9440CuubpYvkBfWb0CFPVtxDCdEsDBdsoFsG QR039W0vh3ovdYwq30xkoCix1bJHA/w90fQCRGf4exc1ZdA+58iRrw++1vS6wy+ymC+W hB6ISE9GgOTRNSedbgMv6IGCnKhc8yxK205kCKPZzjGjP5VixLpTQP75YQ/d46VCO8JF kkdYfV0HTPzbvs8xaXjUnNn62QqXppPpsqhuwmqkErQQj24Fy+UpCrFxgKAHkK/5eoMU Nm46OuDGSUNj6QczZIMUSQZVG215kJz4yDpLbgxd3eD53/VTPJ4+FTz50CeLNwApGe2j 5SFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776286811; x=1776891611; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QarwDcfAAe06CKb3JY8/kgN2OyTVrb9EUoTBmrcnojU=; b=VluqVhfBSzyjRAijoBgMCO0K+mcxUdbJSlGGCcLozytaNybooQmgOvpm+bvPhzzlk4 Lld/WKKkz/yX96h/IrDArb6ps4hSvK+FloBCVVH684k342OnY/PzLkKSMoAddcQatXOg BPszoSnW6F9c0/MceGp0aavlxmHesZA59j6ITtRx2UKHCtaPksiz8oWLqmYuDi4YTGGo IDndUj/P59/NX4zxAj9HXzGrGNh6HJuB9OYZhcXr7knM2hOfnbfeURI2mQmyAGq9pNz4 s+mkWM9RzJ2Cwcb6qO/ZymlEfF2biZ6F7HqEcZQuLK4QyXt45w0AMUYNDWO3Ta/BEDEY 5drg== X-Forwarded-Encrypted: i=1; AFNElJ/mlhlphtf1eqD2tGCw02yVZmYr4juF1bXcva/hHEPC5oZf0qviLcksisd4Q4xXkF/9vPtxtWW/5BVH864=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6ynjstEkjbF4rLVJ3bSbE9DvccblnhSNNMTCFHUllSpJRhY3Z QsESrakZhnXQS9+yN1hCaC4q+829C6hj9WSdhgfRFyegajxHxK7YA83vhnlvzr7mIKA= X-Gm-Gg: AeBDieupOlF4L/AyG/l3KpEuX0qJ9TQrTwLn59DDE51a0gUTMxaf6bz47mYQMw3nZ05 fv5cWRNeFgotFPeXfr8fRkEvPbq1gkno4qXltqS2hhyYFhYsRyUO9TuEyB4JYoV+SMSetG/Stil suk3VuKHiGs0bSfvYwQW/FVWYBsCKbarcx0KujZAGcNl3BWF4fhjW1efsWGUFxiM+7aB5TO4i7r UqHViz4yeKaG/nj+Ga5DeJYeUjNXWNVeozuEtNk6xIJYaEOfjtxhTHMu9mWpwGfRJLlaKCGLh7x 5dPRT6uAheUlxpW0B4NXGCGgeJ4DerGHQ0P/fpytiFRzNCP05Bg+otrjhLAW9+HTOARftoYYGiB 61TSGn5L01/+FtaIwkAm0p/l/scUP2YwZmbfHSnhi9pGcgiEswOgRs0bsvH0cHAS0T9VaxR4cTF HvT/jAJgGzmMc= X-Received: by 2002:a05:600c:474c:b0:487:219e:42d with SMTP id 5b1f17b1804b1-488d67e72b7mr297880475e9.11.1776286811412; Wed, 15 Apr 2026 14:00:11 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e61cd32sm3511675c88.3.2026.04.15.14.00.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 14:00:10 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Wed, 15 Apr 2026 17:59:29 -0300 Subject: [PATCH bpf-next v5 11/11] selftests/bpf: Tolerate missing files during install Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260415-selftests-bpf_misconfig-v5-11-03d0a52a898a@suse.com> References: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> In-Reply-To: <20260415-selftests-bpf_misconfig-v5-0-03d0a52a898a@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776286765; l=2151; i=rbm@suse.com; h=from:subject:message-id; bh=kCNYcmfNgjCtuuNJpdXVk9xztupOqrlgLYIOM5DXg/U=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QO52q6ndPD+Zuqj9KzWJiSAHcc5GMQVf/6C90MqwRBbzhXDP7EeLoTE9HyFcc5JRBU9VIP7yPpd 2CYO84FdEcwc= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g With partial builds, some TEST_GEN_FILES entries can be absent at install time. rsync treats missing source arguments as fatal and aborts kselftest installation. Override INSTALL_SINGLE_RULE in selftests/bpf to use --ignore-missing-args, while keeping the existing bpf-specific INSTALL_RULE extension logic. Also add --ignore-missing-args to the TEST_INST_SUBDIRS rsync loop so that subdirectories with no .bpf.o files (e.g. when a test runner flavor was skipped) do not abort installation. Note that the INSTALL_SINGLE_RULE override applies globally to all file categories including static source files (TEST_PROGS, TEST_FILES). These are version-controlled and should always be present, so the practical risk is negligible. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 163552458327..1f4a8e1f7932 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -969,11 +969,22 @@ EXTRA_CLEAN :=3D $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) = \ # Delete partially updated (corrupted) files on error .DELETE_ON_ERROR: =20 +# When permissive, tell rsync to ignore missing source arguments so that +# partial builds do not abort installation. +ifneq ($(PERMISSIVE),) +override define INSTALL_SINGLE_RULE + $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH)) + $(if $(INSTALL_LIST),rsync -a --copy-unsafe-links --ignore-missing-args $= (INSTALL_LIST) $(INSTALL_PATH)/) +endef +endif + DEFAULT_INSTALL_RULE :=3D $(INSTALL_RULE) override define INSTALL_RULE $(DEFAULT_INSTALL_RULE) - @for DIR in $(TEST_INST_SUBDIRS); do \ - mkdir -p $(INSTALL_PATH)/$$DIR; \ - rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;\ + @for DIR in $(TEST_INST_SUBDIRS); do \ + mkdir -p $(INSTALL_PATH)/$$DIR; \ + rsync -a $(if $(PERMISSIVE),--ignore-missing-args) \ + $(OUTPUT)/$$DIR/*.bpf.o \ + $(INSTALL_PATH)/$$DIR; \ done endef --=20 2.53.0