From patchwork Mon Feb 3 09:05:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 13957099 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B146C02196 for ; Mon, 3 Feb 2025 09:05:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31DF46B0088; Mon, 3 Feb 2025 04:05:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CAFA6B0089; Mon, 3 Feb 2025 04:05:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 192C06B008A; Mon, 3 Feb 2025 04:05:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id F10516B0088 for ; Mon, 3 Feb 2025 04:05:34 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B086E12242A for ; Mon, 3 Feb 2025 09:05:22 +0000 (UTC) X-FDA: 83078049684.13.74F28C7 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf12.hostedemail.com (Postfix) with ESMTP id A81E14000A for ; Mon, 3 Feb 2025 09:05:20 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=BM1GBrcV; dkim=pass header.d=linutronix.de header.s=2020e header.b=PSgoz+LE; spf=pass (imf12.hostedemail.com: domain of t-8ch@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=t-8ch@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738573521; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=9svjg41Pcb4q95Hb5VGVK6lEZkIdj5uSqvXSpwTfMMw=; b=m4aEnxi5CFMG0VYRLYEuGcFjlGSBpGdnW55TdOI/uzVk1o1WUCaBulR4SNKaJtSjHtHDkX gCHtT5WPnr0gjISEAc28dHL8oNGMGhyWTzU+n03d4io1gLKwTyOK5R/el9EnE3OgyrFjZX 4h3H5/8HpeGOrNB1+/nTJqZpitL86fk= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=BM1GBrcV; dkim=pass header.d=linutronix.de header.s=2020e header.b=PSgoz+LE; spf=pass (imf12.hostedemail.com: domain of t-8ch@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=t-8ch@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738573521; a=rsa-sha256; cv=none; b=WqGgvAQNkwadodMlJ5KDl7psbvUDw0Qgxt+/Zj/PxPQxWBj3rMzbgmGQ/9jV0YeRxq2B6v ti8Khy5fW6oVD3kTxRkhhNvMLpsSYENY5Em836afze7QcIUmoZHykMtdxzBPYkeS+d8aK/ H2G3TgiSvuwURjppjQEfYNb4xzGxnUg= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1738573518; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9svjg41Pcb4q95Hb5VGVK6lEZkIdj5uSqvXSpwTfMMw=; b=BM1GBrcVmwsrWLB5GL/P7R2WZVy4r1YQMh38SOtwBzuTh3DrDOBx5Yhdfk4X1+Ra3ITZvB r6O9ETIO6uY1dbP+UcxA4jfZoQBHmM7jXzAACBzv0QqXhgg/x6RToCBLVkUrDd2knqautK ihpEG8+1j/QWtTjdCBwCn0NBPppzLwwuVW1W1aYjD3lx38dV+efbGq7roO85bV/Rz2pd+N Agqco1X35M/6QHIJGYlbOWBAr21Y0muexY72TsI+8SYFZcgNBYz7ZyMPFHfVWW6MjiylaS K5r+9XZin+kI9ze5DmIf+Sd3KymyDwj4xtWJrFF9cu76GOLfiueb5HoVgpH83g== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1738573518; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9svjg41Pcb4q95Hb5VGVK6lEZkIdj5uSqvXSpwTfMMw=; b=PSgoz+LEZ7QYWOCfE3g0Yk/sneAv7deJOU9lK8CtdBb0YbUVRbW9sjJQOu8Wqre3b4M+h9 BshUpUhKGHAvqDDA== Subject: [PATCH 00/16] selftests: vDSO: parse_vdso: Make compatible with nolibc Date: Mon, 03 Feb 2025 10:05:01 +0100 Message-Id: <20250203-parse_vdso-nolibc-v1-0-9cb6268d77be@linutronix.de> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAL2GoGcC/22NQQqDMBBFryKzbkpG0lq76j2KlMRM6oAkkthgE e/e6LrL9+C/v0KiyJTgXq0QKXPi4AvgqYJ+0P5Ngm1hqGWtUGIjJh0TvbJNQfgwsukFyWtrtG6 cUzcouymS4+VoPrvCA6c5xO9xkXG3e+0isZZ/ahmFFMZZQtMqrXp8jOw/cwyel7Ml6LZt+wFYQ wXjtgAAAA== X-Change-ID: 20241017-parse_vdso-nolibc-e069baa7ff48 To: Kees Cook , Eric Biederman , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Andy Lutomirski , Thomas Gleixner , Vincenzo Frascino Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, llvm@lists.linux.dev, =?utf-8?q?Thomas_We?= =?utf-8?q?i=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1738573516; l=2806; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=qtkd2hdCgBubVpgZ1f1WoWHy4juewr1fhnt4HoOoStA=; b=LD5lsmGmNqSYedmVbHeUuJTWpDkVvxKJxLsowMuVyi/7+rXSPvYRp5crdhi93iVtgj2kyZqyb GfzR9bRQ3uyDePHXT4ZnkkKadNUFjRZDuQDFZiqWo3mPIt0XCT5CnTm X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A81E14000A X-Stat-Signature: wthp343xkjcp1oiifbah5wz8um71jpr3 X-Rspam-User: X-HE-Tag: 1738573520-162078 X-HE-Meta: U2FsdGVkX19491kn8WOyngSUhZVscy3KUoI4aLi3CKf69O2yP0KdDq7hxFr6HqbLhPQBfF+izAqpDVzsTBzHeCdIhSkoxpdMjUZhxwbF+Rlc4a4zJ/dgEm/XRSgH9GgZzKRwH3tYkkyk1L8pL+yUR80BICE5MJyz35cGCAqnAdu6se///mTi/B/qD43w38ITBLurpY0hEW31UwoMwEBzTH6b78GrpY0NzrOuhp5/XvSK1dhSOo+M4GBtHXizricWlYqm5sWaLxrME+PP4egoj+E6fOPgABlGc0tm1FIEuPm6+b2eAiJw/ip456A1rdBf3AU/Mva0jbdy3T8CxhlBqn8yp4VtNYgKIRcYZqu8eNmadx4ltZe5UIV7S3YVoSvtSsH9ZYpa+d1+QT4zaHvLpAyNwDZFJRpssrBCS5FjMtLYnB5zW9SU65RUML2AbndmmN31KaKPpX6KCJmnpJ1uUmlgZtJiv9fv8t+lUd57uuAYJ48RjK9UWrPAkgdVwxEzK7ZqiS7B0iSCYNs5oG0wiAOU44piuWOwtp1AJ24/7eunqqGVokcwVq6O3R34enj/Nlyo12eLHFh+t+Tm24o3SSsSSR31j6pC80mNh2mqNaJW3Cc0N2rMWD9EGJPHi7WWrH15sNJoPjbNXe02Zewe/i3rF4ydu2nmaeSucvTnisz0b4kMOZ2AAyGuDCluUnISNfZwV6G4yGs7D6Ro6Auze6WbA9uz572VnDUL3Taj+jWm00GBMjU3aPlShYJtD9jRByV7A6usCbu82uhx5fxhiL6y4uqgdl27WN8XVG7uqW0fWVFRUULLclHJGKZkJBKp2OQrUJVPg1g2afLIpp8j7h42XBYBgjmAfIgRjTcaNFIMl0k1Jciuwqzqv21U9iJG/l13Ce3C7S2KupP2AfPKi0OEqo1A2udlG5sVXgyWIHPnNr/Mddhg3IYcPNMvBbzhjAC3VbzAXCVzSZbviUH W2qnxIz3 FjsVrI7QPwHfdKKfMasb3OuGp6q2hwt5b+Z1DCUn25qJ4myf8aEjA+TFOE4tkESyb9D+rBuP9HlzfN3ejhayL8Skct23uSYJLqT5qV8Dwx9wOmfvRSEmUGOKG9uX0HbisNpUGy9HwNn9RwRuE6JIZxMh5/T1yRf1ECSnOxe3EXpF0nU7PA2iBoHWX67BDkMNN9nv6e//dOj8LECMOTl9RO70vNGuzAOjBlSzI8iSBfBY0A9xKt57BzkEBj1wYbKIdk7H3FI9hCF7/Bhs+MqLLdcYA5+uc98FP5s5eFzi49wzVfl1PdkXmYD0M9a5tiVqqgfd7SXwOauYovmqS1kQFcNlGxlUR5JtMOrtFc9Brs2DxJ4IeyucW5NOTn9BuZ0D+BdhHESvFOqIron5ez6N4kxj2e6Q74TBj8ey7aj2RnDSyI9H8PPOBri6kvdHn+gkRkWHvcFG3ldyOqPEXfqdA0JxfWDN3yNcwTPsCw8/WEqlBTZ1qzMRvQWfGN3sADyKtph3X X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: For testing the functionality of the vDSO, it is necessary to build userspace programs for multiple different architectures. It is additional work to acquire matching userspace cross-compilers with full C libraries and then building root images out of those. The kernel tree already contains nolibc, a small, header-only C library. By using it, it is possible to build userspace programs without any additional dependencies. For example the kernel.org crosstools or multi-target clang can be used to build test programs for a multitude of architectures. While nolibc is very limited, it is enough for many selftests. With some minor adjustments it is possible to make parse_vdso.c compatible with nolibc. As an example, vdso_standalone_test_x86 is now built from the same C code as the regular vdso_test_gettimeofday, while still being completely standalone. This should probably go through the kselftest tree. Signed-off-by: Thomas Weißschuh --- Thomas Weißschuh (16): MAINTAINERS: Add vDSO selftests elf, uapi: Add definition for STN_UNDEF elf, uapi: Add definition for DT_GNU_HASH elf, uapi: Add definitions for VER_FLG_BASE and VER_FLG_WEAK elf, uapi: Add type ElfXX_Versym elf, uapi: Add types ElfXX_Verdef and ElfXX_Veraux tools/include: Add uapi/linux/elf.h selftests: Add headers target selftests: vDSO: vdso_standalone_test_x86: Use vdso_init_form_sysinfo_ehdr selftests: vDSO: parse_vdso: Drop vdso_init_from_auxv() selftests: vDSO: parse_vdso: Use UAPI headers instead of libc headers selftests: vDSO: parse_vdso: Test __SIZEOF_LONG__ instead of ULONG_MAX selftests: vDSO: parse_vdso: Make compatible with nolibc selftests: vDSO: vdso_test_gettimeofday: Clean up includes selftests: vDSO: vdso_test_gettimeofday: Make compatible with nolibc selftests: vDSO: vdso_standalone_test_x86: Switch to nolibc MAINTAINERS | 1 + include/uapi/linux/elf.h | 38 ++ tools/include/uapi/linux/elf.h | 524 +++++++++++++++++++++ tools/testing/selftests/lib.mk | 5 +- tools/testing/selftests/vDSO/Makefile | 11 +- tools/testing/selftests/vDSO/parse_vdso.c | 21 +- tools/testing/selftests/vDSO/parse_vdso.h | 1 - .../selftests/vDSO/vdso_standalone_test_x86.c | 143 +----- .../selftests/vDSO/vdso_test_gettimeofday.c | 4 +- 9 files changed, 584 insertions(+), 164 deletions(-) --- base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b change-id: 20241017-parse_vdso-nolibc-e069baa7ff48 Best regards,