From nobody Tue Jun 16 06:09:23 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 6B1963A0E99 for ; Thu, 16 Apr 2026 19:31:03 +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=1776367866; cv=none; b=Ddv7H0l+jxwTSx/m6znbrIwxiBAAL+Ss5KHFge44dmoH9sQeO7vXn36fS0vb+daNcreEbM/CwNwcNylfrWHx+8s7dWbYxt9PAuUCXFctms+1l3t7I9HqI8D3AsrHlI8UaKvgw7qJXUYRwJNZdpWvNujTCVnr4SPRbXaaA6aK+i8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367866; c=relaxed/simple; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i0DPIcffUS2enEE40wmFK68hvvft6ucEIC1XxKHucWuGOTL5uB4sjKd45z/GjaTCcnzvMlVfrDW/3miTZGv6ydi/VKzKBsATgCTixP1wVAIxVmpW8s+iTAVs0Hyp1E/rwtPG0XZtzJA6jVIG4adspGlBX3w26+X5CHHVWyJGrRc= 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=HcVKU3Um; 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="HcVKU3Um" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-488c21c636dso51571035e9.2 for ; Thu, 16 Apr 2026 12:31:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367861; x=1776972661; 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=HcVKU3UmRdE/4w4F0f7C/nCck/V4mTxNRWUdn7YZX+q2/c9uVDlZfXFKE2ZRp22xTO 9YWNum3HjfS/W0p4F67fcJ/41AgU8DOhxQaAgDsuDgzmePPKCUsls2osVfgmF6QcsgqQ 26oqWcIfZo3sQeSdm1GB9nPmCLaB/OSIyBLHFi8tB7Q2iMFWVfvujoJF14vfggE6bN1X +/6PqkNhPWMsIuQViySzUivXp5YlwFK8vNTmmRH9DUnNVr9KhLcRRS9ErUokfKuxYn71 5irMRL5dOwq5RggZAa43yr1J7gqerE6IPMTT4icAA203CF5HYUC+S9VoyO0nReAGIHPh tZRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367861; x=1776972661; 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=apms1nT60uuMbGrmCPOAd5+D2gadx1uaLW/Zi/y5W8U+gMHYrESxdnkkWaxWs6BMpc yTvE6rjcfX3he3bjhoMrgvySDKnZkSfoj7/B7Fx6fgaOkti4ITs/Q9V+43k3JPPXD1WN i7wUdO+LEQZipJsP0g8nxLwpnK/nyDLhhgAG9dGaX1zMGBI4mXVrc7Ra1GcokDEAmEJ+ a9QxzRMN/flXqbTo4LFcAZMe25Z114UgyU9wIojXyau2snx61a8hdSgvSDrUcmJW2htV jb/mqZ+uhnODVmMeSWyzY+PsPxNNhw1q59avfCYo5HxESpE+PdIpkRXstTe/6fkw+TKr Rc4w== X-Forwarded-Encrypted: i=1; AFNElJ8MiRrmD5tU8FwQ2/+sxHDaZx3FCVCXetTiFiyxMTcI+vzBEk4lTzizbb0m/+/NLA4NisoOjohwiQVIL1M=@vger.kernel.org X-Gm-Message-State: AOJu0YypEOPhCSFrUUKmrhJ8HdbSePACPamGFqf4lzSSxdRkSYSjUiVN 8aLSjeqVmskhSWa+ObfIdV4OUh1ZLXOw1nZrGWcIbGCPXS35ESE4eAHuR+RF+cMt22E= X-Gm-Gg: AeBDietoH+SC1Qpw4Ps+SNS6YY6IlrqT5Yk+2xI7+iRxTEySCSyXxztUpU3+RC2PNYa 4ZKpjra9K2w2rDEqBq6bDwHNXsbP9zISDBT2xQk0v0zRBk5r1bFoTdUPK99dbmuWJYiPR4pkNv0 gnkFGV/TWs1RHPDmDUgz6TGeuazm4ofLjQkE6ZAD+WvcY4m6NBZHp7CsKCfLgMVuEBspvUqMsL/ L+pvAWke4oUKWoLl3I0ei8pmgWrKFuwkJ3C130KM35NDlbSDNfX2u/mzQ1T0wNyhZrvbmd2GqgM UDt2VMctA0gx5ZIVEc4QM28YEGGDcqgGBvdbIU1pv7dOeqBVU4snKFwvNTjysdZMH1XNrzM14+R X3Qq719Kn6daox6hYW/1sc/faiqlwK2LD0KpKHq9UDNmJsCiTOQxojhswEy/NfV9jcbyGy1Lm0r N8xfnEYn6PB2UXZQNWO0tFwkE= X-Received: by 2002:a05:600c:3b20:b0:488:ab37:b442 with SMTP id 5b1f17b1804b1-488fb293c76mr2913935e9.28.1776367861036; Thu, 16 Apr 2026 12:31:01 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c10a688sm11563728eec.4.2026.04.16.12.30.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:00 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:50 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-1-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=1377; i=rbm@suse.com; h=from:subject:message-id; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QAPbtf49MZRZIT6BCmzoEC5ue1MD2cdyhiDdjZkr/s/rJ+QXHkqIxIuI51vftri0M2v9UeZfIXV wVe2C4ANA2wU= 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 06:09:23 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 D85623B19B2 for ; Thu, 16 Apr 2026 19:31:07 +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=1776367873; cv=none; b=bBqfA7pVvmzS2WjSyuUWN3tZaCPIocUx+UQI0ucbVCSu8lsl/GO4IwCakVhSm5LkkNJ+8wlRntpMycmc3dOgEZWFtjvvD7VkO3scRGUevncZI/RnR+zCxZtXnEdmAYnAo9nSRlSvHJXIwIlgRKVax4EfAjUcfd3wU3O60MsQRhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367873; c=relaxed/simple; bh=f11SXZe+WQHJaklmN8C/g2Xt195t+y0z9AhtKSHsNYI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bI3KlHU2Pf0nyoGRbY+tif5/YWVeDqzrUQJK9/KLjKAEOMX13LJfRqBd5Ysl89YQX+8rkzyX4l4kYIFqOxUNajBM0RlJGffxsrox8wH8rLa5K6SrOPYIuSfO+uu1y+U8JP1bPHxyZLeh1Fyv+AgksPwe85exHyd9TfywFQcjFoM= 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=D8L3gqFH; 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="D8L3gqFH" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488971db0fdso84204465e9.0 for ; Thu, 16 Apr 2026 12:31:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367865; x=1776972665; 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=oR0RAEV+sroGN90lpwROKTuzfL00axzp/LpV4EpeGlc=; b=D8L3gqFH8W1HvvUGbDXOHXMW7tP1UVzCbFUChAcCimIcUAmqTIzJp2xzHET/20C+Gc wLiu0Y3hPP+RH6DBIesz7/PC0KLn3BYVB0bs6IC5xP1KtaSy9M+YeYcnWX4BVa/tV/gG GUxYWIxf7/XrlmgKggRs33I+JhkohPoS+NNNW/BbLPV5bybrdWybQdtE6OrtejKQnCwG LB1qL94knhidNVHHqEP+CQckkKpuGlFyfouNZ5bx5vAvygAltqQj8YLNWEYMck1iIanZ GP80JgR689BZJAJpOe9f2kPg/bIzh1Z1YdvfwOb9mmcpImEi2+U5lSY8/eFZCUONLNbO vXCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367865; x=1776972665; 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=oR0RAEV+sroGN90lpwROKTuzfL00axzp/LpV4EpeGlc=; b=JsxBYQJtLi/yruV+oY+v8CUZ2TJ3J9C7uFNpXYCvfH9BdW/0c8x7NrOE8jKTt1uX1N PwKn1vFmEOh2fObxl/7hdcOo9IzhWcQVEldzcjLbNzx9NgtdN1Id2HkbIArdK/bAV3ry AYLs0/EjhvteloJXc4Fc45Dc2MqZ7d0/nOh1aISiBy7LcezqdfonvoVU3qwK32USFvjz b6k3fH03aq84BTQ4L2bQ8q5zKamNh8rMORR+Mtd5X0xHAzaOdT4XPwEwxAOmyUXDUoiR e/Ycv1uOsdvr13oBOrHJeI7Xp/07O+YDTql3KsnVC8ceoGLAM6qI9lXr5GDEFzHBWNr9 2B5Q== X-Forwarded-Encrypted: i=1; AFNElJ+cfSx5Aa5H9sit1+Vezo7IVUo1F888myJR7BDyE4v2wzgjmfCckqNKVZlVGTRr6FQi3bCgWpHHyJmZe0s=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9b1JWPq79+5eudfsp3XcdnGIIpIoWAUs/hI2jnxUxnjngq9z+ jcSWgLG9Ig8JgwuwapQsbpJU32FSAwmEcSOofE+Tjc9Ra0XOQNBP5pje+1139HOfIcQ= X-Gm-Gg: AeBDietpYKVbjGrLgcONwCKUPQQwAfzYwvRRmIn1Vi9ExumykuMhdznEQQ4EI2tTtFO l5paNHrsTTHGBUBfFIUM4shWIK9qRKs75UCrZmzXYiIXrIyJQpwpQjd6qTPo+eG1vYJlO9rYNXr KBJlYB7SLq/TFizNkfH8pyEof0MwNsJTJynVvO0Cj0Kq+06szyida7YFJESqwAk0/2NVqcR1TbM xcriD4RN9HOIBJNrlC7sR8OQ63hD1hMK0zbyGFYKHwZDev8lvxNDTyLUy9BnVrQ1TXdnpJz0nvI 8nGyjcUFNcmk87/BARx21t8nYYpibCStZnKRozitUdR5Yn7bchTYL0CJQifygXKS3OtKWxR2bhR dnIbaNl+3mr4HR5pTpSZxjCRys15SJJ55pt8dBq+isYK7NDn8iFo3LW9sKSjCGmcwg3SJt52gyP LBUdw6yihNOqLEhoVQ+nbR60E= X-Received: by 2002:a05:600c:35d6:b0:488:ba5f:984f with SMTP id 5b1f17b1804b1-488fb25687emr3801095e9.6.1776367865550; Thu, 16 Apr 2026 12:31:05 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c606222sm10959044eec.8.2026.04.16.12.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:04 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:51 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-2-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=3692; i=rbm@suse.com; h=from:subject:message-id; bh=f11SXZe+WQHJaklmN8C/g2Xt195t+y0z9AhtKSHsNYI=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QGEqwf9dlE76lZ5IeGnsI6DMxcaVhpenNsPLey7kjYgCDwh8n/q3cOelnT/IV1dCgTNowTPqcOp uGrPga6130Qs= 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 | 4 ++-- tools/testing/selftests/bpf/test_kmods/Makefile | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index c8ba8ccc2c6d..52176dc226f1 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 @@ -711,7 +711,7 @@ $(TRUNNER_LIB_OBJS): $(TRUNNER_OUTPUT)/%.o:$(TOOLSDIR)/= lib/%.c $(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT) ifneq ($2:$(OUTPUT),:$(shell pwd)) $$(call msg,EXT-COPY,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES)) - $(Q)rsync -aq $$^ $(TRUNNER_OUTPUT)/ + $(Q)rsync -aq $(if $(PERMISSIVE),--ignore-missing-args) $$^ $(TRUNNER_OUT= PUT)/ endif =20 # some X.test.o files have runtime dependencies on Y.bpf.o files diff --git a/tools/testing/selftests/bpf/test_kmods/Makefile b/tools/testin= g/selftests/bpf/test_kmods/Makefile index 63c4d3f6a12f..ba6f6ed6ab8c 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 $(abspath $(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,21 @@ $(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 +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 06:09:23 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 2A5823BB9EF for ; Thu, 16 Apr 2026 19:31:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367878; cv=none; b=jpsURP6rpwKF9HycmZsUeiY0RhAns4DHj3q9oZfqv4XAOQ+ZHY+MM8l/CRPyCld9p7UO/n6GZvor9WYYHUdyadBK/ozzn9FiM3vPZKxAYh0N/rJetQFzG67XK20t4rH6Xvqq3NPp5fzVFnbGUzGFN+ohWYYo556ZPzDp953ARcg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367878; c=relaxed/simple; bh=cj0P8iQTxhKx3bSgzRokYehM+wLn55oXvg8MqySgLRk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=d09NK3wf5gMvSEz92Jmy6NWmAQ2F4kIJACvnPhV6hYcMNahV7DzA3slEBFSXNKsAoHLOJAK+jAdICMPFVphl8n/pJ921LzDcME0IqGojArib5wkPVzVyIBerTMOYM7Xm5eXFzGNoHBzdFHmo7v11EpZ6wh08ZFEtayJfrC+VDQw= 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=Ayk0PLLB; arc=none smtp.client-ip=209.85.128.48 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="Ayk0PLLB" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-482f454be5bso10524395e9.0 for ; Thu, 16 Apr 2026 12:31:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367869; x=1776972669; 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=DM4jCKdr0JeR/MJj5InQvK1BxLcWidoDw2rXmGRB1mY=; b=Ayk0PLLBXfIP1wbZzRNwMpDTlUwcLVHZX801sHy+uJzF7r1+Yk18LvnndG0D3AE29x q3dD5oXYvrwAnqaUrSa65ZTiVw87wAnKvwtBNEapIQMBCJNMVw2Crwrt+0t+t+DP+Wg6 o5Augvh8zHEBtnoS5+5LIAjpQaPfvbeLOlCXYvcpZbGl9LCMAJB71WtkpUTHe//gZtep aOtzX8a3Op9Wr3GrC2768obRIEGFBlSJ7KCf7grd9b6ryukpjUiI/rddDEwW9noHhmIc i7VPDA5Uggiq66VRL4WqQqlzNVWaf/xHgT8HdCe4Sht53+Yb7oHh/V98+0/QI+bLPlEA xFXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367869; x=1776972669; 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=DM4jCKdr0JeR/MJj5InQvK1BxLcWidoDw2rXmGRB1mY=; b=OX2zWPmI9zm1kJa2ZEwVAbhWzJ/nfHp3L7qyw5PKtyDwIEpB1p2e0wm8qhvrwFy8ru usCAtnyJCnOifrSiOVOqAaNCa2ow/21c5yQWtt/UAspd8nAXkOyUvV6g2SdDKUUH/REw BFFeB7ooUkzZmGtnadlOepvgx2o5PaathF6SY+MhAj2sndDveM2m/CsWN/6uG1DVu0wn jf8qmV26nIrYzhWSpjvMM3umCGA1quZki+cbXznEb9FrmhE6eFTxVnjkxIzFE2ApKOrH nib8mlGGuRwAohPKxzDN7vfavuAoVaJny97EIWUL49Qpsu6exlvP6Oh5fL/1ATIwhHeb cTfA== X-Forwarded-Encrypted: i=1; AFNElJ/wJqilzuWBxVPCRYeQxzdw5PjEbe17R5jdsqHvWXY93ksdgLTCdHJ5xOgLR8CCDhyHkvMIbNgIFuPP7U0=@vger.kernel.org X-Gm-Message-State: AOJu0YwsnPrbBGY1sy7+V2HK78/yn5eqEremTnxoJdX5ns/5SIzpfjap gm1JtqLB0dXU8wCZkdwCN+hhKP6+sab3j84Aqw8Le6AUxOBuKIJea27cR9meIoTuwBw= X-Gm-Gg: AeBDievXfUbM50nMJWk+8sX4ZiohvyeW17uFqN1DOO2ifyPpm2uo+SoRiuAvfKJn64N ZMy4U0BNkUnUdigGEMSV5MI1MloBlYK6DvVcKNyQa0IeC+vSn8LOTjaV/DChw61UGGQgQ4VYHmV 8yxhfHKdnWwRfAU1DCVo0AtayaGz4hkZFJFQCUqHIH9JZhYflTaRVDh5PW4A3UcF6gapPvV/vj1 xcFri+EB0Ry7wFHxYIRk0fKbAyP1sWDEFCJvPQQnXUd82dGwQauO3fzaUpRFhEOBinLfG0zqFTq XyBgXYdpIk4rDX1OfU8RRcCGLA7ehJ/cJOKMsIx9jV7EB9faoLMbDgAl9+hA5hbuK1BxJNJOmnH Tsy32VhR6Yi9p3KPcrIJ8NUhjHzZW0rXsuW6n9KjJvdOp2/hNgU2Gx6jxF7U85EaM7HbCx1tBgt U/bkItCpM1ze9LfpscZv6hBIWXlumSjY+jWQ== X-Received: by 2002:a05:600c:a41b:b0:488:9c1d:cc17 with SMTP id 5b1f17b1804b1-488fa8f74ccmr4360525e9.14.1776367869264; Thu, 16 Apr 2026 12:31:09 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6a860fsm6956298c88.11.2026.04.16.12.31.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:08 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:52 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-3-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=9336; i=rbm@suse.com; h=from:subject:message-id; bh=cj0P8iQTxhKx3bSgzRokYehM+wLn55oXvg8MqySgLRk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QO1fAeUfHs5sR3iNuAoUVaG2QFrRiCNsrhFDF+kv6LtXQ2f/HVJ96JCtOS2JPESG7hMC+aYRfgz GAH5/RTu/wAg= 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 | 108 +++++++++++++++++++++++--------= ---- 1 file changed, 73 insertions(+), 35 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 52176dc226f1..b23703f2cf89 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,81 @@ $(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 \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + 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 \ + $$(RM) $$@; \ + 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 \ + $$(RM) $$@; \ + 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 \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + 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 06:09:23 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 6388934C139 for ; Thu, 16 Apr 2026 19:31:16 +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=1776367880; cv=none; b=apqg7koHLTES/vRyhUodatd0Km1AOfKc05xUXYT3MY3LnzYEiXH1SnZ3vHOJCXdO2e2C+0sYY9RltBCUiPXXQKg9pCSOL+bXydKCiqydr8O/H3fcTqZj7mshy5pACkGB0pQNP7W7GX2qUW9HpNk2Rc+NYcXJvURikTt0XQXqXT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367880; c=relaxed/simple; bh=LGjyQ4DJZImIa+l6d/sVh7HyuyYJEGS3b/TTHgcThlA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TNauCnyUtscPDJnKTAjbFaBn1/cK3fzyYMWNYmTLXqd+w8IC4FNgtuZtERbIBzpVY69yK7iY+le0nSCyPXeqtb0K+5Mb9U6hDDw31lN8M8rwCh1Egp9IN20sqIF2R0ZIUkMQuKELZSxiWja/eZBeHCDw1zb/mP1IEB7dmFwoD2s= 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=ERPlUVrt; 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="ERPlUVrt" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4852a9c6309so77128375e9.0 for ; Thu, 16 Apr 2026 12:31:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367873; x=1776972673; 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=z+TFkSx0/A90udZGFwEtC3VdLgE/56vsioCu8yOMo9s=; b=ERPlUVrt+QCIJiDX+FG+8lqoWzIs+EkhCLMF6Fv9oQPegvHry1yP5aSa0fACAKYDv5 mNT2EvZwLXvCX+x7TkG8FBfmG8KsIILl1AZIonwqjrRqMdRAhY9bV0Y9QtfLe4rYDL5w oxaYBleOBohAoKmLaO8FxbTCGZKak1gzDVjvi8A2ySKl1AZaQBN82nMjyXYogL8e9+6v p6LHXUHAXFoUyWa5m7wCFXXhFxztNeJeXLXQnNudf4152O8dxE4vbXsvCIygV+PA06AV agurNpWttk5LW4lmMD9JB4R04jJD2WRTOPinS0C3EcElSiAO3Hy08RrPYRA84bb3Fhwc x0+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367873; x=1776972673; 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=z+TFkSx0/A90udZGFwEtC3VdLgE/56vsioCu8yOMo9s=; b=TyE7CuSuHRlIGNEHeb44EMF/Gv1vy0bnIYFXv3lmEIE6Y2TjNBU3kP9SNVPkOD622D gPdGtW69b2sefNgXlREv+uVrjYIa8c9lyAoAobovomXN9TQREfcAxuzAOGBD8HzZKmsd b+5ywZTu7OZBC9Wu9fmtCi6VPhglXmOWHFyQ49jmSG/pTBeqqtJX/Ou2ihP1+TALOT/8 MYBo9sI+xMfz/A2d0gg7csX0JbT2dIQ5vX/fzjwf8c3ogezHMjV4CT0i6iIx0reJS6pL zZ6iXDJWncai/ldL1PqYHfzHCU4Y4Jnc7pssVQF4ccV8jgUcko4eJSMJcP5SuRxOcTUY D1dg== X-Forwarded-Encrypted: i=1; AFNElJ/EHbsmDnQgDBviAFxWzNw+60tD05c1omrKDAUrX3l3x9UmJcO458VsSwVfACavunafwt7qetf+BF4ot9c=@vger.kernel.org X-Gm-Message-State: AOJu0YwBTgYHnZ5bcPfggT6cSljnoMgKx3Cc0jxNl5iDucxF+E4F1cqa Rc2BDuSYIDUChKpdKu9Jzj01H7cr4m6Lxh8oH4o9s1qox3z4RlJSsAYND/JBKZ4QT4s= X-Gm-Gg: AeBDies1+M034bk+U4/pQ8a1NMwbPvQu02sIlKN9RAa+3RdL3gSWLt+qG3JObE83Ogk Ywvm55V+IQZS8x4AOqb/3bwlUCfmGc6XFLsz0UgEtzrAWt/o+4nOwiQsWw5fPZmzuZvewF+yQX7 AOBiIZmVdfXzZCBVkZpa9yrAUBw+qVXzmRFPOCjBS1R15t8W5hJ5FgsZ5ZkyRgrxULz0b8sp3ol 6lLsXNLCLDdUqW4TzdkCsfsW5JPaNau4kpe+tGqvkkdbY/ZXDl3xqeDjlsd3JkdFKOZTZIxIJok LP5bRkPBT2u2jtBZh9QS8rnJPpoHZEt9dQlOfPvF4y9UjzGA2cBdyg8Hn+64MsTgY33m1bIT9Pa bdSqruePU0GMJcXwvwd6ecnrhhAlV2P/OFGqoxCJu1yAVwgU/6NEIEl4dV19ad7YZmz4vxGEmkd 2nXCEYF+a2E3P5fbwl/6voBPw= X-Received: by 2002:a05:600c:c0d3:b0:488:c282:e77e with SMTP id 5b1f17b1804b1-488fb2a698dmr1869965e9.28.1776367872924; Thu, 16 Apr 2026 12:31:12 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8eb8443csm8749784eec.14.2026.04.16.12.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:11 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:53 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-4-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=1555; i=rbm@suse.com; h=from:subject:message-id; bh=LGjyQ4DJZImIa+l6d/sVh7HyuyYJEGS3b/TTHgcThlA=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QI08/ckqohz/nSiAlXnI3fU3hujs2YjUPKtdoTCJ2gaAO2XqJOQXDYVBE1H3ACYPQ+TXtotgsne sNSpimrFKZgw= 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 b23703f2cf89..7d1e5d6c30ec 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 @@ -723,7 +723,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 06:09:23 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 0399B39B49C for ; Thu, 16 Apr 2026 19:31:19 +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=1776367884; cv=none; b=F0QxCxBFhQFtvFBXDaTgMSoqzCHZb/YhSYCssmPWTUo3fa+Ap6eibht+ZOVEqGUkFULa/LQC0ht206gziNetosyosnLdV0cnMw8VsOqjiJgqFtlKnSTOXqohdJ/mlNtXgSmP1RkPBHBwsPY+FdtMunvMEtz4W6dWSAO9DP9vo5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367884; c=relaxed/simple; bh=XgVya1wOhlmwdTfwic9NIwBF44z1ohItenbrD/1EmJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sGuZ1O8Avgeuhp8Wc0nv3LsdLJzia2CHC1aI9idHyOFI8W2KOZY+b9lzm+NGZdutwSccRL1bhwIurIdaiVZatajfH2rfVojDA+x4KDdVokV5oQ7Egdj0ylGeVmd6LM3sSmX8HO/XzHqabHOrZuYbcNOD7/IreBhpZKIogJkTDfI= 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=cCubihGb; 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="cCubihGb" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488ba840146so82959205e9.1 for ; Thu, 16 Apr 2026 12:31:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367876; x=1776972676; 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=xFAhrEcbWUNGkUNeZMznGeM5elrK7tHUIUxprsV4V9k=; b=cCubihGbFYVrFfAiD8iZrYTo98eSUKwUbTcrieoOV4p8wvsn3K1N+03DrXdiheCEbN ouIdOlK4kPtm+ujlSpx3fVEpBH2p7lvGrBLS3UcoH1D2tO+nmWbx0pr1aRwfhQocB9wL eBfedVsrvKZrnavYnmNHRRyrwUYNaoHIYUtkgRSLAyX5eyLdldt3+IynjzwsXlpKlLlU p+8uj9gwDnIEQv/P7eIQZHo8lRBGRN7yhVYUZyXSJtZzJimcu9bb/uc+riytYyom8ihu 6YetlVXiabFfSHdoxIpMeuS5pY+gctN/1uehCy3IfS/2oVBrdivrt4abZuzJsFmLhGV7 eIGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367876; x=1776972676; 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=xFAhrEcbWUNGkUNeZMznGeM5elrK7tHUIUxprsV4V9k=; b=lu+W2Z8kA5DNxiD/VzqSvsEg+csRChKJ1m/W6ZVk/a9ERc7LtgcMiViUAxtqsbNOBz 7a07xVFsnxyUVQilHQDGsiOgG81KwhHimaQ9EE2NtrvaNm4SkE1cmIox6HXOOfn6t6VW i7HZ1SfojN+c1wsf6O2ot9iqOWI9eKZxorFUKkgCeltuW7sPQoncOOz7niLiNgVl2lfD RYoA8J2qRiy386PJy0+n0Eqz0qbK5tk8ofHYY3mJEF6e/4/2YPT0+DUNkhPdoywp3VgB dRBfaaPhF/G9SxoDLEuFs+k6lM5LGBeN6iNMWqXDWQzv67prPBCI8haLlJj3rMDFmHwn NAQQ== X-Forwarded-Encrypted: i=1; AFNElJ+Ob6r0QrT/ND5eLfLzfC468Cv8rwy+itxI6ZcSxUbTyuhWl5fAdvEfkyvcZsAYbFDw+7Bs9JtK3cZoVsM=@vger.kernel.org X-Gm-Message-State: AOJu0YyC9uu1NSwGniXOCgiJU2HlJMrR4bzdivOYWLrBMMWqCdBoBSmN N4Rog+/OGjn1nyM4zp3wv8tZpJy4H8jS0x+cMDFKNlx4RRkHMnZv8TmzPc6kUias4fs= X-Gm-Gg: AeBDietBJCb2s+RU2clP2I4dMPxvVgwWavqbdMk1PhBZzMJ9gT4SMYJ3/L3ysx719v0 uWWbLuhDePwq+rhMz33NUtLcPmBKxanUpYHaR1othaqcpJZ6n4mKIlFL4534/0x8n8iD1/qAytw x1vAWbln6HHfK09Vj/naNH+YmGTcrhsW8uDiY4tG3jBfaU6sbFXRCSM5+CKJDcK+YcdZDS88s84 Jwxp2qXFllz8P+mvUI2uuEj03lLiXHAK98UkmIrZNWKU7KCMIjmJQxnBrwUA9v75deX7R3O98pj R/oC4fyPdnU+cRu13MjBFDf+BsySEDyNhpheqMiaajTjL5sfsYn3yymfx0xHZ9tERgz4P1VQWf/ 7GaHNuksclaI/42fNVdyXf+UsgPge1mQgKgoqK/gvJoniOJrekRXIUhsFjmtS5XGg8hFFM7hLVX ZLRg2RvSIzTiQMFeb5RLEzSgtQmiiNkFhNdw== X-Received: by 2002:a05:600c:c094:b0:488:c530:48a0 with SMTP id 5b1f17b1804b1-488fb29afaamr2206105e9.24.1776367876414; Thu, 16 Apr 2026 12:31:16 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c10a9a3sm10199034eec.2.2026.04.16.12.31.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:15 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:54 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-5-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=1610; i=rbm@suse.com; h=from:subject:message-id; bh=XgVya1wOhlmwdTfwic9NIwBF44z1ohItenbrD/1EmJk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QA8gh3dRHBMtwujYN77ELK1Q2y3lgLFLhXwEdccEQHfAMu9omeUR05M2rBWqvjkJko8y9zwINYL QnWPHjqrffwg= 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 7d1e5d6c30ec..b3eaa4a93707 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -717,11 +717,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 06:09:23 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 19D173B8D70 for ; Thu, 16 Apr 2026 19:31:22 +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=1776367886; cv=none; b=by/67CqG039ExMD+z7ObPpyKTmJb6vjYO84tJYglKIG1zwzPgDmYAkbGr2E06eRYOiw9pHfkKNw7cNaF4vrMWKI4FXWetO9enD+PXVCoXiGERSvofUQA2FF3jV3vPPleYUM0TRQxQfka1TQBSz0yVfBJcOLcxQPkEjXP1QF/1uI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367886; c=relaxed/simple; bh=DXqH+tS5C79NJ+J0fc2RdGELwdh06ZOzO/YLsYIRLlg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ht+tRqX8RRdWj0IMPNKDLB9ysexsYuWFGyXugXs8PA5Q4/NjvBAdxMV7SGo2nXydbS0K1uAEsxRHzKpwUOpUOeVnYLZClJr3w+xIoKf/DEYjZrOz3m0etWvy0nv8M8VEpfWc5n/JhJfFFOBMCocKXPanS7izxcoN5Vc3FnCzIGc= 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=H4qHn3q1; 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="H4qHn3q1" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488ad135063so80936185e9.0 for ; Thu, 16 Apr 2026 12:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367881; x=1776972681; 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=yTWGN6AOI1k/C39wxoz1HQGoi2yZHDMyrh0AH1c9Jig=; b=H4qHn3q1cfKprzjTQVYzDaUkD+5NgutRvBRZ8lw9ynjfPrP0DWHTRsZ1dY19tHSvML ujeo1siEkr3V/6D9oKQkRaXwq6HfihXr7C02COYESRqUfSKwAvcjgUokNZ2Np6XZ5ciD lxnWTJj4PNttaEU6Q3Y9sJxxk2vqth/bUA+6n8TV1tKYHmELfQVc0EmF87BS+z1VIZw0 rNzQv6SBLp8OqfRZWyenJ/ZvNyYJtvpFUnLjklcILXR8tb0eXRl7wgi7jMSqS9dMvu7U t49MiKk3kVlDcsb7Nyv6qiuYYCqZz7c6l2exkRcWXngVj3lms4mGFgFqUnLxBsjeAy9f zBJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367881; x=1776972681; 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=yTWGN6AOI1k/C39wxoz1HQGoi2yZHDMyrh0AH1c9Jig=; b=JJc/Mi0t84TaMYjC7SzCzOKnnfo/tHv9yGtgctlIVY95tmplbOZ3g27yNZMu2S7W7f Hut/up3IfGKOmQZ8zrUWt3WjqczKXsUJrjtuSzg7FMyEnqB7Np5HjLQ5AafFC/j6Jsyv O27/+gjF7h9bA80NI9dq8UUC7PfBuYlfPz5CgXlJC5Fb/s6d+p4u+lRy2cRp8XxOlPTW OnrKsasfkRA4/1l/Is6ffj7gtXgGakkNpDUUu3IO6ZJU2jIr0hqpqWV84lW7xZyXyz4f tuf8cZBMut2iws5hC8RpNWxjCGOBX+76reXNKSojyG6sFspBNlnEzlBoZFkub4vFY/uJ 5+ag== X-Forwarded-Encrypted: i=1; AFNElJ9d1n0eNgcr7OHXjyCdZMZdraACDmT17Tj6bLEmXq2F1BdonVLsh+zbqrRSsfvN0fHQrtxfsQMMMEv0ftY=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+zBIay8GqmyGx2JzUtEV4lrQrwe3cZO17l1K9ZHDITby3X9hk mVWqBgnmDxCCnklpBabPm8Cx7+R5fK64cm7MBFFcB9BgrEIG4tLwJuEhg2Mn1Q4jJ8U= X-Gm-Gg: AeBDietKUghH1RPcPdKtvKU/xYupMPwHnXuikjPOnGcvVSXSUxt8ibDbgE+J4zyhWzw IcpjXfudihVMkgwlXOWfRC2w/f2Y4nZb8DGKp0KwPtrbU/WRnHooAZ295xNtnDmh4EuY/EIxkeH CbcNlCwFK4679kFmYm9wwrTc37PugwuML2fQSE5Sd3EA1kd3Q+QVjZ3KQrNKOkqFr9NqgkrjZn9 281wEsbUOVoWgrAU4BJwa6PGsnbkU8k7bNtWJ9ekPgEIEtFUJ40tVZJVOizhZ25Dl4gW1xYvbjM /jIf2LcidUMDvFjOtKM23latVqtFdQrD34B0iyR0i+yOziG8wOEPkDI5YymDD+gOmX5W0zYt6s/ ITKZjXTlGhsRarsye/nv1FJvIzSKTun+MLJK4kP2Nfw2h/WcuopTNqWkPyH/dmADkoDhWmZTHq0 Umqs4bsWUS0JQU21vvOuWzY9If3Fi0/FvXzA== X-Received: by 2002:a05:600c:8b32:b0:486:f634:ef1 with SMTP id 5b1f17b1804b1-488fb27fef4mr2800715e9.17.1776367880994; Thu, 16 Apr 2026 12:31:20 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6a8496sm7077970c88.10.2026.04.16.12.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:20 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:55 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-6-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=2121; i=rbm@suse.com; h=from:subject:message-id; bh=DXqH+tS5C79NJ+J0fc2RdGELwdh06ZOzO/YLsYIRLlg=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QIgMmMhaE8XS+X1UjOJf+TVsz24Bt0Sp7ClqyH5dO97kGSaeKzEEzZ3QFJbjD08OSD4LVRrGaJG 0SzAB0kICWgc= 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 b3eaa4a93707..5ad50d3ff2f8 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -708,11 +708,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 06:09:23 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 139163E6394 for ; Thu, 16 Apr 2026 19:31:27 +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=1776367893; cv=none; b=ZOtBmK1/vCYwnIQHoukGgA2YnTEE62N+08Hu/BByXtu8hfZcf8sTHIGHPuNR1aB10dt45WveX7TkiIipjE7+DrFVY+ZcbnqtKkIadxPxu11hE6jL0zesqNWGXb6Eh2BYAEMWzY3y84qTJuwdvI5H0U6yhFxnidIu8ZnFA5QxxiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367893; c=relaxed/simple; bh=hWJ8+H+Blfisu42DAY3lw1ddjSGc9cOuFP++V3VJBps=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Dpngi5R4JAeChZmvh8GBJIq9xu6+dJS5SXmzfWbDBYTIumwguPFh1cR+uXHG05YMsYoWWJM7c/QVEcddyZuphgZSquIn2a8Iw8KE2kSPxWTZFI2M+XfXlJ42JMhUY7ZVYd5HPNpcPnz6f09jCK5/311104QaioF8Qsspj9MvLQI= 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=ByS7dGbb; 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="ByS7dGbb" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488af9fdaa7so58047195e9.1 for ; Thu, 16 Apr 2026 12:31:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367885; x=1776972685; 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=CzY9VRtrVYWSoxe1jiy+R66Gwq92f7iLl/5W0Djg918=; b=ByS7dGbbevAnh8PBQNa7Olatth2hObilBy+5syjX0yvEtTMB3gv5PKktgZSUZ6CSHt YK5KrW+/DK1uHT8A0niQ9YqAx9SFrimhT6lD6rsr70tMmHzuaJNbApnI+Za6wI2wMd/q YTMnIwsAdehWHNrN1fi9HDgkadCZK/BS/ecp9ZigwbQ0kgFci9D4TeuEYnEsxL+FBD02 nXyt9f8hxGn9JL5B8UDFfucDw53WKubhN1CmU175PKUtyVJYgqb3LzFJqjdSHX2XjKpX 5ugwVUFL/ARZ+HOK51zunGb4xub2/5AW+jaoBzJJ1SBi2CfYsI4rcupYtDHj1nXFPO3+ /iBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367885; x=1776972685; 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=CzY9VRtrVYWSoxe1jiy+R66Gwq92f7iLl/5W0Djg918=; b=ntjMyZhEgf4JSXxkwdoXju6s63HLs/xrWbcGF/4In40uCvi3DW9LB4gJpR7P/QSSOy /jz9GthHfFxmKa4YiCjoTbDsmkPesjU1wJSHW1GxZPB3Asy3RNcbCBxFHIBL9pWuVPaq TVKact7WnfRyhW7yUHvsT3AkeGTwpsM9FurIJN0urs06a+m7Yoa2q0YynrePO5Wd6NNC bTqA7z2NzIzbSxU6AXAIILgZTBhV1/iqUQpmMu2DFPabpIceTwWzPNlm9LZ+Q5TxECjh xGKL1wHZP8u195uJ+3VANlmAUyJb5Ql4rFewyi32eslOCJjOXLpMBPe18XRsyjglBW9b ZZwA== X-Forwarded-Encrypted: i=1; AFNElJ/YQxpr2QFoFZrP94ITnl3LB+AmwY+TfQPlaqP4jNS5W7QbtnSnuTsVmSuCbzifC6B2tUgFrRFuvQEOIBY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4tSRRqc83USa0jThSK4zGygG6F1O7W2hMg/hJsqI2JUqFb2Nn 4gRd4pRZ7SnYkw4cw6GO5vHUBkFZAkEF0v5twVVL94g1Ysu273ODSFrpOi1B8t3Kf+4= X-Gm-Gg: AeBDievnZ/ukgm52ID6Rs8XwJW+mvemdg39glmYUlI5uC8nBHajQzMbXycZXvyQKxAk UacctZcVwDk+ykro/jaTh2Ax1hPjI+2hYZrIjyegOWZlr188bVcW7wU4lDRB72lrpguqQQBbXxb 0iIK1oBKttd03nA8bkUR2dmybysNzGO6V0hy6xEKv6TFEWI06LIZ7lWFJcxnshFVkDtTY6FlxTH 2MtWnfXI05gXLdw462HeDjPsgTC5Fh5dcNnuPCQedZ9pcUIphZ0ImVwZyS0kiW1qFUjCytpodLv q9pDt6ONfg8PlafcEQMiDW+l5voX3wzrkECAntI8BOCtQqQJSIrUWT9oUutwEDfclfzFfNCMFSC TPoA8bZD4sQB7xbtq+/EsfC+e0PKIB3UzEuxLKthzLUXuEfNJLKFkLTuNzmVcfANQUU/Ci4o4tN GUA79c4JcyS5fmJ6z0+nqL2R8= X-Received: by 2002:a05:600c:870c:b0:488:f360:da55 with SMTP id 5b1f17b1804b1-488fb26a08cmr2979535e9.12.1776367885464; Thu, 16 Apr 2026 12:31:25 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6b4fb8sm7038996c88.12.2026.04.16.12.31.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:24 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:56 -0300 Subject: [PATCH bpf-next v7 07/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: <20260416-selftests-bpf_misconfig-v7-7-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=4967; i=rbm@suse.com; h=from:subject:message-id; bh=hWJ8+H+Blfisu42DAY3lw1ddjSGc9cOuFP++V3VJBps=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QC/NQqkOc7/4wXuZel4KZQa2/0iCQXtsCyHnx/qHGepqi9ZH/1cnpG+Y3ttsMsWCYYjv+EQjyFa 0ZPtDTlYedAo= 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 | 50 +++++++++++++++++++++++++++-= ---- tools/testing/selftests/bpf/test_progs.h | 1 + 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selft= ests/bpf/test_progs.c index 7fe16b5131b1..f04a579ecd4d 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -165,6 +165,8 @@ struct prog_test_def { void (*run_test)(void); void (*run_serial_test)(void); bool should_run; + bool not_built; + bool selected; bool need_cgroup_cleanup; bool should_tmon; }; @@ -372,6 +374,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 +1704,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 +1781,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 && test->selected) { + state->tested =3D true; + state->skip_cnt =3D 1; + env.not_built_cnt++; + print_test_result(test, state); + } + } + /* generate summary */ fflush(stderr); fflush(stdout); @@ -2046,15 +2068,20 @@ int main(int argc, char **argv) struct prog_test_def *test =3D &prog_test_defs[i]; =20 test->test_num =3D i + 1; - test->should_run =3D should_run(&env.test_selector, - test->test_num, test->test_name); + test->selected =3D should_run(&env.test_selector, + test->test_num, test->test_name); + test->should_run =3D test->selected; =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 +2133,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 && test->selected && + !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 06:09:23 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 5284B3E715E for ; Thu, 16 Apr 2026 19:31:31 +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=1776367895; cv=none; b=P1sPGfkn9UwlOSwLcTrh1TJwPp/d4Nf36jtbgFO/Rrcw3jnM7EahviBP1bzRrxM8BxtxgGUAqckO+wVO4teqDa7WgPwN/n6ajWqR6KZSgQRsnRVqw2bRFmjM0vLuezfJpA3vEyHBZNDtpQiWSgOGPz6y7yooS2iKi91N56sscrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367895; c=relaxed/simple; bh=5U8TIbN/mzwNj1zjJeSGJwHzlD5O57QgUuewKq4KEws=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HbhDYi9N+VY3pz7iOyMcHYSj8N65u8V+jvg+gZWW90g7V1k3HhqG0+bRQghJ3R3PUDJ2ZT819eVMBtYVwF+CfkvdEetFZqGu6aNnyOJf6n4YqwP6XaUXtMGio1e+67kJm+oZHmjqwKV3ewtYVepVneeL5yFMnTAHZphWHYwNTk0= 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=Mn2s994n; 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="Mn2s994n" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-488b3f8fa2bso9696885e9.1 for ; Thu, 16 Apr 2026 12:31:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367889; x=1776972689; 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=VXKDU/OMVkefnHkZO//qI2CUfyjPw6Bi2G+7mqZsuYM=; b=Mn2s994n9ktSonoNdoYZT1QLOccsn6jW7AlU/e9bXOvQU7dsb0Dxr814i8iVrpF2zw oVF5qTcr+N6gEkMRAq0u9L26O8i2xWWmVRLF7GixEBa1SFvEgxe6K4aPkMq+RMuc7Ruw poPsKAx6db/JfcWxqTaJVrpURRWjElH0wxPiE8om88YY1hQ9e9f8ayeToYf7gXLBP8bS xcCk0eqLx36QUr2YLYx77bGbwSdO/FwqYb85z8UhwEL83dGrTqGbGneW8HdgsQOAF7ej tMJh24ATyvCOPmy3YBjGcL24NKjzpUrFUIvgfsbqyDqKuExjsXjyU/iBEV2PRRKnsuQH +F5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367889; x=1776972689; 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=VXKDU/OMVkefnHkZO//qI2CUfyjPw6Bi2G+7mqZsuYM=; b=Kq6fMN0ICdA7RYH9gMfMrWobwic0GKZ8v4JDHXP6Ebp0MlqyteB+e2bkDp/utiGToe OmRxaq+MkLKlXaZHF4nydiPVsfWFuLgXzHEHDfDqpOw8TihKw7XsjtWVV1tW1NPJ7NjL eZWlnodTzPPjt9QFR2SVFlrAI0aGIFpS4Mr2DsRm8cPy3L6Ch7/BH5fDYZ88aNAnVQDV TN5hZ1xlmNhJY4R5KbCMV8UxOQ0QRr7wHBiMiAN3axHmqvz58KRUYG15gV9/B+2kG6Ve Yf7/AsnjtfuBm+zQIzrzuf8ac1e4eZEonArunbi02GRsT8XhvEfpSrtDkTGAwQXYCYj1 JBUQ== X-Forwarded-Encrypted: i=1; AFNElJ9agX5qiQc8dfr/J98PvPAPUKJyWng3/k1U3No0ySDCa8xEy0aGSqx2w8AsLaumM8X8kjxyvv11CR326wI=@vger.kernel.org X-Gm-Message-State: AOJu0YwL20dtRZWDHckjDMsDDVK+yTO5CnhwbXbVVB0KB+kKunLwEBtc bLYhB+5udXcVt0ad46DFHOlaZEWWAqlLvOFFq9Wpm/0XfCa/WvoNnS6F7Y7p5XIGWnE= X-Gm-Gg: AeBDieu0wLmqYnBge9O605+FOe4cMP4UAqsgSi7Wl5TvvbYV++4B+dnDIk1YaP0FPQq yZbDsoqd3N9J0xIAJVKIFK1E/z+4HlcjH38g+KaT2bSq0vvmwNVTQ9GC9vcFHmv7mDV6Hb5nsFT TTXn+eIs3AkvpUyxqZEMrUMlTSE7ceAeP1pgZpHBTepP4SmoQi1pIv7d+Z5tpk45Z8ZI+jrPSz3 mosfa9NIHxqFvR9R+xowzZ9yJ8ReYfP05uTi9r788FeISm0NeQhccrzjAonmjjATki30QSDOwiX Ew0gLdcY4mCcZOuQaB9nvOY794N3HJPA/V50r9o45Ysd52AhvR6+zJ1MIomoANgvg6gLPCZCO+I cbIWC8QYgVwXh58n2I9QjqHYyrAp0hmDMliDfd4rAJRhlUxOYfuuvteTkya16pS5Tfdfs4WoEj/ uzX2DKhuu3FbV7B8IgROczHf0= X-Received: by 2002:a7b:cb10:0:b0:486:fcc7:6811 with SMTP id 5b1f17b1804b1-488fa8ec417mr5190175e9.10.1776367889102; Thu, 16 Apr 2026 12:31:29 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f6615d5sm10798290eec.24.2026.04.16.12.31.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:28 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:57 -0300 Subject: [PATCH bpf-next v7 08/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: <20260416-selftests-bpf_misconfig-v7-8-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=2156; i=rbm@suse.com; h=from:subject:message-id; bh=5U8TIbN/mzwNj1zjJeSGJwHzlD5O57QgUuewKq4KEws=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QONTkF/ZR6INLgA6jIuOfO+7ACHpfnck930ufRHZ8hvwjxS8M6MclxSL84x2+0W8DdhP3yinoQg fJwg3i3v+Swo= 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 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 5ad50d3ff2f8..a5597e8431a0 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -758,14 +758,15 @@ 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) \ +$(OUTPUT)/$(TRUNNER_BINARY): $(if $(PERMISSIVE),,$(TRUNNER_TEST_OBJS)) \ $(TRUNNER_EXTRA_OBJS) $$(BPFOBJ) \ $(TRUNNER_LIB_OBJS) \ $(TRUNNER_BPFTOOL) \ $(OUTPUT)/veristat \ - | $(TRUNNER_BINARY)-extras + | $(TRUNNER_BINARY)-extras \ + $(if $(PERMISSIVE),$(TRUNNER_TEST_OBJS)) $$(call msg,BINARY,,$$@) - $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) $$(LLVM_LDLIBS) $= $(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@ + $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$(if $(PERMISSIVE),$$(wildcard $(= TRUNNER_TEST_OBJS))) $$^) $$(LDLIBS) $$(LLVM_LDLIBS) $$(LDFLAGS) $$(LLVM_LD= FLAGS) -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 06:09:23 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 390B9330666 for ; Thu, 16 Apr 2026 19:31:34 +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=1776367903; cv=none; b=DLSwbv5/kEh9PvAM7o1XCZYJVG51skzNpaOpAut3rz+3zKe+VwNwSdAaW4hSQbBeCDT9JJBP6VApIXdwr42P+okDMUD2EJdztoUx6it2Ep4uRfE9SElX4nrc5o8OkYSRLaLizpaShaVML7/oyemNUdNJYQ1BwQE3vNI08Vh1PsQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367903; c=relaxed/simple; bh=Wbv1yMwruHmacSBHbwCIcsHQsTrMRdd03crOI382Os4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F/UvhDZdqNS4sBTKxIzbq4FUJKoXb59DtsHiCu/MUymjyDcArzuL0S56PtQJyTL9BFVawRBnZkeZhA9C4rw3yjimHoiRPIinRiGRjiiGoTRQVFPZBa/Cpcr9aMvSZ5AC0xYixOWJUkhqcCXtUKoIIgfLv7Q2RpGzCprOws/9Nn8= 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=RE6OqRCd; 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="RE6OqRCd" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-488c2690057so85089465e9.0 for ; Thu, 16 Apr 2026 12:31:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367893; x=1776972693; 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=GdtCy+qHzaxZ/moUnNmr75mhFuvrteH3MIYR4DgHu4I=; b=RE6OqRCdVl1Pk5+229p6vlOAmIV9JR6i8cY33QhCvSq73FBC4c5/qPD7EoyP81YnDf 9z1q7D3RFgsXQFxylYtJMLk0MzR9Ye0C5wC6NVoWbsyrnjDm1a8i8TQNpGRsNllsF0nx JZ6rXLbw2mjpkoevhulURBR9mQdABIcR44l0nmOPrswJX4IqzMaxA1J1dW/teA9UQgVu KD0aLg13x7bZ7arHLEPEbbw6MgNyKgHjb5wgQzpvNxf4F9UjzpLmKHOZgs38gtB+XY3w 5Ohp4wfblCMM8jcsEtHAeO/uaPm9d35B9jpXF9963L5qJPeQ/+PmA0vN71y5lc8UE7se daNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367893; x=1776972693; 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=GdtCy+qHzaxZ/moUnNmr75mhFuvrteH3MIYR4DgHu4I=; b=M2Ed3WivEIOTkMR1qugQcziflqusbKnZwzqvOWgTDOim9yoDGGBMMZ2g6ln3cPK2+6 Ym27OMRCJSgVhvwrgD2n4d3OBlxlE+6kpK0hsBHfCIdqWfOw8Gm3kIyjR+4GZlOspwGQ joXU5Kd4qZdM/OHgprNaBOG5pVSLCD0ycV+FGCfGHXg32fB0LQYL2MgnbZn0i/68XpPk PwS1FwIJhGFyg2V9cR7s+A5K6ocFKd40cE5UQWTUZ8KBPZampg93qPtm53QfRErlnLy/ 1qcWDKxNnTov3e88dDbEag7OPFgFGt22m6PAv6Z3zYl6ihQZqZVxiqsCfOAMzzrBfH3I Gu6g== X-Forwarded-Encrypted: i=1; AFNElJ8YwPNEoYDUFhP34mJIK1xSAIudR+vP4l42zmJ8dUorRkeQEDbvXxiBfJPKAZWu7Ha2x7dwN82S6Qf6PHU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywe5MV0SL+zZNZ3vXAJt0M6wutGJ6+IUI7pDwEE6e1Cg4m6E3R2 u+EYR7o/Hqb4LkRcUQ8HGhBc3EsdOcz8K0gbPZk3DYgELPyjttEDbIRwLGV+WIq1szs= X-Gm-Gg: AeBDieuHyE1UBX/MrpMmtk+JiorKp1d82R/yuTdG7k3KR5ul0aFPEDbZ4bvSBq1n87D WgrVrjcYqJifC03hs8bMZ5e1OrpRF1ttOAXKgnXmEJGrt1Q76MTrWvSJ3j+gAjIGLf40KhrKx2P ATiZTFRbKS4S+OvWuDkTycCaEyTaj3m/JMZfxOlb1Zq3un3pOofjJLDCawY0MJtsxqV9wXQGHZJ 4B5naCkP09h3AcyOaTYERkj8sFHYkKUID/lBrpxHJIKQtg42twjCCBlSoAB6aruxtG+dh3iXD2n mJmqZnxn4dTgZMACp6C3SMUZ/py4ovXTA+99wO4qTyQTmXC40tOEaPRWIDWdmaaRPtJHTG632Ks 67513Chbqtm/+aPN+mMMS3p6Jw/+/eL/CL0IOMahVBdxpWVQ108iW+h6RLCu9wsIi+bAnXmiTJP r3LhkDe9sLLPL/jIxFcYnvGqk= X-Received: by 2002:a05:600c:a102:b0:485:3f1c:d8a1 with SMTP id 5b1f17b1804b1-488fb261c19mr2801625e9.9.1776367892836; Thu, 16 Apr 2026 12:31:32 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8fd54ef0sm8310644eec.29.2026.04.16.12.31.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:31 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:58 -0300 Subject: [PATCH bpf-next v7 09/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: <20260416-selftests-bpf_misconfig-v7-9-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=2217; i=rbm@suse.com; h=from:subject:message-id; bh=Wbv1yMwruHmacSBHbwCIcsHQsTrMRdd03crOI382Os4=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QHeNPEzKx87y0oH3xHNzsJmu0HlabrtVzf0mkexFuF6yDtm5/jAYzEmJqmpIdxxMvWiTU1LrjUD tvfGonaegRwc= 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 a5597e8431a0..88a03366f6aa 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -896,7 +896,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 \ @@ -939,7 +940,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 06:09:23 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 D36B930E0F1 for ; Thu, 16 Apr 2026 19:31:38 +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=1776367903; cv=none; b=denqebwGpYJpT98NEvEZ41ecpv2UWX4KxyQdJvL1617q4CRzPafawqv5Wqa1fBQ3k2OzdCbRfY3X2jfcpxri+x7e5GaAqbYjkVa4C4liWoL3h3rR7ZKaAJc03ZN5gCcWoqb4eu/B4VLtwmaKBhF4FoZclrK684UByuAS6vBKq8M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367903; c=relaxed/simple; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Fv0ANKpSoDgCjhAd3UCOSc2AS5ZZ88ZsZRP7Yvf7WTqg3tsEih9aM8qfX18CeMFY2dmDk4LFr5T3ZIcDyfJLrhWHWyTL9bgrIUHFFJeKGPEKwWJG2Zj5i4EolrVSM56KRZy16a2FV+xZQ+y6uoipkLL34OSaFOceuVh8Cme+yYU= 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=ZFvUmzRE; 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="ZFvUmzRE" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488b0046078so81902385e9.1 for ; Thu, 16 Apr 2026 12:31:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367897; x=1776972697; 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=ZFvUmzREKj3T1DA+CIZqL2jiH5cDObOCYjoB0ipJTYGz3ajfGm7r/TPITUvx1/oTye saW2j6tVOoVBbyk0iS1aHYCTahG8EtfHC4YZRHZodRfVVgN0aNNuefy2JFQ/DSdbDgjq 6yjQRauRBIhP+9SNilHAs4wJrF9wMeqlqj/K3sl8YyAN+spCf0f/UfWuyaejes+XnRIw OvUccqyiiSrW2db4jIObzd9MzSPGHN6UtXJRdKvoFFX9sgUT9Pl+xaiaNpx1uJEwXChG TeoAEf9GVTWhK9luGzmPMYD6MOBfyOJlX7fAEEmEoNqxfL7Akj706cj9bigpo7MemAeG RF/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367897; x=1776972697; 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=ch+/h4CNgpQ0N5Uf5Dgf5Y6WTGfDfD6/1FyboQSsqmBaU6su2lYzBVe5Ysi5IC8Vyw JtbCJtou0Jg0NNOV9kxcEoiYPZQnerjWqcZl8yx1C0VzFQ8xabhc4uoUsQ3A0cvGA0x5 ayOrLqeuiLA7ApVH9uuLpVK1DwlHFlAim/G0adCPo0L0xpHtqEcKTFcYCFlL8wuUVzWk FQDbZcjRzM0n5ZN71+tVRFyb2oE60HjifknhI5JVOcXAx699m3trRejAK73rwe4hGDJG 1GzMPxh+72aUaJpFMfWCYVQ3YUr/fz1XB2JUCtZ6cWwRUVTksHjJzGEDRLof0s6ds47O yKuQ== X-Forwarded-Encrypted: i=1; AFNElJ8PxrS2H4Eajwse34iEopbtd5xWv8mj1bE8NuO42leKpQwKREhrGkP0KiYZDgFfRYz9yVvorV7iDpixZ7Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/eixxQnaOUVOeKs8yVSrULp1xnCehDek2oPBokXVekWP+1ZoV G/t8QbEthCMVSE4NWQVOwpR7lhaYd+PY9lAHD5trkeosNragz0MMmNrsLRB0VvJR2XY= X-Gm-Gg: AeBDieuvg9Ant8F7n6HXM00Q9FIOxXAwZbH+EXrMzwoylpgwtwVDCW3ljhRf3h2RkLv cVOFUsbJDC1QAL8Q6eOiCNo7CZHT0XrMP2nknD7h2MWC5dUYxjCaKjCFEGjmQ/3W5yD0RarROqY wfQZCxTihiiG1oaD4UGIrY7Xvw/Xyk6qLkaEBAkSvN7Z91rnTvBE2bBYt7YGYMnQ5FGgnm51WvB 4l5dRQAqw2QEPWd4PAqo4+HgA98QuHuM0QYiznCsUAFFf7HHFo5WrRT9nMm7//B5y+imTNW7xIe QxJscZIIAncbGyQsFR3oiqN5mqwNxTNyeK1Tb9xFR1R8YuBJK5f8LRd1sIrNgxJU0kBmzKtZGhR XPu/9YJ+eVJIuKl2F4WDx/MZIsn7RiPKOx2o3SA2krzkCt2mbBP1QkhWulwsZt1S74tCx7xrRez I5NUR3w47qlm06eplcJoKlphU= X-Received: by 2002:a05:600c:3154:b0:480:4a8f:2d5c with SMTP id 5b1f17b1804b1-488fb2af6e7mr2318855e9.29.1776367896617; Thu, 16 Apr 2026 12:31:36 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6b5627sm6987349c88.13.2026.04.16.12.31.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:35 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:30:59 -0300 Subject: [PATCH bpf-next v7 10/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: <20260416-selftests-bpf_misconfig-v7-10-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=5376; i=rbm@suse.com; h=from:subject:message-id; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QAkDjl45d5sRPklc34PmgKC8ECMgmGvgnKN9F7L3tHXdaC5iKfmi09X8sHsAiSLv+gJwpnkZNcm KACycMQPNjg0= 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 06:09:23 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 7C5E93E95B2 for ; Thu, 16 Apr 2026 19:31:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367906; cv=none; b=uSjgOq8fQetkaYGMffb0EnvVOMk7oMKJcMSN/l0aZH4wdy1gZQSpakA3lQldGxuUtbEr4oyocchEOYyvMz3Lrpx4tGXjsSJCieWT4Ny+lRrvP8vc/8qhsY1EViSUDnPylt0GQA8l/NAKwpRVfZJPERr3U0S/8YxjE3TMTzJUPWs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776367906; c=relaxed/simple; bh=u9LZEwi66b10OuzjwpSk5FjZx5A9K59bxx/PeiS2pIU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=H3hgXCBmESiDByhucWvmbEubIuvUWskIKGXPHWqZVIQXgXpfbZmxNDxI8YcBZuZHeZolJRMEsHLvmPBiPQciftaYniOWB54EGuwN98StOxk5JzrUabVCD/Hjlacp8DsPi6m+F+axoUdelXFUKH/5XH8UvQ1lFi95G8GZlVkpLHQ= 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=Fg5oMCS+; arc=none smtp.client-ip=209.85.128.43 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="Fg5oMCS+" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-488b0e1b870so129717115e9.2 for ; Thu, 16 Apr 2026 12:31:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776367900; x=1776972700; 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=IJ3r37ogqR7olkqp+SapeMaeTv/V70MwihEzAcWCwTQ=; b=Fg5oMCS+e1rpHdpyXpaOG5XCyojqnM1qA2UKaoVEOwEfTdVspDrS/ozZ/Bt5h7sncC Y4z9tJg4V3OwRZdWqJFqlwuTygjfjbXy9AyY76Q13zNCeWo5uUsNQRLm1IZvVj9YXTZ1 vU9Ba/1u9zlo6nAiB33hneCcrc9vrRcGaMJoU1B4ajiZm/JaLO5JI/4Z5ua8g43ehJrG 3CoOIBIH9IAqNy1v1qpjp82jeUYiOLWBKxMRn1tZNuwZ3mdFjxH4TMoBV2+j047G4i3G fmrG5vZA3T3k66fmWDDCRqWGdWD+TyCuiB4vOfg03T3hlWdVcTsrzHXseuXfFnAydztY 6jcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776367900; x=1776972700; 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=IJ3r37ogqR7olkqp+SapeMaeTv/V70MwihEzAcWCwTQ=; b=QGzmkr7KTMAeWlb3CzRfUGI4bC4i3uTLmyOi6i3vLjv6uw3bdFgR+xBS7UrihjLzvC 2cW4Mmk8nH3Q5Gm2hTn082dFq1RRJJigmgbwk2qfd1FWSWtQjoYN4EGH0lu27MFtzQ8d +6C+S5gN3xdY1WU61qP/FTd7cZ2GX4J9gjpq29mj12PHX7V2CrZ7l88GL4E1T6V0wObC xhFdc3cb7QIyfWyZHWXIkfXHVakFG9D8ymjX9N/ZEl26ud96nlqwdz9y/k1E/beJTo6t dz+0FcoUI73nwJMpdPMj8Z9DUsg17I+TB6gU8OgnmUF4u9oJO3ObrxYfbvf0ns+4T8wM byeA== X-Forwarded-Encrypted: i=1; AFNElJ/fNgNPPxJ9rUvpv+AKXn30MjoKtd47pIk3rJnKeD01SVEuQ+bRq2njtkvm11llwivfHJnuiLrov4y+ivA=@vger.kernel.org X-Gm-Message-State: AOJu0YyaHFmENxXKxCSk98q3TdOYRHw2l8Fl7mdhmQMZD732quV9EeOm l+bYZBCADY0OY8rlhi0vo+2QVuauLUs3sCOVPTg3aGwEeL/Va/RkR58cnYq2xgtXMl8= X-Gm-Gg: AeBDievKCbnWgTop2MO7u6VTTiadm3DL50DVRlpJaXIrECUp4gFmpzQJgwC3BI62+tu bgiB7rsQ3QI745F2TEPrTQx/kRfPcyZguBNKEA1r6MyPzKkQqj234WPt+xR1cEy3FewpLG0+ahw 6/8J/udAwlo0pOvLN+1u073AwDlWCiaxrrwJQm5Fn/rSAkQvhoOz///FmI0g7NdwmHzs7Np8eaU 6BumC7T7WgqWM+nMa2EscgR4mgTK37u+aPRx6KXtnoD/r+KrGMMdWakfgFGFoNtyP+G5ypJLKN8 Y7dVMaTzlat6wsJQyvp1gO9AZk+8nXCw4SlCpTIVXb1ym4NKedGNV28TbHp3APS9IN6tPygPaIe YdCyQPwB2Dh/PywtQ0xoqs1CcdHP4g0Ig3dyr5i6b7TmRbg2SAZRDesWRPygD/GiiOyecmRFGRp B3QUXNk+OYS4kHOjRgno0DyExvBX1bFaP/7A== X-Received: by 2002:a05:600d:1b:b0:488:9439:881a with SMTP id 5b1f17b1804b1-488fb26ea7cmr2836085e9.2.1776367900154; Thu, 16 Apr 2026 12:31:40 -0700 (PDT) Received: from localhost ([2804:7f0:b765:dc8:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8eb8443csm8751812eec.14.2026.04.16.12.31.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 12:31:39 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 16:31:00 -0300 Subject: [PATCH bpf-next v7 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: <20260416-selftests-bpf_misconfig-v7-11-a078e18012e4@suse.com> References: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v7-0-a078e18012e4@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=1776367852; l=2151; i=rbm@suse.com; h=from:subject:message-id; bh=u9LZEwi66b10OuzjwpSk5FjZx5A9K59bxx/PeiS2pIU=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QLClSdovgIOUa0JYPVPuFKo/leHFyBzCBLmZIgS2HtfJjjwxK/CInHHcGA7RUpCwe1HMzRr7f5D ND8qhfhM0qwA= 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 88a03366f6aa..53c3808c0c88 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -974,11 +974,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