From mboxrd@z Thu Jan 1 00:00:00 1970 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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0C336D15DAD for ; Wed, 3 Dec 2025 18:10:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 436E76B0023; Wed, 3 Dec 2025 13:10:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 40E646B0028; Wed, 3 Dec 2025 13:10:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2FCFA6B0029; Wed, 3 Dec 2025 13:10:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 1F7596B0023 for ; Wed, 3 Dec 2025 13:10:07 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C35E3C071F for ; Wed, 3 Dec 2025 18:10:06 +0000 (UTC) X-FDA: 84178948812.06.220AAC4 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020110.outbound.protection.outlook.com [52.101.195.110]) by imf29.hostedemail.com (Postfix) with ESMTP id ED16C12000F for ; Wed, 3 Dec 2025 18:10:03 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=garyguo.net header.s=selector1 header.b=j5rZyJJM; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf29.hostedemail.com: domain of gary@garyguo.net designates 52.101.195.110 as permitted sender) smtp.mailfrom=gary@garyguo.net; dmarc=pass (policy=none) header.from=garyguo.net ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1764785404; 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:in-reply-to:references:references:dkim-signature; bh=CexfHDQVtU6Ucrh0kKELVpCwL8tP7Wkn47wKP4rMe5A=; b=prluPHAqFDHhlu9WwX2ND0txjLLaQQF8UaJex9XQxYrttAb/MgThqQS6nM7LRQCsCkRmjw hYyLH4bcxeSzPO1T+cszpio7cAUA+rNoEkCBTDPF5G6KySikrG6wkKbwARw8rFu9Oovvue t7m/elz/zWcOQh3rEEcyVKuJ6X5ygYc= ARC-Authentication-Results: i=2; imf29.hostedemail.com; dkim=pass header.d=garyguo.net header.s=selector1 header.b=j5rZyJJM; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf29.hostedemail.com: domain of gary@garyguo.net designates 52.101.195.110 as permitted sender) smtp.mailfrom=gary@garyguo.net; dmarc=pass (policy=none) header.from=garyguo.net ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1764785404; a=rsa-sha256; cv=pass; b=cyrEDOlUj1/X3nwX/SDJgP7kKQts1z0HznECbA4nyBmJ3G0jOY7h06mMK3xyxXiIGpSx2Q LMD5KPGlLqd7z0oPc/23LpVd8qxbiQU+Oqbt/PL2AYTCjh+gN5NjomhI8ieM4TCwKcuK// Rg9LFeTyK7t+WbmmFk2DjaHIEKnea4o= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RpxCcw98Er9lEEv2ZrSjy0wxVX7090XsVgS/Tu9M6GucCLW9RO/nDhBOyD0L0lkcZRoAD6FQa7W4o2HCIVEOGNhQ3K+sNR/0ZV9Z5oAHywZCLQQchUq1jMiN/wX3fMOLSZggRh8SKUo961SifrWGvaR2/oSxnUd+tz7NKyjiKESEvvpWyxz6qNrw4dMts5zV61UULPKR9qXVm9DOahD6h1MKCZ+0K088aYdhesaZDO7t58xcXevYcGK68Xu7GIhMeAjRcjA5FuQUJDhfLahL8gAM96dY4dTkC/QcQiH6Z4UyEZn5BGq5En36JAwy+t+I4gBCe/LTAg9HKd7BYKfRQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CexfHDQVtU6Ucrh0kKELVpCwL8tP7Wkn47wKP4rMe5A=; b=CPNl449Y0BzmGtxGwdRMv6C2LKtYitRq/mVRReGMjeLAl4N46id/jr4vO/pOkkIOvApeXr+JkYSKi6lLPfrIxuP9k4+w5Bcx4UM30fRLDM2gZFCJ1yiTn9UU9XHElRURYTpgiD2F0B+YQdmeXjLz4xQ9fPyxzGDUUX5120hFKa53VxWpGKIL6xqdbxQFdMlzBDLuk6rLX0uUXm1qTY2aKcc9SEPgE9zO9x/fTL2BY23NIEdhn24UDIOfLHqHa+yhoPXke/vhTe+M83oAwZjfl7AdT7jiwDwg3F+15tCJ4QS4wYlxGbODwMVlJwoUv1BTC60h6KJIpH7nO/ld0yJ/7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CexfHDQVtU6Ucrh0kKELVpCwL8tP7Wkn47wKP4rMe5A=; b=j5rZyJJMPVyztCs+RVx3dMDju5iZarcgGUlCEuwB1qDcAjq0KqD7xSpJM94BCM+B7UnfrAjxx1gEJnLa0T/15N4gs1f9nPVwmTmPwp5u64Cmv3bnBXlUaupUXHF5SxSTZSD8NkJC2xQ7GBV7BC1EWszusdtMdHOKdDmswfK9TJ4= Received: from LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:253::10) by LO4P265MB5979.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:29c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Wed, 3 Dec 2025 18:09:59 +0000 Received: from LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM ([fe80::1818:a2bf:38a7:a1e7]) by LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM ([fe80::1818:a2bf:38a7:a1e7%6]) with mapi id 15.20.9388.003; Wed, 3 Dec 2025 18:09:58 +0000 Date: Wed, 3 Dec 2025 18:09:55 +0000 From: Gary Guo To: Alice Ryhl Cc: Miguel Ojeda , Boqun Feng , " =?UTF-8?B?QmrDtnJu?= Roy Baron" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , Alexandre Courbot , Will Deacon , Peter Zijlstra , Mark Rutland , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Andrew Morton , Uladzislau Rezki , rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-kbuild@vger.kernel.org, linux-mm@kvack.org, nouveau@lists.freedesktop.org, Matthew Maurer Subject: Re: [PATCH 4/4] build: rust: provide an option to inline C helpers into Rust Message-ID: <20251203180955.20b41904.gary@garyguo.net> In-Reply-To: <20251202-inline-helpers-v1-4-879dae33a66a@google.com> References: <20251202-inline-helpers-v1-0-879dae33a66a@google.com> <20251202-inline-helpers-v1-4-879dae33a66a@google.com> X-Mailer: Claws Mail 4.3.1 (GTK 3.24.51; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0225.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:315::10) To LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:253::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LO2P265MB5183:EE_|LO4P265MB5979:EE_ X-MS-Office365-Filtering-Correlation-Id: 61e487b0-0780-44d6-c641-08de32972ba6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|10070799003|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xULtH1uQ5/WVaYKfYaadhQu6yqkbmFt/J2GRs0Mc3a9Pr3BWkxWxkuo9io9F?= =?us-ascii?Q?j6dXIyq/s7J4GqKY21w/d9baw/oGBgeseF0D8kMELbXykjp3oY5EWCQAMnpN?= =?us-ascii?Q?G2NF1lbBDviCf7/D5uplX9EczYN5G0sSa4z9BC95X7N3wu9O1mmbawD8XpDQ?= =?us-ascii?Q?gCXx8SqwcdNzh+O1EeQDeuWjQx/n+RLlSNmJbQWVXJrmv8atLc4B723JJko5?= =?us-ascii?Q?UrNEBZVpv+ZufYAY8Az7Z2a0uwkflX44j9BB9atIiXs+4phGRvD4uqgxjabC?= =?us-ascii?Q?yhA4NNhcaqQuNprqHtERUBhlJPZt7EpKq6H2zBbwJFAcufPW9ctrDcjA7yTS?= =?us-ascii?Q?2vF3LPTZdJOSNLyWTHbcsQtzyG42PjKZ1fDsrOBc+JoMM55x0Ca4H0Sv/Ja9?= =?us-ascii?Q?Ztwf6bg0lhvJADcojGAJ40Zeiytg2H2p1iL6TcHgY+iDc+TKPd8CXmA1iEjW?= =?us-ascii?Q?6JJrw4irDun7MaHECSytBfWqhQTAJysVGSDMEmH2i8dQ7F1m0r9yWkpsPCZS?= =?us-ascii?Q?lDuG2LqQyuiMBKKo+skLQPDTXw9Ml9whXpxc52ec4CQtyOPjzVhp5142yx5L?= =?us-ascii?Q?RdV0BXdPWCQ7QXw+HAoxFsd0MW3Lne1ArasDc24WdxD3xvP4zI6wVD2VhZjk?= =?us-ascii?Q?hP/p/QjVLY9GER5K1SudG0i4q8MuqXy2aDJKgpEmKBXEIedpKzwftUVran7Y?= =?us-ascii?Q?xFpzqig+JBQCWuFpAsVb/9UxKjg+PomxN3cl3f4Pm2KI0NftEGWL6Q5w9Agi?= =?us-ascii?Q?PU6xhvy3Wnd6ktGqfPvBp6CnGRDQN3U5jevzR716ZdWrgmLZOIZTVwKIKT1P?= =?us-ascii?Q?+QavHJgZ7aquE8TlvXAN3cpWYQauUCXdcNHhTNWYiatd7Msni8m93ilBC63s?= =?us-ascii?Q?vK4zkc3la/2YIA1uKTBZAYEookfgxJ0O0EIEE0mboOMjge1VpoBghimfxDax?= =?us-ascii?Q?AnyQc/ICznYEXJ2VfEvsUO3BeNn4sowl6V/Cp5/AnI6Vako7pCP5QrPR1Ldh?= =?us-ascii?Q?RnancqYcowsQ16QVLPR06ekNtWG0eo2PbhdhRRl4jMtInIxIlP0QreM/ZeYW?= =?us-ascii?Q?jN+pvzAIB9MsIP4I20PnfVeGtpLDK1iFrj3yD67uXyW8OkNtzmzf+PUPzRbm?= =?us-ascii?Q?p4tcnBN+Di/ymag8f0NoyfSWnFLqAq+wjU3/y4MmvapTzGu5lWFW+qX9IXbo?= =?us-ascii?Q?OXJgLnZpT8D48c9E2ZTmpyNfao6VBF0lirvvfwdm/Z1oqpPiJvka2diVTAGe?= =?us-ascii?Q?styNaF4UuAP22RHEdsDfpEWimAJpywUnl8bzIVFl3e01lEFJuaR/32Zy7z8W?= =?us-ascii?Q?f50cZ6xs/ECGkrMHt7VSX/hxvG9mKNQUTsHorGagnxoYtisctR+9CJUAPvDU?= =?us-ascii?Q?ePI/PuY1RVw/Gkm1noBXiDOVp44rrA/CNoyDkDWOuzaFUC7/nYmFb4tX3tk+?= =?us-ascii?Q?emZx6gzxwHgB2cpGQ56QeZz16JOoxlY/?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(10070799003)(7053199007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QCShDrIfbEu1ceqjTfok+fLMfjrYH17deycsv5so/M6Su5K/RzSb42/lR2lr?= =?us-ascii?Q?XJU6DK5/wbCZ+iZiL32SES+LPvQz2Yz27CXRcQ5T2l4G1ysKBwVLn067Sq7V?= =?us-ascii?Q?06muWYLQ1aA8dHnkWAr4nE0p0hYEfamhfOHAP7raCrAyztWSU7ckOD2aT+WN?= =?us-ascii?Q?MUeicD2QmDXKJE2oI9xnCmi8S5uatMdetGRnPDVv+e5U58CX8gq56qe9J9vz?= =?us-ascii?Q?Yib+4qLrRBkce3TucRhknrshoUdFM46HK325CsTgtbjSgaz4AoR3DENctwzc?= =?us-ascii?Q?zmZfDVVGFa2IAMpzau1Avn/lJ5UCgMoKN0svyu9uujIxSCznUzBh0IHNteLX?= =?us-ascii?Q?F+eJZayjwdZ1iVHXi1W6sgN3SzjlUhP4CP+TGtZdoLAiruKNILWVR5q29n6U?= =?us-ascii?Q?pCji1DcyA+AyTjI8op0JzTFMBhsdg7AoFNWEp8+BNCoom8jTYezv6i6s64SG?= =?us-ascii?Q?grfIl/YtDIDxUr5DsgEi/Uu9qT5+CEhg1lTDHicsjFOCc/uCPHMdyeNuX2m6?= =?us-ascii?Q?+W/qHGJyQbPphvZewnnr1dq0ZC8mZwa4UVQDWEyAXCWQeY86wxLdZkgGYMHm?= =?us-ascii?Q?CU1AD0cf+nhrgqrRSsbvK9V1slRc/VsI3T3ZK8oycycQUGXM/2ONIG/ZEsWs?= =?us-ascii?Q?W2SStVC6vCC/sUw2h8jgPBV8xfNAhWm7LlA/O08vWe25Q2CdWMS01C2d4GbG?= =?us-ascii?Q?W8huetEImdAkfZyrldulotaluBO59pkke057b61NDymfwF5nPLaBegI+PNE2?= =?us-ascii?Q?NC0nRrMm99DeQebyrj86po4mWgrqT14yroVJ0pCWyQIa43RlsKyAEkHDRGkA?= =?us-ascii?Q?p11QVRMRWpEUWWHIouHs5aghebzolWZzeKuITzVrkXOgIpVK28pqPtDLYEpt?= =?us-ascii?Q?AALB8KLGLhl90jqgGLLJR7ZoeAZjOc2o+K5qhUm9suDPy/D8upsOpTo4HCB7?= =?us-ascii?Q?6uILrkRDzjJdWn6xSxuJU+rbmjkZh+8JsYzvQMsuzJHEahHFxr1neQbJxF/J?= =?us-ascii?Q?+ZcKDdBVCv508FyqSv5NYuT+BTXvdfRhowRsNBgFqBnwZytxQoOa8OOvmqZ/?= =?us-ascii?Q?hjRngX3+A7qJYHnoExdSXDEhb7OYuI14ksN8ckSJH1JsmBgQDY/zVI5gZlZ8?= =?us-ascii?Q?hNv1x3jSPLcD3P6ZuGVEZ55ES8RtO0A0zOKmDcL+5IshG21Qqe/nK3zebcD3?= =?us-ascii?Q?vnOx4YQQInHDrrvbMLdwghX6dDY0rhUT/aeJ7iORKFkyL6ACtjaTjpU0QaNq?= =?us-ascii?Q?ENEyvDaanBUM+5MeFdsFtUY0uWjhT1h6isoz4s20B5sJbIHXiMg+AsQwIPRG?= =?us-ascii?Q?0wMME7yZnUTi+d2qEG97gBHTcYDAjow4PXcnMylLB7E2qj7Dsf2aP3g0gbXi?= =?us-ascii?Q?UgR+0zvzbTUP4r3yx9VLyiFMYFw7wvprQsg+IMIjYe9TQWG+PxbBIQrKzqWa?= =?us-ascii?Q?G8gDTA77qDNkTeGsU6YrE1VlD11xgdIjhFhNhx4S8V+Ms2GCtBrSenMm7zHu?= =?us-ascii?Q?ZIjkaSFIVXoBERUdauaZSJf668NBRoSBg9TqM2VoG5YQt+QOWQHNvmC1narw?= =?us-ascii?Q?VhU18QlAIasuNRS5SHWYzZ6N6eKYAOsYNbBYP8Zq?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 61e487b0-0780-44d6-c641-08de32972ba6 X-MS-Exchange-CrossTenant-AuthSource: LO2P265MB5183.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2025 18:09:58.8621 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 44D/hHN+THU97QmZ9oIyZrOt7R9ckj0z6XjNktazVL0irrdr8jW5oCVfqv+777hcpWvtkOX0YsO/0o+7LEbSOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB5979 X-Rspamd-Queue-Id: ED16C12000F X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ixiage61ioicxwioptewc7hzxffdkiw3 X-HE-Tag: 1764785403-414464 X-HE-Meta: U2FsdGVkX1/8DF9oqlwCvgGTjaTZu9WBMOJB0susF8USlO/51Fw0qke0tKwBiMA27zl19f3h3Hv3Hm1NnVyQELdMtd2a3LrDus5OHj5asYWTGu4wYedeI30N6P84BmPab4+O96BMBQ294KVWPHG31GemPv5quRkYbGfPjsO6Nqn5xFWBz3MUNBmivl4zcKIX1cXuexHwcIDACqtRCTDZiuNGtofW9Ve65c9feTRApvUJtoU2bDzylw3JQk6Bc9K7WrBaaPQ5wDV2sbxlcFDZyxih/J90LVjKNSZd5TftJDb6qg8ebopfUO2jgOa0WFWA+icHBjeZnS750BFcog78rPZNJaLN0rQmywYFg7WkQ+a0xIWOzh2BNjNr7+1KUAHod/AAr7g2wsAy23qB2ZmowQWM1vTHqbJnD1YOKzjfUOh1c5+zYINX6TsUFTagdig/GfL8gOZQGL2h2RvF7Zh17NBjW88+0w0JiJSynI6NVJOfF3xQ91Y/9hs5RS+BrmSWZXGi7jLokRxvoM9WFw7ZVrILD4ZXUSOyBHsLKvnqe/oTgeJfYuRV3tSE+5IgdjqPF4uXISLABqF6hNLSIDAdqPZiqHb2RABde80509QGhj+DfWOCH9uUyQ9x5B4wznBCDswtLiUw9RO6+xCzX738YXd0cjy1n516eObYuyA7695BDxhJjVrPgK6+VbWW4HrHczbAMLRBID9s42h1fyAU7BaF1q+BzbYvs6YOkjxBnWs64ij0jTEN3j5YeoEEFyTrnRh2Px0KdMpd7dVIIEAt0Fk8DTC/yPFJumwBS3aeTX7kmLZ+ivCHS+XpeuT/VyGhpRmcbNYiWXsiLVqFwaIGCnakDzsQhE9sJMWzr1reLnp+Hts2n8J9E+aa6SFU+ie455jxBFIuWHjYOtIeAOTgD/bB3WoQmuekJ+aaLrYDOgV8OLvJRFDffWJz3qGiTwjxwetbhQH0VOD/2jX+DLv XjtyJQrt eHchz+JkX8l/goX68Kr6C7oDd+TZjfMrewIQBoL045PUaDmOJZeL0lI3Tu53ThjWAK4t7pQp9buEpwUuf5XgjzWRcaNTZ7jAg6yaMwqTnpnM4Bqd/0LsRrDVQpfetBSyXxkECWtnwjCw5eie2oQb17fWNFJDTPLFTyx6UKBv06iCQjGGZFyqSzRviGioRL7MKB0u+ZhjLIpAnfcfi4o9JrAP2CrXK4l/0eqJAtV4KMWWBJQlGh23/mMATqjuh6qjcIM/k/ofcd7LIJaif6kyby53NSF1seKH/EmgBrOaZ7KR92zlYaEteS0zgE2MBFXWpk/70aT9+qDhk9zGpjcqAqN3FG6o0jLmUNQ8GWch4d3B2HXtArmQYrYcy4nCU8wDxGtjS75CSEb5pl3rZUVbZUvZ+E+hBu7cudFto0mbkpbTUUvJupBynZGh8LK/XT6N0kwgE1BpiZyWW4EBEuq0N+npFLw9hxEa8idgd+s+JZjdEiNfpcJ+xo/1tWCHIT87ez5kAiIrqvGp27E4PyTQ6NjyPKYooySkR35bLt4WkrX0HdxZzpEOipf7z8oQwXh2Pz3oj6R6qorxRNMX9AX96dV6zJ+PzQNJOTqwcqiOnPmk/9kMyu995mgbmDOAV4qFqLX99n/zhiIcJzBw= 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: On Tue, 02 Dec 2025 20:27:59 +0000 Alice Ryhl wrote: > From: Gary Guo > > A new experimental Kconfig option, `RUST_INLINE_HELPERS` is added to > allow C helpers (which were created to allow Rust to call into > inline/macro C functions without having to re-implement the logic in > Rust) to be inlined into Rust crates without performing global LTO. > > If the option is enabled, the following is performed: > * For helpers, instead of compiling them to an object file to be linked > into vmlinux, they're compiled to LLVM IR. > * The LLVM IR is compiled to bitcode (This is step is not necessary, but > is a performance optimisation to prevent LLVM from always have to > reparse the same IR). > * When a Rust crate is compiled, instead of generating an object file, we > ask LLVM bitcode to be generated. > * llvm-link is invoked with --internalize to combine the helper bitcode > with the crate bitcode. This step is similar to LTO, but this is much > faster since it only needs to inline the helpers. > * clang is invoked to turn the combined bitcode into a final object file. > > The --internalize flag tells llvm-link to treat all symbols in > helpers.bc using `internal` linkage. This matches the behavior of > `clang` on `static inline` functions, and avoids exporting the symbol > from the object file. Huge shout-out to Matthew for discovering this option, this makes thing so much nicer and it feels way less hacky and more reliable now. > > To ensure that RUST_INLINE_HELPERS is not incompatible with BTF, we pass > the -g0 flag when building helpers. See commit 5daa0c35a1f0 ("rust: > Disallow BTF generation with Rust + LTO") for details. Again this is a much nicer way to workaround the issue than changing the language name in the DWARF info using text replacement that I come up with :) > > We have an intended triple mismatch of `aarch64-unknown-none` vs > `aarch64-unknown-linux-gnu`, so we suppress the warning. > > Co-developed-by: Boqun Feng > Signed-off-by: Boqun Feng > Co-developed-by: Matthew Maurer > Signed-off-by: Matthew Maurer > Signed-off-by: Gary Guo > Co-developed-by: Alice Ryhl > Signed-off-by: Alice Ryhl > --- > Makefile | 4 +++- > lib/Kconfig.debug | 15 +++++++++++++++ > rust/Makefile | 26 ++++++++++++++++++++++---- > rust/exports.c | 5 ++++- > scripts/Makefile.build | 5 ++++- > 5 files changed, 48 insertions(+), 7 deletions(-) > > diff --git a/Makefile b/Makefile > index 96ddbaae7e12de71bcfabef4639de3a13a6e4815..5834bfd568548d1bee34b328dccce5d60f85526f 100644 > --- a/Makefile > +++ b/Makefile > @@ -517,6 +517,8 @@ OBJCOPY = $(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX) > OBJDUMP = $(LLVM_PREFIX)llvm-objdump$(LLVM_SUFFIX) > READELF = $(LLVM_PREFIX)llvm-readelf$(LLVM_SUFFIX) > STRIP = $(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX) > +LLVM_LINK = $(LLVM_PREFIX)llvm-link$(LLVM_SUFFIX) > +LLVM_AS = $(LLVM_PREFIX)llvm-as$(LLVM_SUFFIX) I think this is no longer needed as we only use LLVM BC now without having to round-trip between LLVM IR. > else > CC = $(CROSS_COMPILE)gcc > LD = $(CROSS_COMPILE)ld > @@ -625,7 +627,7 @@ export RUSTC_BOOTSTRAP := 1 > export CLIPPY_CONF_DIR := $(srctree) > > export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG > -export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN > +export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN LLVM_LINK LLVM_AS > export HOSTRUSTC KBUILD_HOSTRUSTFLAGS > export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL > export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX Best, Gary