From nobody Sat Feb 7 23:33:57 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012027.outbound.protection.outlook.com [40.93.195.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACF0D3904D1; Tue, 20 Jan 2026 08:54:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899260; cv=fail; b=QPgg+2Jlw0516V/8k/fSDz6DNp7K5P8Ri/r/73NyQiyXH0rLYWG3dlgqoLSp4k73H8xXneBydYuubvH/B0Q+0pOpvYwCu21pEBnIOTzrtG8/isIrmM6Q9TT5n5u6a2NnLWe0CfLZAhVSNdT7mAx5KBdzcXEIeycM8x0PMl54pFw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899260; c=relaxed/simple; bh=Jm4xRWanhYaHoB/BgqqwbBfhiZVQOJzfeLq8tXJJplM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Yfcbthk0nq2CPPonRRcQ9fSMZTAxNRocsGOFvEjXb3lVK2UWIAt+jMfaQjyCW5vF9WxDT5eK6R/LypWqz48qXDI+LCW+NJ0hZ0hmDpCFXdIYosyKB+jXPOfXq3v3011xnSRBC3WzN7z1HKln6mALd7QzZkongtQ6AYVGcCIZqRo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=UEqkEWut; arc=fail smtp.client-ip=40.93.195.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="UEqkEWut" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=POk79IU+I4sWbJ0TmosTlP+en7uccdYElLDimSljx70THfmQ5uZPQJdmXeUgUNHY6TXMvG1BZcGdr1SsXNdzNxemD1GeSomw8CW0NQZnX5PHVIpEqIHeN9R4qkELVnwca9qvM4zN1Z+gboWo0KrQlTUg4kETNpLAY0ujB25zWH9Q5GEqvBe5ehbSpEUjKp93/tt80gQ6Ogi1ayXNsHj+CG2+xDsg5R6qM0U/+esUcBRQAluEOwpGEHlliiH+V4nZa2qw2aiEUYF7WHDmp+2Xn4jfdksjcqd3RaH3enm29xL3Uc5ThqSa6q94UzrDkvvCsXqeDSq8nCJQ9CX8vnp1kw== 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=fD36LridDEbAtpLNNvwG/SGdXVmeP/305x2RdGJF66s=; b=tMp5NKHM2wN8SnM2QLDOncvG3Zh4OI0iE8C8LZDWF30a0fMxPn8HoN35103M4K2NEjprPcmigrrDKPRHoaPNRXn56avlMAn/lNREEp57odw45plK513iA43ZtasRodTajrb9ZA4ObfH6Ev/dnKdnpoo8ANT5pRe/ZbeSSZ9P4kL+4I/IIHzZoWadze8NPfRIfB5DiDch/EfZY7AOZvB1mJqgb0RoHPOHOiJs0NDegCBzhuAidWBSLUPfYiNON6XuY+CtrwoBsQnwyIIyQsRCk3/SP4bf1uV8jXcS6WfREPYpIXpZwHX7uE4nDrB6kb+YS42TV1ceMZICYwqkEaLeEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fD36LridDEbAtpLNNvwG/SGdXVmeP/305x2RdGJF66s=; b=UEqkEWutLvirvHEoNcEPc7dKe23m3OWlH3xtiAn4Vt6CNrg3KAckMTqgJ3sgjgJQpA8iImiulZEW408vHQeOdCst2ditifq4NI8+mYyMEb37SgsfNHoyIQpzFpjH5ZlqG7lCEZpY3e09Bu78jExuWouQDC6g3xh6ab06RKi2mvVVDjIyG5r9qRpcpnrbuxi/302kdOXKNqr5SXXEkhdi4rjKe6fjdbSQCSK/zhbGzDIAUIwtCijkkTrVyAMik5/8hN9tdf50FHvAXTOUXaXuzgR0wdthSX86KmIAsyeXfBCD/nNUkxRhSTO6kaeQo0PciSKz3ywwcaRgZIgBLhPVIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:16 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:15 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:50 +0900 Subject: [PATCH 1/6] scripts: generate_rust_analyzer: rename cfg to generated_cfg Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-1-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P301CA0023.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::15) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: cf13c6a5-37c4-488b-6472-08de58017d91 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WXhKQ2t5MTlqVGd4VTY1UWZMTURpMXFYUDhTNFpaNFc3ck9IeEdqME9MRHY0?= =?utf-8?B?Z2ZKc2ZxVzMrNDFZWlFJeTVMN2V4KytjZTdia3pkUVVnN1BIUUdMc3hFS2lj?= =?utf-8?B?dC91aFp4R1MrZFdCWlk3THpoMERacHd4QlhadGpoRUIxYkVJdUYvLzlpVGV5?= =?utf-8?B?V0QvVDI5aVB1RUcwYTJvMnF5UEZqUlFCWHlZWVJSZVhzeDBjNHpnKzl1Rmla?= =?utf-8?B?WEdocGpBa2tUZ3BZeGhjaWJHMmY2K01weUJKWWVxSVhCQUFnVjdoWFEzQ1hi?= =?utf-8?B?VGZoTng2cEhTaVBWcTVkYnNFeXZTYXpwNkFPUEdVdWNscktGcEJYcldhUkN4?= =?utf-8?B?WE12aHRtUTdQMlhFN1JBbDY1dHd4dUFtNUNtL2k4VUpIZjQrRG1PZlNoSFFj?= =?utf-8?B?SDh0dDVTdDFNazlFM2JFRG9VT3FyNVNhdTVhSTJUVTdzUmE4emNETlVHd3Zh?= =?utf-8?B?WEVCeFhwYVNqNDN0RThQQzV3YSthSHc0NTRIdVhZL3VHdnI3S3FBQUxyU2NN?= =?utf-8?B?QXJoZUZPOUlRZkc1ZFYzT0V3S2JIc1UwNDl4WE80OU9EY29KOHpXZXZjK05M?= =?utf-8?B?SDFPME54SHRpOExnQ1VjM3d6TmxtR0RSL09kQi9VTVJkM1ZhcDFoZFRyMGtj?= =?utf-8?B?RjVmMlBKR3loMVpLNDhlZi9XRXA1dGNvZEJwanZLUTRwODhwNFhiWWRpbGQ5?= =?utf-8?B?K0o0U0lGZnBqbVlkekRFY29VTXlpeHM0c0FXK0xlVDVXUHhhSUdYWmdhR3dS?= =?utf-8?B?NFA4R1FMWVlMTjMrZjdXNU8ySWh5TU5YVVdGKzkvNzBzOXlBbHB4VmZCMitq?= =?utf-8?B?cG1FQXdCRXlMQ0Y1Zk44cmJIU3p0ZEliNDZ3VEp5SWJVcm0wSlA5aHA2dWh3?= =?utf-8?B?ZkFodDhqNXFodVZ4K2FtVUVhNm42azdPVmNvYmdDMDkzcTd3RFBmd205SmNs?= =?utf-8?B?VnpMOUlydzJLd2FXMXZPeGx6NHFvUnN1TmFrbkV6THNkRC9RVmVoVVVLV1ll?= =?utf-8?B?TlZmbkZZcDlubVZ4bEFCZ2FJVldmQmtZWGx2azlRRmhhcHh0bVl2UlQrYm82?= =?utf-8?B?S2VIb2psU25yajE3Y3Q2TzBvNU9IUDVrak5iQU9MQUFNMnN1eUdRTzJiaVJJ?= =?utf-8?B?R0Qvd1Y2RloxMGxFQzJ3UHNoWUI5dldYTWlYODljeVRwTGRRaHl1QVVDeTBh?= =?utf-8?B?Z1p4OFh2RGlicGdHMDdnajRxVkNEelpxVzVwN21uZDc5RndINnRER2Y0cmZx?= =?utf-8?B?VmJlbWliT0Z4bTJ5S1BpdzVDdDBoNS80c3d6S24vblU5U2RZVXZRNUlGZ1dC?= =?utf-8?B?SldpNERQUjhWOHRqVkVpTVRrdkNLbGR2NkdLTjJNcW40MGdNajJHZytJc1Vn?= =?utf-8?B?ZmNzZFg4WDNGMHVUdDhINm5MMU1XVE43WC8zZkRQR2EzbDlDZ0kyVjdsd1JQ?= =?utf-8?B?aDNGMkNQd01rM1krMXk2YmxoOXlWY3JmZk5MSTV2OXBWRUs0V2QrL08ySGVq?= =?utf-8?B?MnRCZGpRRG1lakhqS1FiL3VsL3lIVDZaRllqV3hHSllTTmt6ckc1aTR0Yi81?= =?utf-8?B?djF6d1VGa3F6djlmWjVGUHhwdnB2dW5nNVJ1WFI3cU5JQ3A1VC9sblJ4ZmVN?= =?utf-8?B?RTlwcmdzSno0NURaTFlJUDJxOHUxcGoycmd5Sk0xeGZqcnVmM2VWTk84Sjky?= =?utf-8?B?K2liVnI2bVJVZ0lGckx1YnlpVURQelQ1Mkk0MjNlT1B2VTlYYnNPeGlmS3hn?= =?utf-8?B?c2Y1QVorYWlxZXBBYU9YQzRPVnJtSStRZ3k1Tmk3TGg5M0dVS2FQMCt5Y01M?= =?utf-8?B?MVdWM1ptZDhPalhvN0RLdk5LMGx0TEtRYlQ4ejEvRlNTUnN0RnRBWFU4NG56?= =?utf-8?B?SUFJbE1YSFNLaDZpaUFyOGphOFJ1OTdjS0hIQjE5UjFMdVJwU1RtN2R2VWlV?= =?utf-8?B?dExZQVJURzZOeVZHMzF1R09LS1pGRDI0Um9pejJRYzFycmg3YkZHaW0xa1hr?= =?utf-8?B?c2NMeWpob1FPZC9kcUFrOE5LL1VYc1RDSHJ1c2RCSEJJTnJVb3R2Q1VaaUxE?= =?utf-8?B?Tlp1V1h2emJwd3ZDSkZGc1RhWHhUTDN1clUyRnNOajc1Y2taTXR3UHVLWDVD?= =?utf-8?B?Nk5JZ2dqU3dzczZYK1FIOEJWM2hYU3N5YVc0ZktzbFd4VVpsdDlnemhCTDRZ?= =?utf-8?B?SlE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L2Q1dnF2eHdCZVBsT0NrNXFFbzRVTTZGTExtZUpDQ0lZOGNjdjBrWko3YmZv?= =?utf-8?B?V3VLamdIQVdxODFlS3hwUVk3Sk8rTDRpV0M5em5QbzltZ2tFRzYxZkQyTnFw?= =?utf-8?B?R3JNMVVLa2lzaGFDVE1xaG02c3ZvZWNSOXcyeVdvSVVqVllxWWxsM0ZyNk9P?= =?utf-8?B?OVc3N2ZTTE1yeis4MnYyK2NaVUEyNVNJVzBRTWxqWHFRY2w0NFdPNHh3cTNs?= =?utf-8?B?cFV5OXhkeE84SkxhNTVhKzhvaUd0ek9TazBiR1ZsK0Evdlh4VnhMWXluMyt4?= =?utf-8?B?UzJsRTd6dCt2ZU5wRHBqdlIzcmp5SW9QOENSYUZERWx2M0dMVUI1eGxwQWVl?= =?utf-8?B?L0tSMCs3TjBRL1RjMFhsTzZESER2bWx2ZC8xK0pHVGw5MW4vQ3lsaUlXV3VU?= =?utf-8?B?QmQ3STNKeTVmc3lrMzQxVlJlUTRNWEY0bW00cjU5bHJQNjV3Q21OUk1tM3hV?= =?utf-8?B?V0lycHNVWTBvUWhpNEhMS0pLekV0MXVqV3hTbTAxOVJRamNLc0crVUhHY3ha?= =?utf-8?B?a25WVDQvdk5sSXNHYTlpUnVrUFJqZ3JFdHp0ZkF1VXl6SGsvT0J1dzYzR0Fy?= =?utf-8?B?U1BFOGQ5cVBuenRsM0ViU0RJc2RYeTB3WUc3eUQ3am5YbUVIb3dTaFp2bStp?= =?utf-8?B?UTJsNkFSWjJ2WXMrU09oejVnWUdGU1NxanZiR3BkdFJuQmZjclNVRHNWdFEr?= =?utf-8?B?K05GMXFqQmtYQzc5Z0VVUGpyT3BNa0RqbENZVEtrM0xaR1lKR29tVjBpM0Zw?= =?utf-8?B?Q1AxOVkvemY1M0xzRklZYloyZGtXRDFwYUIzUjFFS2tZdnJvb0x4S0hGN3ZK?= =?utf-8?B?aFhicVNsZE9YTHlGSmZjRVAyUmRFMXhUY3Jhd3llZGdRRTg1eFpMQ05Jbnl5?= =?utf-8?B?RWdUVy9vT3J6SW5nMzhSdHFiZXdjU0ZRcll0bVRjM3owNHRxR1pQaTNrWk8v?= =?utf-8?B?N3BhTGVNZXROcHR0VGt5RTFGU3RBV2FBVzJETk5hMExSV2dSdmRlUm1OeHdr?= =?utf-8?B?WEp6dFNxKytFMVNqZGFrR1hqZDk5RTFIWXlOVjhrYkVSdEFDNDdWREEyUnRp?= =?utf-8?B?bmtFMFdwaVE1R1pOTWdRMm5xajZWa3dvVGpzVlhFcVk2YWV0eWZGd2VheEhm?= =?utf-8?B?K3J2eHhlQml5Zjh2K0hZUG5NNWZFTHZvT3dQUEtUTy9NbHMxMmVNVUYzMDFJ?= =?utf-8?B?Qk50QWs1UXM5OHliU1ppUzZrMWhaRzFFYTA5VDhNbENVbEJCK0VjYzdPL044?= =?utf-8?B?WlRQVzRkSjY1bmtCY01raXlUSjRiVjBkNTZSZmJkc0lRbUNwTWRpQ1ZSdFNq?= =?utf-8?B?ZHVNUUpYSHluZFkxZzlaWk5PMnRsalhEcC94UTBIVTF4WmVCZlJGcWJscnZ5?= =?utf-8?B?SGc0TElDaDdPSXdjZjlEZlhqTTRJcmRzNkk4SVVZblZpNVZaWHV5ZXR5MGR3?= =?utf-8?B?b3BqSDJCaTg5aW4wT1NOd28wU2lndTlxQlRuVFBRWHNtUjNsWnFWQW5FTWZF?= =?utf-8?B?cEplQjFIRFVyUE11cjlGaEJFUXpEbXRQNzRkYnZwVFQ3UmhmVUNUYThjU2JP?= =?utf-8?B?bzhIWGdoNXhQM0dUdkxQZ1Q3dm1vcEg2cnc3L1hub0N1UTh3S25rQU5zREFB?= =?utf-8?B?RVhCUEhYekRzSWQ5Q05Qcmd1SlRSRDRyTzZlcVhGSFEvNlZtY1NqV0hOZkJa?= =?utf-8?B?TlYxVERYeXN5K29ZYTEram8rL1lxYUlQOW5PRzJJYVJQam1SaVdUcWp3NEhy?= =?utf-8?B?R2tMNWZlZGMzN2dtTHdmM1BGOXdkR09mMHdwT0poYXcvSnJWUTJGRG8wcmhW?= =?utf-8?B?OGRlZU1KRUpmaDRVUkJ6M3pQU3U0UTJldXRDWkFiWGt4WkZsb3lvTEkvZmRB?= =?utf-8?B?K1Z5MjcxYXJqcXJaU2hTaVdPZ2p6aUx2U1VrbHp3K1NocUdIalRjRGNHRzRv?= =?utf-8?B?YlFqTWhPamdJZXpsYnIwZzVJU3JWTUNCVkhkeUZDTXZ5U2pqeVpBelRSQlgr?= =?utf-8?B?aGlZcWlpYUdmWDkzRDVMUDFHdTN1NGMzeXJzMytUYjJxek0zeW1hZS9vbWY1?= =?utf-8?B?S0NWRWJiMFlxQ2dMcmQyUms3dUhWd0dmWDFycUVuRSt3eStjZVB2MHBMTkNi?= =?utf-8?B?bzZpNmUvcTdaQXljb0V0OU5EUzlrbGtqVnR4YmJMd0RJeHJGbXNkaG1xc0w4?= =?utf-8?B?KytvbUdpMHl2Sm8zVnBXSnZOYWl1ZU9UWWowVFJYcDF1MFZtbzlxTzdkT3JO?= =?utf-8?B?KzNyM3RneUtFNnBxYzcvMFZLTzFQVDQrMnFzc09QdFhzSURrdDBQZ20waXlB?= =?utf-8?B?WXJDa2VzOERzM3NBcmxRUmRjTFVsVHlOWm1WMjlicEk0YUNUdFJxdHhvay9M?= =?utf-8?Q?/+U9+WW/FHgVEISP9NrMOz/AWOJEXO/SXkPa105FA7CUi?= X-MS-Exchange-AntiSpam-MessageData-1: BMXP4ZtYmzHLlQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf13c6a5-37c4-488b-6472-08de58017d91 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:15.8725 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NSnkS7a6DihPR08/seqF9Zow2tqAd/lmO2/HfPnYmNzXfIxDwOvqmUAh679lzvYcicd8BpdsOwxHyZWCUl6ZZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 This variable is for the cfg from generated files. It's also easy to confuse with the `cfg` parameter in append_crate(), so rename it. Signed-off-by: Eliot Courtney Reviewed-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 3b645da90092..c188d1f1fd5b 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -21,12 +21,12 @@ def args_crates_cfgs(cfgs): =20 def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, cor= e_edition): # Generate the configuration list. - cfg =3D [] + generated_cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: for line in fd: line =3D line.replace("--cfg=3D", "") line =3D line.replace("\n", "") - cfg.append(line) + generated_cfg.append(line) =20 # Now fill the crates list -- dependencies need to come first. # @@ -173,7 +173,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, core_edit display_name, srctree / "rust"/ display_name / "lib.rs", deps, - cfg=3Dcfg, + cfg=3Dgenerated_cfg, ) crates[-1]["env"]["OBJTREE"] =3D str(objtree.resolve(True)) crates[-1]["source"] =3D { @@ -215,7 +215,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, core_edit name, path, ["core", "kernel"], - cfg=3Dcfg, + cfg=3Dgenerated_cfg, ) =20 return crates --=20 2.52.0 From nobody Sat Feb 7 23:33:57 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010025.outbound.protection.outlook.com [40.93.198.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00F043BC4F9; Tue, 20 Jan 2026 08:54:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899264; cv=fail; b=QutO2JQ5A8eer74IdH4f58/WFHIiaOp7TeIMaIzuOfmCgj096EUJS6eKPSnFw5K03pSVUhYO61DBlu0ggqjkdMmPOIE1rNVLBwl903XlLWQ9DEv4vYXGMz9vBph3eAg5KdY++jxmTZA1K8HtSoHGC0tKevImo7/aSH2c/8NCH+o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899264; c=relaxed/simple; bh=loD8TfH/cmmv4AV0EaP8LOehLBlT48nlqmpRsd2ojMs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hq1mduUGLvQCBH++Mc+7C3PGQzemSx5vhibm+3dXE3erbIgd08IRuMkQD9cOcdSmB2m5yPiK6iQemGUpWu9Hl+RDsnNJIfWB6+/fI6ok996p2ZloKEyLDro0s7fcGhFm7k2L2N7heBBTrqxC8CY84Evowsf5ILIjnFWu51nE/9E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=YOgPciO0; arc=fail smtp.client-ip=40.93.198.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="YOgPciO0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wBZl/mlzjLUVUE4pmxB6nVQJtBKpzKtXsfeMH8mCDEkekaTO9GIyNrnthHuZp3kS571Erkzk7sqC1/LkpEZPQT2r9owScQkj1f6zZbSTe/wQEDzkzjDyXaVFzSkTwJAHnOuC9p1enM8WerryB6y/YHZ0GwY+izOqWO4DFah8g2uslTzryJAEvjZBQfTtwWNP/pitu3l4PjuS4E1TyzxkOfSbohsdSzcfrgx3zciAO3TDyABd61daPJfVq6EkpwazemH5EMA/4QvbSu37JD2R+ylXKE9wHxFQuFX/zhF5dDsKebj8Yu3VQwoRsAuDTi2ACyNX0vBX0+YuVIeRIUfTzw== 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=8SILC4Hm/nLBTuHVolur2n/aBGQpehuabkHK3k1RXsA=; b=VNOOZa2XGWD93vnz/wAraKDdl6nO63eZxbUWvctfj3afp+s/Zsxal3jbi8XO2gF3vwRPhJoSsOehKhcZJiDhNNDwtXKENMQtVwMMq5Yeqxw3GtacZ705VowvHEJ8DePNM4l6ghxVYMKIenuItqMMHqHq5KqrGxWjhBIBwjc7gy5wnjijldgOjAjttTIMwLJD3OqutvtkSd5naE1gojOR0xRE5Z9IzRgZcskHVXNNvlMfl8kNKfYOm9PlgZYOpIIUzQbvSjzx3h+tLPMdx1ccYg5faAoOy4JhkCRNdivU2F1ucRPktxd7Bm5ZuxsYzlueAGgi6kkAB6ZyfbXd1LMO9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8SILC4Hm/nLBTuHVolur2n/aBGQpehuabkHK3k1RXsA=; b=YOgPciO0IipuimB8Sd6mIcjWBfy9n6lNi7914S7yUlyGbQgse1RPkYV3ESz/1ZHRmA8WtWpyuW3ZHYNj6CdnxNNMhwuxnj6yyujTltuOP9zmYf0lomMmt/T5fCYWJsULxTBEYg6WX4679wamQthGOWt6fcHrHqLx5+Pjs6WW9T2K4gJe+2XK9CeJ6GOMZHYbF12tC+/cfLefhLuiwKyY+9XOlqAR9yCSY3uhYDLIyhC2WEZMc3/FBzJtXUgpYnLVy+gdrp36mGYq7bU79yv9jUX5jtigjH/lb0IpZ07/ZTdAQZDak0WjjvWues1u31ZigIvGMeoBks8VqyBhdR5V4g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:19 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:19 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:51 +0900 Subject: [PATCH 2/6] scripts: generate_rust_analyzer: plumb editions via command line Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-2-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P301CA0015.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::17) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: 4cb8a561-8405-4069-bef9-08de58017feb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|13003099007|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QUtMbWZWZ2J5a281VW5DT1VDN25iNEZMdHBRN2FVSkRiS01BS2poOFA4REpv?= =?utf-8?B?WG0zQmZ6ZTNtbUp3eTRlT05qOHE0eXExcmVXYUxndnl1NG1IRlFPT2NTRHF0?= =?utf-8?B?aUhoZU5rT0c5bEl6ekdUYmNJQlZ3N2ZjejgyOGVTSWJteFNDSkdKa2w2eTE1?= =?utf-8?B?TU1VTHRYb201allDZytLKzBiSWNvbG9xbWxKb1hEbjdidng3VStmaHZBS2pa?= =?utf-8?B?aWp2eDJyWkFvdHZ3U3hEb2U2WDVBUElub1Jsc1lrK2Z1R2hjMDRacjJOMWdT?= =?utf-8?B?RG9JYjBNODVBc3lKSlpRMk9odzUwNVQzNzlOa25DdDIwWU5WYUFsemlaZ0dt?= =?utf-8?B?elU0a1hxcmdvSmU3aHUrdVl3aGpKcmZJQms1c0NFbkVLcjJiQ0hsUnRWZlZH?= =?utf-8?B?NEZQbUdtRGZLc21xZHZyenBmQTFybSsraGtnM000enluVlhmc2YzYUlNODBx?= =?utf-8?B?Tk1pdk9kNEkyTmN4MVVDUXlzTW5EMXc2dC8xTGJhdmd2MUs2eS9xRmd0MllH?= =?utf-8?B?SzV3b1JLNnl4eWZzSXlrNWRhUGtVNWo0VVY4czJjRW43Q1dpNkl4endCdDdn?= =?utf-8?B?UFFzUW5VWG1NekxiMm1MYStwcnluZ2hEUms2VmMvWDJrRTB2aVVYazVwRlhi?= =?utf-8?B?WU9rMEtaNEw2SFdGcitZcERhNytYQ0ZXRnJsZkMyYzJnblBhYkV4NUtSeWps?= =?utf-8?B?QWM3aUJpVGdnU2ZYS2NZTVpUUUVtS2l0cDVLRitMR01zRW1JOGt2NjFNUnVK?= =?utf-8?B?MXNURmpIQzJpWC81aWJCb0t2U0N5K3REVGhvL1ltSWdzUVVBeER1ZDN2em1K?= =?utf-8?B?WGQrQk5vWGhrSks1WktqYlFRcTVKRHhDOWZvMTNKaHRwMjE4L0Mxd1VEM2tH?= =?utf-8?B?ZCtwZUhkNEN5ejg5c0w0V1ljVXU5YTYvWW1oV2dKV2tXcXNUTHYrazRHMXdI?= =?utf-8?B?ZnU0SktlSlduTmt4T090UXpzV2h0T3NwV3BKbXptcnluSGpqR3VETkwwaGhZ?= =?utf-8?B?cFBUN25MdFZza0tQbkdjVUhnM0c2ZGpCdDRDVEdDbG1SdWVSeHhBdDRaQmxz?= =?utf-8?B?dTlUZ2F3dlNyUW1PVnpZQ0FJK3ZmUTdoeDBSNVAvdjhRcnlVM0F4THkzdnRv?= =?utf-8?B?TkdOZ2lMVjFzb1VXWW1kNnNrUG5HVnRCaWdXc2R2QzJzaHh5QmkrMGxESjMx?= =?utf-8?B?S2kwSE5hV21pK3JWVDdDMEQvNjl1bHJTV0o2bHJkZStUQXVCUktmdkgwT3pp?= =?utf-8?B?UFNPRmR0dzZDREVNNXZ1QmZSQ3h1b0J3RFlDczc2UkhVSUNqVWo2bk1sZTdy?= =?utf-8?B?ZUN2TkxPeTRaVmszaFZ3ZzZCUlNiUHQ1eTJKOEt2WGxLMzl3bWp5WWZtWS9x?= =?utf-8?B?VWQvV244ZWdnb2c2c0oxcHZzSm1aODJjQzIwZ3ZudG9EbzlKUWZRR01VbTVE?= =?utf-8?B?MlE2ZlNUYTZ1Q0t6SlVCTVBKWGRUb1pyejFvQzFXaitPYUdKT1J6UVN0NnZj?= =?utf-8?B?WitRcXZJcjZ3d0RVMklxMXpoNElkOHNFMm1uOHdBaUcrY3V1WHpDMkdsejZF?= =?utf-8?B?bVNTd1l2ZnJVOXlLUk9UZVdpb2x5QitKaEJKT3krbWk0ekFBMTZJYm55K2Rn?= =?utf-8?B?eUUvb1ZERUl1bVVuN0xBM01ZQlY5YU0vWGVKeEp4YXlTOTZRSDFPMzF2Q0pP?= =?utf-8?B?WmFYVC8rSVIvQWpYN1d5K21yMDZiRjh0aUQ1QTRuV01vTlBVYzlwU29ycXYw?= =?utf-8?B?T2FRRXhsNUlEeTRRS1FrbzZabW1GdXkwcE53T0FocVRyb29kZXBFOGl0Q3Fh?= =?utf-8?B?VWhhQkUwUFd6SGxZYzgrY1JyVVAzNGdabWZMNjBTRGtaSnVTa1hBUVk5NG05?= =?utf-8?B?d0UxR3lhSUJxRjBWUHhhUVJwK3pTQnk3NWcybllMK0pqcnZQa1NzYW1NdmlD?= =?utf-8?B?a2NjZUUxcjhSajArTndMUmYxRWo0U3JvS3BYczFuSFJLRjVFQVZnWENvT3ZG?= =?utf-8?B?SC9LUDNaT3NwaXY1QXgrdThvUXNxcGpIWXg4YVp5N1dLcjZLQVVVdnBoRnls?= =?utf-8?B?dFNGMjFFb2dvNlJqLzB3em1vS3hoTGtQR1hidDZhanZSWkI1VGNRQXkrMGdr?= =?utf-8?B?UkNXYmlFREVIM3ZMRUFpUXhpcEpHVlZXWlhDblYyL3R4MUtyd2o0U2tWdXgy?= =?utf-8?B?Ync9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(13003099007)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bWdRYjZJM0JlV0VVTDVIRUx2YXovWmVOdUZGVm9QODV3b3JIWlZTL3l4WUxq?= =?utf-8?B?ZEgzYjMra3orbUljOW1YWUhSTkwzR3JLcFFoaG5mU0d2SzVnSzBjbjF5RVpZ?= =?utf-8?B?OWNtRVNpUmdXRGNDeUtOUTRqY3pIaVh6TFdaYVVZQ2d5QXFGL2JYVGwwbVFa?= =?utf-8?B?SXE2bWRSQlFOTkE4WEVRdVFlYXlZU1E2akw1SzNlOGR6QXRFRTduYzNpbzc5?= =?utf-8?B?QzFWcHpFRExtT092bnNFUk81aWhBZnVWMVR1SjUrV0RidnNIQW03ZmNNSG5N?= =?utf-8?B?VXU5UFcweWQ4b1pxdmw0ZzVRSlBDeFJkMmsybjA4Y1pScTllaGs2aFJldUk0?= =?utf-8?B?ODZDOWtpbThxUTFHVTU0U045NDI4UkxjUnc3bzVVWXJzZ1BaOXRwMG04bTFt?= =?utf-8?B?Q1B4UzExc0RQbWJYVmxYYjlqMFBwL0E3UnhzQk93RzRJNlo3N2FjWmpzNkht?= =?utf-8?B?N2dwaFB4MlFGd1E3R2ZVNEVrOFJyV25QeWpmTEMzL2FLKzRJa0RHOGFTZ0lo?= =?utf-8?B?eHZXbk04ekI5T1p0a2pFMk05RC9uMG95N25Vb25ObDdMeElEOTVqSUFTd2NR?= =?utf-8?B?VHNCYjZsNlQ1KzZ0azRZSS9DcTdkcm5yTU9aa3k2TVkrUnZvYWJHQzkyMHd4?= =?utf-8?B?RERraFJYY29iRFFqMk1yQXZqVXI5aFFSSHhSeWRHYlVOVTF4S0pGSjBzSlNP?= =?utf-8?B?c3RmQTlFYTI3dmVta1FkUm0wRG9DWlRkRmtpV21LQUdiQXZ5L3h6SDRKZEhQ?= =?utf-8?B?aGtDVzFYVjVWS0Y2Qnk0WGg3OC9ka2tPV0xIcTY4MUpIMU0rM3VQQWxZampv?= =?utf-8?B?SmIxclFRc1h5SDlCOE1nTjVSWmdIVDZjTFlEaDBwbktwTEpZOHhzWVRxcmxi?= =?utf-8?B?eThEQ1k0UnFTM2VnWXZGZUQ1ZXJFWjNKNnBrNTRiZmdGVjMzWnhHT3lyUlR2?= =?utf-8?B?WUJRdGpmZXg3YW5LdTE0N2RXZTA2RjNFQ3pKMFlLNVpIaUNuMVBwNFVGb3Ru?= =?utf-8?B?aFFJQ1BYYVN6K2Z1MEtMbEk0Nm1tWkFRcjZsQ1B1b043TFQrenRSMy9teE9E?= =?utf-8?B?cFFsUDdYRmREYWh0RDlOSnBKRVAyaGpoU3BYOTZxdjMvR1NZN0JEWWY2cnBO?= =?utf-8?B?b01NNGZmTVlXTlBRaEZRSUdDWi9ibjJBQzJjd1huNENRK3BCUzdVTm01dDZ6?= =?utf-8?B?RjJLeUxxTytrT0NVOWk0dnU2NHlBb212WFRyR1MzazFJdW5rWGlmV0w1Y0Mr?= =?utf-8?B?eTkxekZtM01TMUNuQ2pSeldlbXB0K1FyMFVFRWxKMnJlc3lJY2lRT25KbjEy?= =?utf-8?B?aytBZzl5eWd3Ylg0M0dBVE9yMUx5ZWhmdEVNVGhOYnVKRUlxU25aR3dzSnkr?= =?utf-8?B?Zm93c28xdmRyVUV6OXVEdVFIU1hhSVJ0czdkYSt2aFd3TjlDdnFHbnlreDRp?= =?utf-8?B?NFNtMUp3eU9KY0dvc1NvbjZ4OVhib1JOcG44cFdpNjV0K3MvK2JkYjljSHFO?= =?utf-8?B?Nyt1eWZsMThQSjVvMFVqeFVJbEF0UXVWNHQ5amZBNjZMbnkwTE9WZk82MjQy?= =?utf-8?B?eXdCbGdKckNLendORlpvVm5CdHNqS3I1SU1yejRxSzBxem1Wa1ZISVlXcURK?= =?utf-8?B?YzcwTFNWK0lHNStwckUrT0lqUHpTamZXQnBlamRmRzZ1cit2VHhvSGtRR0Z3?= =?utf-8?B?NHBxTC9POERNeVZadWVRb3VCSlVSdHNBRitYOUMzUFBJOUUrR2lQYUUyTnlG?= =?utf-8?B?TDBkRnJVNS9BbWRkQTUzWTZVZyt4MlBmdEdXcFhZUE1FZTFNQXU0dHBMaWlv?= =?utf-8?B?dU0zOGk4bEE0ZC9zSVRETWpVdHl2Q29xYUJ5UWFLYW1Hd0ErYSt2OWdqSWd0?= =?utf-8?B?dzdQQVVVRDIwNlcrS3ZON0ljc2VFUFhaQnZwd09GS0p4QS9vZVFNSlN1VkZT?= =?utf-8?B?eTRIcVBFV3llUUd6RUF3NklnZFQzaVF0Z09KYkxnd0NkcjVxUGkyMjAyV0tj?= =?utf-8?B?b1hzUWIwRXRrY2hsNGRPMFFBS1ZkMUd3RkQ5L1NnTTdrcng4bUVLbzRsSG9Y?= =?utf-8?B?SGFqL3hzb2dtTmU5WU9aTGpUNkRGYi9JOTRBQ1ArekI4dU83VmlCSmtKNDZC?= =?utf-8?B?VmE3WHkxMGg0YnoyK3dxY1RjaW5EbHF5YTA3QXN4NituVDB1dUo4dlJ3UHhp?= =?utf-8?B?ZlZocU5sRGFuWHFrWXUrRWlCL2pJWWRCN0ZPSWxBb3VhOGJDdm5hRzhlVjJI?= =?utf-8?B?ZUErSTJRYndmdXdCQktHck91cHM1YWx2SFFiZjBTNFU2UDRmU1JtdXJnMFBI?= =?utf-8?B?Y0k4UEpXQitSTjRmeWhrNFo3V1RnbnRaYkhyci9RK3N5SjladjZoK1c5MmFw?= =?utf-8?Q?c8Bl9I7f+GYNLYn6INRsIP3K4gQgQj/wCH0uulkL7dldB?= X-MS-Exchange-AntiSpam-MessageData-1: LyIvolCU8NIyKw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cb8a561-8405-4069-bef9-08de58017feb X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:19.8269 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ohdNF5fqz9iCzlvcl4N+SwWj0fWAaGGOfpW7HHJVX9njt4lsRMqt90kYjSDL3GgaIrEaXPyZjfYZX7UOpbvoQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 Add --editions argument to pass crate editions in a similar way to the existing --cfgs mechanism. It sets editions as follows: - core: 2024 for rustc >=3D 1.87 otherwise 2021 - quote: 2018 - all others: 2021 Signed-off-by: Eliot Courtney --- rust/Makefile | 8 +++-- scripts/generate_rust_analyzer.py | 70 ++++++++++++++++++++++-------------= ---- 2 files changed, 45 insertions(+), 33 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index 4dcc2eff51cb..2238b0b69197 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -95,8 +95,10 @@ quote-cfgs :=3D \ quote-skip_flags :=3D \ --edition=3D2021 =20 +quote-edition :=3D 2018 + quote-flags :=3D \ - --edition=3D2018 \ + --edition=3D$(quote-edition) \ --cap-lints=3Dallow \ --extern proc_macro2 \ $(call cfgs-to-flags,$(quote-cfgs)) @@ -567,10 +569,12 @@ quiet_cmd_rustc_library =3D $(if $(skip_clippy),RUSTC= ,$(RUSTC_OR_CLIPPY_QUIET)) L =20 rust-analyzer: $(Q)MAKEFLAGS=3D $(srctree)/scripts/generate_rust_analyzer.py \ - --cfgs=3D'core=3D$(core-cfgs)' $(core-edition) \ + --cfgs=3D'core=3D$(core-cfgs)' \ --cfgs=3D'proc_macro2=3D$(proc_macro2-cfgs)' \ --cfgs=3D'quote=3D$(quote-cfgs)' \ --cfgs=3D'syn=3D$(syn-cfgs)' \ + --editions=3D'core=3D$(core-edition)' \ + --editions=3D'quote=3D$(quote-edition)' \ $(realpath $(srctree)) $(realpath $(objtree)) \ $(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \ > rust-project.json diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index c188d1f1fd5b..17ed5546504b 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -11,6 +11,13 @@ import pathlib import subprocess import sys =20 +def args_single(args): + result =3D {} + for arg in args: + crate, val =3D arg.split("=3D", 1) + result[crate] =3D val + return result + def args_crates_cfgs(cfgs): crates_cfgs =3D {} for cfg in cfgs: @@ -19,7 +26,7 @@ def args_crates_cfgs(cfgs): =20 return crates_cfgs =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, cor= e_edition): +def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions): # Generate the configuration list. generated_cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: @@ -34,8 +41,35 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs, core_edit crates =3D [] crates_indexes =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) + crates_editions =3D args_single(editions) + + def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): + # Miguel Ojeda writes: + # + # > ... in principle even the sysroot crates may have different + # > editions. + # > + # > For instance, in the move to 2024, it seems all happened at on= ce + # > in 1.87.0 in these upstream commits: + # > + # > 0e071c2c6a58 ("Migrate core to Rust 2024") + # > f505d4e8e380 ("Migrate alloc to Rust 2024") + # > 0b2489c226c3 ("Migrate proc_macro to Rust 2024") + # > 993359e70112 ("Migrate std to Rust 2024") + # > + # > But in the previous move to 2021, `std` moved in 1.59.0, while + # > the others in 1.60.0: + # > + # > b656384d8398 ("Update stdlib to the 2021 edition") + # > 06a1c14d52a8 ("Switch all libraries to the 2021 edition") + # + # Link: https://lore.kernel.org/all/CANiq72kd9bHdKaAm=3D8xCUhSHMy2= csyVed69bOc4dXyFAW4sfuw@mail.gmail.com/ + # + # At the time of writing all rust versions we support build the + # sysroot crates with the same edition. We may need to relax this + # assumption if future edition moves span multiple rust versions. + edition =3D crates_editions.get(display_name, "2021") =20 - def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse, edition=3D"2021"): crate =3D { "display_name": display_name, "root_module": str(root_module), @@ -68,31 +102,6 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, core_edit deps, cfg, is_workspace_member=3DFalse, - # Miguel Ojeda writes: - # - # > ... in principle even the sysroot crates may have different - # > editions. - # > - # > For instance, in the move to 2024, it seems all happened a= t once - # > in 1.87.0 in these upstream commits: - # > - # > 0e071c2c6a58 ("Migrate core to Rust 2024") - # > f505d4e8e380 ("Migrate alloc to Rust 2024") - # > 0b2489c226c3 ("Migrate proc_macro to Rust 2024") - # > 993359e70112 ("Migrate std to Rust 2024") - # > - # > But in the previous move to 2021, `std` moved in 1.59.0, w= hile - # > the others in 1.60.0: - # > - # > b656384d8398 ("Update stdlib to the 2021 edition") - # > 06a1c14d52a8 ("Switch all libraries to the 2021 editio= n") - # - # Link: https://lore.kernel.org/all/CANiq72kd9bHdKaAm=3D8xCUhS= HMy2csyVed69bOc4dXyFAW4sfuw@mail.gmail.com/ - # - # At the time of writing all rust versions we support build the - # sysroot crates with the same edition. We may need to relax t= his - # assumption if future edition moves span multiple rust versio= ns. - edition=3Dcore_edition, ) =20 # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies @@ -120,8 +129,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, core_edit "quote", srctree / "rust" / "quote" / "lib.rs", ["core", "alloc", "std", "proc_macro", "proc_macro2"], - cfg=3Dcrates_cfgs["quote"], - edition=3D"2018", + cfg=3Dcrates_cfgs["quote"] ) =20 append_crate( @@ -224,7 +232,7 @@ def main(): parser =3D argparse.ArgumentParser() parser.add_argument('--verbose', '-v', action=3D'store_true') parser.add_argument('--cfgs', action=3D'append', default=3D[]) - parser.add_argument("core_edition") + parser.add_argument('--editions', action=3D'append', default=3D[]) parser.add_argument("srctree", type=3Dpathlib.Path) parser.add_argument("objtree", type=3Dpathlib.Path) parser.add_argument("sysroot", type=3Dpathlib.Path) @@ -238,7 +246,7 @@ def main(): ) =20 rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.core_edition), + "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions), "sysroot": str(args.sysroot), } =20 --=20 2.52.0 From nobody Sat Feb 7 23:33:57 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012016.outbound.protection.outlook.com [52.101.53.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E76223BFE33; Tue, 20 Jan 2026 08:54:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899273; cv=fail; b=ODw2xGeB2PNgep35qrtYN4eusv7hhCSDHjZ/+nic6+Ff3g5WUV7JBihgsTn5RjVNR6DglZww/IpKAF8ln9fWiCtQ8AsBTr4G8qzyQPKbBWMUN3wOmjdmgiPxxS8gEh4FPidh+E8VIvOXuUN8EzoM7a97xy8g5ryejfnEZv4wfWI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899273; c=relaxed/simple; bh=k1pBOJYw84q9UsVd+b5OdK+jv8+XpfoOS4N3LWPpnJw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=eSNaRkQG8MnqcZH3m8n2MEUxyMWSL5cF07tCeyQBegAJ10QXyYqRRg9zgXPuAppe/Lb4Qv2gpddv9JOlQSg7KIjkOLoT8AJoNm+4fswoAPI8wtcVDoppL0x6DWkccwOMOA3ilkP5oFd2HrxuYJacIRgFoniG7M0qQAce/4caP8A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=grCH5Y4j; arc=fail smtp.client-ip=52.101.53.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="grCH5Y4j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jFglUXZkye7cM34HEvdhNFNnUAO44aT6AgevercDECybukr7LZS8Rctv4xxdGG/rjyhPBvR1AKwZS6wYPQva09nFfKyhNWYN5reRHOQD7Mpkz0xwrzCKh7dRBoibOHASeR2jK7YmrNQspWCLc9eHo/T7PQzi8uKjqLzUELIEG1GMO0czX4Gm2+27CJTg/cAQ9PoY/mSd6loG5dsOjgHFvaZKJJvRqeNqSkzo2PCBKTyw6EBqPCcEMHqcqHVK+kz5AgODF1IUO7+hH36an1TyjlkXZrAQxxob6qWkdY26xLAEY40HAcwLgxYr2gmCT4WOCUwEZJ6WHHtMbXA931DVYw== 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=HouJemgJScweZPO+K027HgjdU1njGCDhmr67JBT67x0=; b=aY6hHpKMYip71xhsiErntfNdLkqIuKAKXB0dunXlSSevOiHq6l4Wi0gwuiCWMwKZ4oFoT7lRFxiP4m3LxZ1H2Cj3GXE2o1fRMzX0+qHlQH0lTss6P18c2fB6PARQzekKSb5bECPDySeqFsvfr/1iFVZo+2wwWDbZvWR4kdR8pLlw9pJK7cIc56TGW0rFgYY8cvevzs8c0UkzuO1ZrlvCzLBgawn8UOkz5zRlb2SCPU0gqq+5Uarb/Ucc60BgDbyLV+yaq4AeNZD299Uew9MG1cPrFN/9BJ7I0XEP9lFKsFVDyAt/aG2bqyNXb/Drfp2a7h3yindQhQej9E/CIOieOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HouJemgJScweZPO+K027HgjdU1njGCDhmr67JBT67x0=; b=grCH5Y4jkujNj2DR47KiTUvo3qiqvYt8bLU4bz5yX9IMsBxNeLRvu6hscQfM4Gv0ExKtKx0jqOb/CxcfsTu9SqCrPwAO2sQuIXHFXddLnfiS6LrfYkggrlx9mJ1JBMgDtEMIQ78AsMkEScAhWrDsAmHT6pYr1bL5B1FMY3TZtTarykqgqeie1oOXYjZbI0RAQytPP3DqjB2JAh0653F+sVp4j01f6CGB7Muw2Dz+ULdydpSsupo38sR1gfRsPI6xuWNZa6caufiT5HrxNQpauY6inqSYh+oluM9d3HcubvLoIvkqEV1PBANXuOEP0h+8X8BrCy3zyGo5je9NAUe0Wg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:23 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:23 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:52 +0900 Subject: [PATCH 3/6] scripts: generate_rust_analyzer: plumb crate-attrs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-3-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYWPR01CA0016.jpnprd01.prod.outlook.com (2603:1096:400:a9::21) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: b699d8e3-7094-423a-8e9b-08de58018249 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MS9BU2N5SkZHNnpBUmhic1FzZjBCVzk0dXA2bS9ZQjhDb1lDTkhsWDRKYkRP?= =?utf-8?B?a3FLRXgxVXVBZEJpakUvZVZVK2dlNVFsa1drcEtVQTZzRnZlQXZGNjIrU0pF?= =?utf-8?B?ekQ2S3FtSUI2aEFNMXBRMEdEMUFJZWJpZ2svM2FtbWJ4cWttYlZuRTQ1a3VD?= =?utf-8?B?ZXJYdG4rNk1nZk5zd3g2eXNmelFVZW9YNDdhcGFuTyt1cU5lMVU0UGZsRmhZ?= =?utf-8?B?b0F2QWNUaG1NbmxkbnBteTVCOHJodk1HZU5WTUJCejVwTzBTVXFOSnlJMWY5?= =?utf-8?B?U2lBZWw4UGUwSUVaYzNmZkwzbUVNcThQVzZHVWFhMnFlY0hEUGUzSEppbWtl?= =?utf-8?B?Sm1LOHlqLzVMTDZKdW1Kb1RTYWxHdFpyZVVVSHFxVVQ5b3l1Mzh0RXZjLzc2?= =?utf-8?B?M0lKNTMrdVFYYWVTb2pkbnI3am1ETjdLV3JpNlcwQ0hDc0VTQiswVytzVklv?= =?utf-8?B?S2lMTjJCeis3c3VBSnJ4U2JsUjlyNzRxTHBHRHI3N1hybi9GZEpxSFFwN0Y4?= =?utf-8?B?WkI4RjZyTVcyQ2JMZ1dzVWdmSzIxaUxJVmlvOUZnR3hScHpoUTZxL2JSVGc2?= =?utf-8?B?NTBVaWRwcjJJVXdmVjlUcVR4STBER0FTZjRvd0ttVEFpZnJDVThTbGM2dWhz?= =?utf-8?B?YzYxU3R0MHFCc3gweWkvc1p0YnVlemk1bjJCNEQwMG1TNjdqaE1uNDNFWDBC?= =?utf-8?B?eUxUMkIwS29CRHFmdHJ3RXEyeUY5MVNudWZDd1k1S2J0cVkzRm9RUktJZjZE?= =?utf-8?B?QnExcHczWko1UTI0TkZpa3Blak91NGhZMkVvWXhUL1UyUUNVWFI3Mm5XaEY0?= =?utf-8?B?T1JlZUZtOE9kODU5c0tlRDZvVklBZlZUVjh5bEtuZk85Wk5xamJhWk1IZlp3?= =?utf-8?B?RVRCSkNWV0lva29iVis3REhLTkpsbmFiVTFKOWRBY0tDUlVIM2hhTmV4Sjd4?= =?utf-8?B?Wm5UU2hkV3NTSEVFdXJpemVXN1NZM2dkOWN3cGxiOUp0VWRIUkNwSzFHWll2?= =?utf-8?B?VWg3cU5TcWFZUVNCa0c2STkyVTRjV1ZqQnlDY0dzMGl6Y0RJdUFwRU5BdTU1?= =?utf-8?B?ZXJ4NWxhWnhGeXZMMHZVTUlDN3dFMFQ5dnYzbk15VHRYVUJPdEZ5L3hiOWVV?= =?utf-8?B?OGNOUE5yU0xXRG4wNVlWVjVySXBHdnhHY1BGWlc4UjgxQ0FzYndDbVd3WjBP?= =?utf-8?B?bTJUUFRsRlp6VVNQc2h0ZHg0QXlQZm5MK043L09aUkw2N1d4U0ZobFRqcmRY?= =?utf-8?B?bDZrclNtd1UrSUwyT2xPOE1OZjVCeWMvclN5ZmZCeWxaREYyUDRlVFN4WVZh?= =?utf-8?B?M1hKcnV2Ty9lUjJXUjdpK1VQOE4rRXJuVDZiSFI2d3NSU0swblRHSC93Wjhl?= =?utf-8?B?bDhIMTlBTWR6U1lCanhrQlNiYWxpNVdZWVl4TmhCMDB6QjFIUlJvenA3a29W?= =?utf-8?B?VWp2M0pPdUU4YTFkVHB4TytOQVNIMzZtTDNKNlh5V001bHg0SEtiWnpmM2RW?= =?utf-8?B?MVZFb2F1NGNKVi9HMUhndjlpdXZYeERCVktQZ3BVa21vekh6dDRtQmxTWVFj?= =?utf-8?B?WnBTTHJ6Wkp0bjcrNGRpK1lqV25ySDh3RG42QnFMaXlBQzZiWFNFSzI4eXMx?= =?utf-8?B?aERoQ1pFQ3dSRG12VXNVck5KVEZiWFp5L25Tcjlqa0ZkNXZwNEpOc0Ura3RT?= =?utf-8?B?S09kSkpaMTJvQ0hJUEQ2ZENsWGo1WE5WRnJuQkdjRHVyNlBPSkMvT2p2T3lp?= =?utf-8?B?azc1MlNFblR1VWNpQk9hQlJKa2JwRWpDL3FOT1Mvb0g1TCtBREJvUFkzZE9n?= =?utf-8?B?OTJlY2hwQngyaFBLamg2cFU2WXFYQWZCaDZyMDZHVnJXZnVmRnpmaW9vdGwz?= =?utf-8?B?ckFBL0RBQWpRb095alJjV3g3YTBGc0Y5aE9JZnRhWkxrdVhzd0hsNUN4cEp2?= =?utf-8?B?Q1pqRmJoY1MzeUJ4ZW9rTTZ3WXhuOE5jbmMxYjRZZFdNZTJ4VExtdk5pek8w?= =?utf-8?B?KzBxSVlDWnZqLzE0bDRxZjQzWDFhVWFVZHRhc2Qwc2RraVFGeU5KRWRwdGpP?= =?utf-8?B?QldIUHBQLytzOE40OUNhaGl2UERHOUU5TUE0TEJNdlBoYkFuQk1jWFYvWVZk?= =?utf-8?B?RmJGdk5MRXU5WFJJL1NmaGRQeGloSDhVZkU1SHZ2aFdrOWZEWUE0b1JKSmxO?= =?utf-8?B?M2c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UHR6aG1RdzBVaHVrRXpWZi94Q0xUSGx5OHF4QkJTSVpOTWw0NHljZXFyekhU?= =?utf-8?B?Z1pBaG5ZT2pwWThXVldWb2ttT290SkF5Yzh0RGwvSW8xUGtLQkt0bkhhNDM4?= =?utf-8?B?bGF0a2l0RmNUSzUyWkoyZS95WW0yKzkydGdLUVNERWQzczJDQU5GTHhCbzJ4?= =?utf-8?B?SW1sY0NPejVTMU5qOWswQTVZMDF3WVpMSjQvSUcvek1SVDNEeUZ6dHdrTlRQ?= =?utf-8?B?bVRGMTUzM1M4Z3Bvd2FVZ3kzTHNZclhiSWJGZEg2N00rNG5WZGNjNXZsN21U?= =?utf-8?B?TG1zcytzMGN2dW5VZkUyaitKb0NWalh6Ry82R3NHSkl1TXBqV0Z2Q2p2L0ZI?= =?utf-8?B?VEdreUFmdmtoVGRmTzVIVjNtanhyb1AyQkZ2MnQrUnk4cGpJSWpuYVNuYU1Z?= =?utf-8?B?T3RXazhmNUhIektid3JQYm5YN3k4TWlZWGJLVlpETmFySWRlWm10UEJkbHh4?= =?utf-8?B?ZGpLa3JVSFlVYjI3YnVGL3dXUUFpNmExOEdTNERwbGU1VmJJaGJWZjRybTJx?= =?utf-8?B?K3R2RDdyZlQzQW8xRjRrVzRzdlZScGl0RXZzVjE4ZERLeGpSLzhnVGJra2F6?= =?utf-8?B?cm5QTzZyV0tIYTNVMFVDUzNINGp4SHkwWlNHb3JmM3VFTTEwaTNxQkgwc0Qv?= =?utf-8?B?WTFEUUJSRmE4Nm04WFMzT3pWV3pvTXpHUkNPTVJYS3F0RWRLcEUyRWNnOUdv?= =?utf-8?B?aS9zc2VFdDhCUFJ5RFAzOERRdlV3dXFHejBOWkZiMmQwVWlCdXVxUlprZCtW?= =?utf-8?B?aURodkNPQVoweTBWTUYrNjY0WDJEZHZDN3VLMnZRRWpuZkJSUDlYOWJQRG05?= =?utf-8?B?VTZSWHVrYWNacVk2SW5ZRFVaRE94N3BPMC8zVW1BeXpBYkp1bzhaZlU1TmYv?= =?utf-8?B?cnFPYk5FZnJTNEc0REdVRzdTbU8yR00zM3dFL0M4SnM3b2c5d3JWR2dXeW5T?= =?utf-8?B?VGRtdDQwZmQ5cGVuWGMzak9JYXcwUVhYdlNXTVZUQmZ3VnM1THFlc3JCREdr?= =?utf-8?B?SjZnU1lWc2pWVjdGUlhtSHg2V3FaN1Jkcm83c3ZkYmIvWDVGMWpmb1c1MU1L?= =?utf-8?B?dExuaERwTzVISXhhNWhzRGRUNmtCWURvZWdTbVMxVFVwWnNHYmpUcW8rUWpl?= =?utf-8?B?WnJmK2EvRzZrYXdsQVR6RmVsWm9LZFNLaVRqR1Jra3hIT1MweVJCNlFHN1A5?= =?utf-8?B?Mm85eUFRTWFSSVoxMTRiUW5wTVlBbVo4OUU5RWRuNmdRcVpLNk1tVXRxQ2xE?= =?utf-8?B?WVFsUjdYcUF6SVZRZ0tRZ3NJZHlLL05WeHcvSjFLVHBTclBtMWxHWElrcTJV?= =?utf-8?B?c2RBdzZuZnpRSW9MZXowMVh0NXVjVUcwUUZBNVJTU2JQa1MxMXpOVWZQdDlR?= =?utf-8?B?NTh4U0JoTEN2NFp6czNsdXUrYUhXaFpRZjh1dlBVd3dkVVVPUVA0NzhrK2xu?= =?utf-8?B?azc1TkxLVDJrSEpwbWowdjYwZlZXbytocmExbWJsNmlCVXpsQzc1c3JtTHlW?= =?utf-8?B?eHFzNnZINFVxYWp6Z2taZnhlN2g0ZC9hOTNURmlXTXFiSzdyUFNtSHVrUFJM?= =?utf-8?B?cTRXQVAvOW5ibS9pdU9SMGR1MmlBazhxbnRRczQvbU5ha0RXdXNqRmJNakNk?= =?utf-8?B?Yys4aU8zVGx1TkVKdmUrS1BtWFArSklWZnFFSTl6NDcwc2dGTGlnMW1HdEQ4?= =?utf-8?B?Sk5ZOGhQWTFGQ3pTY2Z6ZnkvYXRxL1dkK3NkSGxuOFZYRXlTL2dTR0pqc3NN?= =?utf-8?B?MUxtS1JROWtUTkl6UlZzeDFldVUwTEFvVkNxUmdya1dMeXNXRmI3RURFU01t?= =?utf-8?B?YW9hYUg2Vlh5bnN3NWIvc0FjTWtQT1VxL1lhZ3hNa3EvdEljQXFBVjRKcWNZ?= =?utf-8?B?TnpmZnFhdStsWWw1N1V4cmZhcld4VjdsOE5oaVE0eUsrblZLUWFiVWx3T3lj?= =?utf-8?B?cWd5SlNnaXVHbE5haHFnS1NhOSswbHpJa3Z3dTdYTnRWZ0pjVENXTk1nTU5y?= =?utf-8?B?a3IyWVFkeFl1Y2Uya05RaXhwMVlMWWZOaW9RcUdwa3pocEh4clIwYnhkVWhH?= =?utf-8?B?VkJqNGZSU3pmU0c5L3EyNzZtVmM1WEtDWE82dlcvSjd2TU1qOG8rTExSK1Jt?= =?utf-8?B?UnJ5WnIrS2RpcDVqMHpzblUraHBIV2hmRmhWOHJpNVBrSDdCSWdrQ1lhWVg1?= =?utf-8?B?dHl0enRnelhERlN5RS9XRzFKRC93eGlMUWluMWYzRlNpcXBvVXJhTmdzbG9s?= =?utf-8?B?UmxTSWJCOGhLSmNuajd6ZE0vMWx5SEl5TGJpZWFyZFdWNWs0bTVoYW9Eak9M?= =?utf-8?B?M3hraE5WWWluazIrYjBoT2xqc0tVaGRTZ2FsbjJhV1JodVNoZDdoSlVvekZy?= =?utf-8?Q?Bm/7UttXq6vduh7GZRk8nKikX7rsteczB+UFPo39OL8OG?= X-MS-Exchange-AntiSpam-MessageData-1: SHxg7hShDWvCsA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b699d8e3-7094-423a-8e9b-08de58018249 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:23.7928 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B5QDiK3OE2eCU/L/D5P+oVkI/4LZ379jm3Pjk/tQbpVCw4AzdMr9NAi2Ob4ab1+cmpOsdNoN5i4ijdyGZ2kQSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 Add --crate-attrs argument to pass per-crate attributes. The crate_attrs field was added to rust-analyzer in v0.3.2727 (~1.94.0) and is silently ignored by older versions, so it's safe to add it. Signed-off-by: Eliot Courtney --- rust/Makefile | 5 ++++- scripts/generate_rust_analyzer.py | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index 2238b0b69197..e6c5108ab625 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -84,9 +84,11 @@ proc_macro2-cfgs :=3D \ $(if $(call rustc-min-version,108800),proc_macro_span_file proc_macro_= span_location) =20 # Stable since Rust 1.79.0: `feature(proc_macro_byte_character,proc_macro_= c_str_literals)`. +proc_macro2-crate-attrs :=3D feature(proc_macro_byte_character,proc_macro_= c_str_literals) + proc_macro2-flags :=3D \ --cap-lints=3Dallow \ - -Zcrate-attr=3D'feature(proc_macro_byte_character,proc_macro_c_str_lit= erals)' \ + -Zcrate-attr=3D'$(proc_macro2-crate-attrs)' \ $(call cfgs-to-flags,$(proc_macro2-cfgs)) =20 quote-cfgs :=3D \ @@ -575,6 +577,7 @@ rust-analyzer: --cfgs=3D'syn=3D$(syn-cfgs)' \ --editions=3D'core=3D$(core-edition)' \ --editions=3D'quote=3D$(quote-edition)' \ + --crate-attrs=3D'proc_macro2=3D$(proc_macro2-crate-attrs)' \ $(realpath $(srctree)) $(realpath $(objtree)) \ $(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \ > rust-project.json diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 17ed5546504b..e8c50812fb9f 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -11,6 +11,7 @@ import pathlib import subprocess import sys =20 + def args_single(args): result =3D {} for arg in args: @@ -26,7 +27,7 @@ def args_crates_cfgs(cfgs): =20 return crates_cfgs =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions): +def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions, crate_attrs): # Generate the configuration list. generated_cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: @@ -42,6 +43,7 @@ def generate_crates(srctree, objtree, sysroot_src, extern= al_src, cfgs, editions) crates_indexes =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) crates_editions =3D args_single(editions) + crates_crate_attrs =3D args_crates_cfgs(crate_attrs) =20 def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): # Miguel Ojeda writes: @@ -78,6 +80,8 @@ def generate_crates(srctree, objtree, sysroot_src, extern= al_src, cfgs, editions) "deps": [{"crate": crates_indexes[dep], "name": dep} for dep i= n deps], "cfg": cfg, "edition": edition, + # Crate attributes were introduced in 1.94.0 but older version= s will silently ignore this. + "crate_attrs": crates_crate_attrs.get(display_name, []), "env": { "RUST_MODFILE": "This is only for rust-analyzer" } @@ -233,6 +237,7 @@ def main(): parser.add_argument('--verbose', '-v', action=3D'store_true') parser.add_argument('--cfgs', action=3D'append', default=3D[]) parser.add_argument('--editions', action=3D'append', default=3D[]) + parser.add_argument('--crate-attrs', action=3D'append', default=3D[]) parser.add_argument("srctree", type=3Dpathlib.Path) parser.add_argument("objtree", type=3Dpathlib.Path) parser.add_argument("sysroot", type=3Dpathlib.Path) @@ -246,7 +251,7 @@ def main(): ) =20 rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions), + "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions, args.crate_attrs), "sysroot": str(args.sysroot), } =20 --=20 2.52.0 From nobody Sat Feb 7 23:33:57 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012016.outbound.protection.outlook.com [52.101.53.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A8D63BFE40; Tue, 20 Jan 2026 08:54:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899275; cv=fail; b=aVaZBVbHAN5JY0PZ0H4aMJr2kLKlhz2R8pSG5NCBKUAxXvAyuq3cTTELFP6eTrpJYOTW0eMWldD4DxQK9ulCXdtVXdg+XAyNA/LqKNBinyJFQu8QANPnzH8IxYJrCUMRJCX4+xWTxbqEOmqsdEuRk83qzOm542+QURG+TSZOxWY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899275; c=relaxed/simple; bh=gfGaNeOQG3Cror3bccgSEkqLTtoR4GhOZCbhRZ8RxM4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ZSD/7OwnACMs70HhLg6kvWnjIj+us8b5Y18eoGBQ4HXgEckI5ME2AnqtNuIIknELPpyzFytlqe7JZFv31rLFxHucQbrZa+2z1qg9kSFfnWiST1p9XpjUr1jcfIfFuxEczoJz4TsBzkLRhu0OfxF1maesY81QAXbTjchcDX1qvOk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=O8r7c7FW; arc=fail smtp.client-ip=52.101.53.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="O8r7c7FW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZT3ExPD1H3mR557lglKhc/uYroEkI5TlWBn8WNnAPzDW+N7F3xi4Nyb9ScHV/siZGI0/9/fJ1kwax/1nSquc5J19PpOB4s4MvcqMT+XLze2s1HOrnPA1hOeOZoTJuTaQHVIkolBraU9jmblz+9GVffYrhhQCnysftlubP/4r/wOoPYVVT1+44jXi/GUUMFrLPVFW2Agq0v2VFgW6I9G3PiX0InJJp1/XVXhEQhTdeaG5qY3f1RHZ6MUmhhdDsfOQTN+3iyipIuGS/qwXzlWnsag6vxv5Uft0a3qS3IJj3Z7B2RrrHdLkyPFzyfi34K3kAXmxcSILoDOo3+jsj3+Qmg== 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=IhYb11h1JlypBJXEyIC7RiHjRhM1T7Y/NJuAc3Kp9Xw=; b=FHeHY1dvdVRBiW3UckLSMlHKRM6vlirUW2/GCLSpzBPawynNXfIGjlvLob00cX6FUvI7V7+UZH9evGAMrbq2BNlvJEmNmn7exmq3zMqO/R6PezyhaQ+TKrlFBvUhZN66+gF3FGVrDLUqdKZ+Ojp/LGwOpLUPcsOIrybcrVcQLWmhzeVdS8ZmKyk1zZKij4wenO7Ai4XxNoWFFvCsoFleWyTPi8A59r512CqIeWWHbZFLz4z8Pz0Tgq/36sssCYvmK8rZ4y2iQVncxKouiad20FDRroaZT7z2aSeJn0v0kEclCMBRA+/L8oI43P1aUfIppx9cQti1du5P1Hj/ynH+PQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IhYb11h1JlypBJXEyIC7RiHjRhM1T7Y/NJuAc3Kp9Xw=; b=O8r7c7FW5w/w2AeM0JUTLIH9ZGYC9J6HoRGM1NYv0gDvaFyowTgzNkLCup1ge4+4RMeIk9k3GUL3ugCeGhMnI3/YYphDradFWe2RlvnOxGQyX1szZWP/3u22ZK9y1E00MDw/6nXN7GHyu5YJuI33NBlSmM3Nj++dwvf7q5ng5ZPo2xilkwYbA0iGQ2lF1hiVRkDkib7OKZ+nc2s9piOazUWuL2/mmxa7IhLf9PhJhk/WxzQAJaWerINUGXtGv/Ye3sT0et/9bZz7beE+CHq+afEYczoBoESqhGPV4PMxcVL4q2SJ207e3USBbdJLJpWF3h16cxz/uQh6TI8ccKi31w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:27 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:27 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:53 +0900 Subject: [PATCH 4/6] scripts: generate_rust_analyzer: plumb common crate-attrs for non-host crates Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-4-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCPR01CA0173.jpnprd01.prod.outlook.com (2603:1096:400:2b2::11) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bc8cc4f-6e7e-4fa5-8ab4-08de580184b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|13003099007|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bCtZaXBWMmNYekY4VlNrczVvWnY5ZE5ZODYycTlHQjIxSG5kbklRbDZ5UnBW?= =?utf-8?B?clpadSs1VnIrTWxzZTR3cTlhN1FXZjlvaW40Qll0TjlpQndrdkpDWDRvVXJj?= =?utf-8?B?bTcxWHdHOFFHakVHdU96cGY0Nk5PTXozVm11aXpQRHVGb2s5djUvRGRjZ1Zp?= =?utf-8?B?TEw3MitsSU9ncjN0d0JpRE5Gd3NqbmszeldQSC9YV0xEMGg0NHphMzE3QnQr?= =?utf-8?B?MDlwQlMvVzRCRG50MFJ4blJkMHZPOEdyQytsbHF1STJkUzVjcTNrem1oYXNK?= =?utf-8?B?aURBUTRxbXZuaVZEVmExd2RuNGR1YzVCQkhGTHBUZ3RGQ0drbUpqci9MbGZP?= =?utf-8?B?TjNjb3dJWjh1ZFlyQTZyUFBCa0NVQ1BhNlNBQ2w5UGlsdHpTczNwT1hEWFRm?= =?utf-8?B?dW5yTUs1Mm9mUzZCZllJM2hFVHVRWmhLTXBiazN0MEF4YWJ1R0FQTFl6dmVv?= =?utf-8?B?NlorTWRGMnFMaFp6cjFkWFBjWVNwQ2FpM3FsRXBBenNVTjJ2VEQyMXlYOEZp?= =?utf-8?B?MGEydHFYcHZGNkwvTmJsQWtpQUNDMWw1TnJCTXNYM2kzcjEwbEZWQnBITDZP?= =?utf-8?B?amNrSVM1dExub2w0ZGFvUjBOeXBNVDVuS2FjNkhqbCt6bEVMdlhCeXZSK1R6?= =?utf-8?B?YkhTUmxRRDh5Wmw2eTYwZC94NU9iSmtETFd0SzR4ZFJOc24rUmFFQXIxU3Qv?= =?utf-8?B?MG9xcVVHMjk3RllRWmg0aXRVK0lzNloweXpVYlBhMlBpbno5SjBwSWVBWUpG?= =?utf-8?B?c0o0ZDhiUlZLdURvUFVpZ2dNR0JPV1JodC9JNjBteDI2SGJCUXZqK2VVS0lI?= =?utf-8?B?MjRDWDFRNmQ1MGxtUzZ5QW5rdjgwbjdEcUJtRFA2ZW1Baldaay9Yd082aWV2?= =?utf-8?B?Mm5LTlpRQlNoR2FaWFBhVXlyam5ZYm5UZ011Q0Q5WCtUWTk3L1NnREMxcDlW?= =?utf-8?B?Yk5vUHhveWV0VG5GUUg2cDM2K0dVTktXTSs2a2lyNUsvNllncmlLUUd6RWV4?= =?utf-8?B?TlJDU25XTld2VFZUQUU1Y0d4R1BWcTZySDJjTkZMcDhueTZxa0dkKzk0REJS?= =?utf-8?B?SnR5TmFYYVlEVWgvSnRnREV5ZmR6cTFLcG4rUVhHZzZDWUNPV2xTTzdUbnVU?= =?utf-8?B?SHRHdUF5K1RQRlJIUlAwVi9EQXpMKzUvWC8xMHNmblNydGZ5YTFVaUdNY1ZV?= =?utf-8?B?RS9IVXVFVFFXdnkwZEQxc3FtdHhWVWF5eEVNTzN3VWJLcFFhTkdHMitqdERi?= =?utf-8?B?ZllLNEIyWWwzVnJVQm9YZnZORUUyYklTVDJNM0I0L1RCOWJVYlcwbWpkZmVF?= =?utf-8?B?SjJtbFh5aGtxRUdwd05nUTVqWXFySmhjT3BlZlRzUXIvTG1IMFh3UGVibGxk?= =?utf-8?B?R1pxeGZpWE1qWFNyZXp0aXpqNzlZOE9ybHFGbUkvYTJFc3Z2MERWWldsc3R6?= =?utf-8?B?cU83OTZrRFhXQXRJcTNzY1lWeUJVbjVWOSsyOFNWV3NyUzJrNXRSaGs5YkFo?= =?utf-8?B?M0Y3dVlBd1Q5VHIzYjhFWVBTaXJIVE9ITWlRUmo2YkUxRDY1dXI5N1ZiQmtu?= =?utf-8?B?M1h2SnlYRDMxOW9qNGQ0NDVVYXZnSmpuQ3BDZDF6cmYxRmx5N1lTL01UZzFp?= =?utf-8?B?b2V6ZEhFK2lDdUxvbmgrVmxLdzRpZklJdjBKZjMxN2NpaWlZK1B3Y1JNcW1r?= =?utf-8?B?MHh6M1dFY2xxT1FxMjhUdHI5bkM3d1ZQTVVHSk9pSG5pN0FEc05ZRUhnSVRP?= =?utf-8?B?NjhUMUJmM2JMbTEyLzRwYUhwSExpTWFrMzg3ejUySEFvc2ZmOGgvNVN3ZW1w?= =?utf-8?B?VGdQUmo3SW0zTTRhbDQxcnJpUmhSenRUUU5lT1pQQ2hRNUh5cjZRSUd1eGZR?= =?utf-8?B?ZGUrRWJrZTlIOVQxOFp5MG9CZUxMVC8xNi9mRzAxcmVBUWs0WFF4NFp5UDY4?= =?utf-8?B?UkFTMHNJayt1cjJZWjZIUkFxQVNaOGhCODlncFVIb0FidjVXTnMzTjNqMHZx?= =?utf-8?B?RWJ2RGhibTJqN1NQd0cxZks5Qmx5SVhtZ3BRbHNaczR3d3dhempZUGxOc2o2?= =?utf-8?B?UTdHZ2Y4anBvVTJPb0wzcU1zQjkrZTR5VEZWUm5DSzhTU21MYmRuWk1EdzU1?= =?utf-8?B?UGl2aDBkaktxOW5tVjF3WnVTUzdpUW40OElIRDJ5S09VSURBa3ZDOVNPT21u?= =?utf-8?Q?cuP+1YmGllc3ZxQOb1zf3wI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(13003099007)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YkdhaW5mV25Ta0wwRm54b3ZWaW1HRkwzMGxPbkxFQWNlVnR1NWxSS21PZ0xH?= =?utf-8?B?R3lNdnNrdlVFL2lnVXR5NHlpUmx0elNpTzdEeFpaZjhnZ0VPb1lYMFowQjNH?= =?utf-8?B?ZDViYjlsTlpPbW1ubzlqd0Q0S0FXcWlNa3ZJQk53emdOd0ZpLzJJOU83ckRY?= =?utf-8?B?TXllVFJpTWxtWnlHY3d5VVUxeG0zMjljK08xdlVhb1BKbXhyb2Mxc080Qk01?= =?utf-8?B?TjRqc1NlaXIrT09kNTVHeVZIV3RyUUlyU25oN1FQbUFqcWU2ZEtpWXZiVS9s?= =?utf-8?B?REwrSUQrdVdzNVczbldUUHVreXFkdDg4elF3VWdvcXQvMXZNY2x5Nm1lZTBr?= =?utf-8?B?WVR1MldkdUF6T0F2MjVmNXh5VGJQbkgwWG43aUJibGpRejZLbFBpUmdRMnpk?= =?utf-8?B?MHp0a0VlTjZXck9CV0diYk54WXFOWnJDZnZjM25oUzRzRWlyL1Rzb2txbXVo?= =?utf-8?B?L0pSR0lsa3A1cUg4d3k2blBMQlJqbTFtMW9HZldwUy9BRGlHb2dUNXIwWVVL?= =?utf-8?B?NzZWb1dRc3I1MlgwYlNMZk13a0JrUldqekl5SlhiY1Fjcmd3Yk9CR1VKZVpO?= =?utf-8?B?NWcrak5wQmxjNzd1a1JXV0JUMWhwd1paMmlHWWt3ZXRwc1NTZXltcnV0TFdY?= =?utf-8?B?S3VLbFNLb2htbEp4MThxVDUxQTBZNGdxRHhhZHo0VW41dDVYYkg5Zmg1U0Rp?= =?utf-8?B?bnI5dXZWVStMY2JYYVllRWR1cmpmVE01N05hbCtrKy9ZRnRsZ2lha1RZTkJJ?= =?utf-8?B?cjlBU044VzY5KzlDOHlNb0NDSFRINkpnUnpKSGxvRTA0MEFjdVlNcDNLNCtD?= =?utf-8?B?S25lQm9iQXFJS1NXOVZYeE52ZmF3bllSSElRSmZmaVFHbmdtdUxrMHliQjZw?= =?utf-8?B?YnlTM2c5dlhYdmZCRGxITjk0MmdTTDIzZVc4RTViNFkwUEVLYUU1RVVkc1JB?= =?utf-8?B?bENLODVHKy85bnVLOEJUUG1KVHlrSnFLME5WVnU1NDNZMkVpWGlrQmlpbHZz?= =?utf-8?B?Q1MrUGdYM2lENHIwdUFZWkhjZGJNRDhDNzJ6NzJhNXlYS3BMQkwvaE5YUTEv?= =?utf-8?B?U2paWmxnNEc3QTcxWEFZZ3BUNlVFOVdJZVc5MUUwUUdUYUtrdWtKa3pMT0tK?= =?utf-8?B?QVlrYm01THhPaDN3U2NzYjZXTWpCQ0tnN3lEV05GK0ZUc3UyZGcxVkcwWHJZ?= =?utf-8?B?a2FDanFlbVVSQWdnZC9IemJVNEh6Z2RDTzBlTmJiZ3hZR3pNbGVOQlp0cDdR?= =?utf-8?B?T3JuMHhwRWw5a1R0VWVGa3p3YUZUQ2s3T1JqRk1ha2JQTUo0ckxsY2xlSHB5?= =?utf-8?B?R0t2bWRjNzAxd21BejVrUzdkdDRueExmbXpXUlNGN2RUeCtPQ0tVMUkybU9B?= =?utf-8?B?MGFUUk0zczBScDVYamptZVBMQlhCTkFQcTlHSk5RdWFndUNVZ0NDS2U5ektC?= =?utf-8?B?N01jaXB2M2V6bFQycWNUQVoyVzZDTkM2aWdkR01yUkplSk9NZi9LcHQ2VGhj?= =?utf-8?B?UE1ISGw2Y2w2MFdlSEdkZVR1bGV2d1g3R3BIQitxbkpEcEUwZWZmVHpkMDlN?= =?utf-8?B?RGh3M3l6aG5IcXlaengrWitpWGc1NGp2M0pKMXQrOUs4dVdIRk1URjVKOGVp?= =?utf-8?B?M1gxb3lLTGt3azJEbzllU0k5OTRZMndhSWVQSHpZZWlwcnVndUJSVHEwOEQ5?= =?utf-8?B?TFlZWGwwSDF2aWxCa0RYRkJGSk8wQU13Wks0QXQxZk9GTHNQYXFDQmFSOUNX?= =?utf-8?B?RmgwRlVZdThqTWxoODVFU0RoZFFPeEllWm1vZGlNeVpvbkhhOE5uS0RidTN4?= =?utf-8?B?dHpXTHZJY2d0ZzMrV0t4dWF1bHNFdnJiT1loR082ajVwaXVaS1dIWEQvbHpG?= =?utf-8?B?SlppcDU1S0FEbnlsdXVGVFZiN3FQUkg0eDU0am4rQktjN01OZnhtYVhWOUNN?= =?utf-8?B?T2UwUDRzNWxmb2lubCtvd0VWSFhTbnFpVUFpWE1ETzZ5LzhTWVlYSjREMWRx?= =?utf-8?B?UFl5S3lROG9WTEdHcmpYRmhzQkF1Ym0xeVVxVCtPTDZNMVdTbm5TUlNtd2ZL?= =?utf-8?B?anZjakIvL1lGZUxyRUVURS8yMjVUSnQ5ZmZFNVh3TVBrWVJIMXhYWnhpaGZy?= =?utf-8?B?Q0E0RmpWK3JkVUk0cFh3Wnp1TDFqM2ZrMTZ4VWd6a25mbVIxd0txbHVnU093?= =?utf-8?B?UDJuSDRZTmR0ems3V0c3cE9RbkZTQUxYcjVsaUhsT3NBSTdiOWMxMXh0Q0NU?= =?utf-8?B?cjQ0STl2RmlScnRSVUNnb1VtNUN6c0Y5VjNZWFA1S2xwZ2xhOHRJUVBZeTQ2?= =?utf-8?B?M3V4RWRCY2J4UWp2bHJTWDgvMHd4ZnR5OUVOZzNROFp1ZUR2YWZjS1hNNkZN?= =?utf-8?Q?ClNPx8YCBtKJRAGQlmuHKbKJSN5w4owfmq6952dZL91xr?= X-MS-Exchange-AntiSpam-MessageData-1: cxxkcF6jsRd0cA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bc8cc4f-6e7e-4fa5-8ab4-08de580184b3 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:27.8612 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iAjbjb2yVMbwBUfNWyynMLiIW22N4keNquKxlVM6reqxbgskP4vx5uO2RyiZGC8im3jdmt8R9qH1BL3RGroZ5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 Add --common-crate-attrs argument to specify crate attributes that apply to all non-host crates. This means no_std will be specified where it should be, for example. Proc macro and libraries used by proc macro crates run on the host and do not get this set of common crate-attrs. This mirrors rust_procmacrolibrary in the build system. Create scripts/Makefile.rust to hold shared Rust definitions. Signed-off-by: Eliot Courtney --- rust/Makefile | 3 +++ scripts/Makefile.build | 14 +------------- scripts/Makefile.rust | 20 ++++++++++++++++++++ scripts/generate_rust_analyzer.py | 20 +++++++++++++++----- 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index e6c5108ab625..750db2885ba2 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -1,5 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 =20 +include $(srctree)/scripts/Makefile.rust + # Where to place rustdoc generated documentation rustdoc_output :=3D $(objtree)/Documentation/output/rust/rustdoc =20 @@ -578,6 +580,7 @@ rust-analyzer: --editions=3D'core=3D$(core-edition)' \ --editions=3D'quote=3D$(quote-edition)' \ --crate-attrs=3D'proc_macro2=3D$(proc_macro2-crate-attrs)' \ + --common-crate-attrs=3D'$(rust_common_crate_attrs)' \ $(realpath $(srctree)) $(realpath $(objtree)) \ $(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \ > rust-project.json diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 0c838c467c76..e9af8a11f2dc 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -34,6 +34,7 @@ subdir-ccflags-y :=3D =20 include $(srctree)/scripts/Kbuild.include include $(srctree)/scripts/Makefile.compiler +include $(srctree)/scripts/Makefile.rust include $(kbuild-file) include $(srctree)/scripts/Makefile.lib =20 @@ -306,19 +307,6 @@ $(obj)/%.lst: $(obj)/%.c FORCE # Compile Rust sources (.rs) # ------------------------------------------------------------------------= --- =20 -# The features in this list are the ones allowed for non-`rust/` code. -# -# - Stable since Rust 1.81.0: `feature(lint_reasons)`. -# - Stable since Rust 1.82.0: `feature(asm_const)`, -# `feature(offset_of_nested)`, `feature(raw_ref_op)`. -# - Stable since Rust 1.87.0: `feature(asm_goto)`. -# - Expected to become stable: `feature(arbitrary_self_types)`. -# - To be determined: `feature(used_with_arg)`. -# -# Please see https://github.com/Rust-for-Linux/linux/issues/2 for details = on -# the unstable features in use. -rust_allowed_features :=3D asm_const,asm_goto,arbitrary_self_types,lint_re= asons,offset_of_nested,raw_ref_op,used_with_arg - # `--out-dir` is required to avoid temporaries being created by `rustc` in= the # current working directory, which may be not accessible in the out-of-tree # modules case. diff --git a/scripts/Makefile.rust b/scripts/Makefile.rust new file mode 100644 index 000000000000..d96662d1ac17 --- /dev/null +++ b/scripts/Makefile.rust @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0 +# =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +# Rust shared definitions +# =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +# The features in this list are the ones allowed for non-`rust/` code. +# +# - Stable since Rust 1.81.0: `feature(lint_reasons)`. +# - Stable since Rust 1.82.0: `feature(asm_const)`, +# `feature(offset_of_nested)`, `feature(raw_ref_op)`. +# - Stable since Rust 1.87.0: `feature(asm_goto)`. +# - Expected to become stable: `feature(arbitrary_self_types)`. +# - To be determined: `feature(used_with_arg)`. +# +# Please see https://github.com/Rust-for-Linux/linux/issues/2 for details = on +# the unstable features in use. +rust_allowed_features :=3D asm_const,asm_goto,arbitrary_self_types,lint_re= asons,offset_of_nested,raw_ref_op,used_with_arg + +# Common crate attrs for non-host, non-sysroot crates. +rust_common_crate_attrs :=3D no_std feature($(rust_allowed_features)) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index e8c50812fb9f..0d93e8a8e4bd 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -27,7 +27,7 @@ def args_crates_cfgs(cfgs): =20 return crates_cfgs =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions, crate_attrs): +def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions, crate_attrs, common_crate_attrs): # Generate the configuration list. generated_cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: @@ -45,7 +45,7 @@ def generate_crates(srctree, objtree, sysroot_src, extern= al_src, cfgs, editions, crates_editions =3D args_single(editions) crates_crate_attrs =3D args_crates_cfgs(crate_attrs) =20 - def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): + def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse, is_proc_macro_library=3DFalse): # Miguel Ojeda writes: # # > ... in principle even the sysroot crates may have different @@ -72,6 +72,11 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs, editions, # assumption if future edition moves span multiple rust versions. edition =3D crates_editions.get(display_name, "2021") =20 + crate_attrs =3D crates_crate_attrs.get(display_name, []) + # Apply common crate attrs to non-host crates. + if not is_proc_macro_library and not is_proc_macro: + crate_attrs =3D common_crate_attrs + crate_attrs + crate =3D { "display_name": display_name, "root_module": str(root_module), @@ -81,7 +86,7 @@ def generate_crates(srctree, objtree, sysroot_src, extern= al_src, cfgs, editions, "cfg": cfg, "edition": edition, # Crate attributes were introduced in 1.94.0 but older version= s will silently ignore this. - "crate_attrs": crates_crate_attrs.get(display_name, []), + "crate_attrs": crate_attrs, "env": { "RUST_MODFILE": "This is only for rust-analyzer" } @@ -127,13 +132,15 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs, editions, srctree / "rust" / "proc-macro2" / "lib.rs", ["core", "alloc", "std", "proc_macro"], cfg=3Dcrates_cfgs["proc_macro2"], + is_proc_macro_library=3DTrue, ) =20 append_crate( "quote", srctree / "rust" / "quote" / "lib.rs", ["core", "alloc", "std", "proc_macro", "proc_macro2"], - cfg=3Dcrates_cfgs["quote"] + cfg=3Dcrates_cfgs["quote"], + is_proc_macro_library=3DTrue, ) =20 append_crate( @@ -141,6 +148,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, srctree / "rust" / "syn" / "lib.rs", ["std", "proc_macro", "proc_macro2", "quote"], cfg=3Dcrates_cfgs["syn"], + is_proc_macro_library=3DTrue, ) =20 append_crate( @@ -238,6 +246,7 @@ def main(): parser.add_argument('--cfgs', action=3D'append', default=3D[]) parser.add_argument('--editions', action=3D'append', default=3D[]) parser.add_argument('--crate-attrs', action=3D'append', default=3D[]) + parser.add_argument('--common-crate-attrs', default=3D'') parser.add_argument("srctree", type=3Dpathlib.Path) parser.add_argument("objtree", type=3Dpathlib.Path) parser.add_argument("sysroot", type=3Dpathlib.Path) @@ -250,8 +259,9 @@ def main(): level=3Dlogging.INFO if args.verbose else logging.WARNING ) =20 + common_crate_attrs =3D args.common_crate_attrs.split() if args.common_= crate_attrs else [] rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions, args.crate_attrs), + "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions, args.crate_attrs, common_crat= e_attrs), "sysroot": str(args.sysroot), } =20 --=20 2.52.0 From nobody Sat Feb 7 23:33:57 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012016.outbound.protection.outlook.com [52.101.53.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CCDA3C00A0; Tue, 20 Jan 2026 08:54:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899277; cv=fail; b=PJwBfQMdXH37MiAKrnInOUkE8Y+KezjQSk45yFif8yQki5CTCOyoPbkiSmXjl6E1dYAC6egI3m+1LxnLMFRih10NLf0s8apAUmuSlxM7RZPgiScZyrjAYv+af4MzBBaMKwAGkOi+Mjrgz9VX2W3Bhd8jV7RR5beAmLFYo/Zuqzw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899277; c=relaxed/simple; bh=IAOC74cf7Rje5+xL0CoJT3PlSieUlDMVjc1/LtW9vlw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=NmC0rHb1pfD8I0KWVOj0OzHlP2Aqt/zIDHwNg9p7TMvl6zq2KoK33VrDHuCieZHsxQ/WF+JZ5tKMLMnuqQ6AGsV7RH/C/5a2BNhuUVi1ivPDN9WkB2/xiJBSJyfigC7aFYSKQl9POkfJ7aseNLOpa73Imhd8bQM3QlTzPMtD/R0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=MRkfPHq8; arc=fail smtp.client-ip=52.101.53.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="MRkfPHq8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w3MnqIDHBO7/sRu3mt6C8gYcAu4wtNhEmCc1sG4EIv8B5W5nnK2IQSe7gqw1X13bM+1ff7Fu7EgwvoP6T0NSL76E8Usq4ZF1FLos2yAxRfWmMZOr9rKu2mAcROKKuYohOSXKPjRanuyU022k1SGZ3mI9EAXJaxHOZ2KZX9vT1bmtQNFbcJkPOGPHcK1/V/8rGp/cbNwEQhFXCfoZFpHDb+2hEK1eJLOQU7qUguMs0hpO0HR2TfT7nMadytbWfFOH6SuJa8MwUhDasmrjgTb+2azVbvRk/xebOni2LsGZ80s+1tLVxb06B6H3D0ngTLBerDk9U12rm3BP0VwZrIlcTg== 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=WRbGORwFNqN3L0ohWKNWIKn/Ty9E6UB47wAK0dm1pzg=; b=DJsLTl0ZpFGO5ctit/BSNTsiZFuczTZoWJy1h8+FtIGA+BvJUSpPeWXEFJm0sYXLXO6ROKlrp9IO1E/qBu8qvKkUNbpyCepD9VpHKidVkJY2WEA0hhQI/gIPVwYtzJ7sXxV9hCdJYSQngr8SXWmPBDbq5/3speRvowRdjoQtJgIOesWIWanCYNry/WTVKGG3FjDpITvf2UtdRTUzMr+77BhChu9IXvTWcU/2J9ah4XlqfLS9HRa5YgGQGSNqIH+Zxkt0QXwSm0f77JsQumGh4PMd0WDYbGp/J3LPhItZgMl8Qxp7stHpgNPnHulgLjTjMwn/ikceeRLQ5yZD7PVYSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WRbGORwFNqN3L0ohWKNWIKn/Ty9E6UB47wAK0dm1pzg=; b=MRkfPHq8GCbXdkngevn+ZiLp2jV1ANgCtF5lGEF/eGbN9yEirkoz++tpL5krG/85dozmR55Rj3npzEZZ1E9sA+pfgt3HD/0XrhVsnph6cYU1psWwKxr0wCmMse1RbYif8k+mov9WPt/6m7kzpyjaFBzxbRGEJ/mnKncaXqsMM9qEl7Zmar2J63PPGA5nqXwd0MPWjvYx6u6ZFtJBIHQ7rpA6m9L/R19fuJZk+ETdvB9/GUrchozspZk7h2j/Wp+uFnin+FnvBpyjZHgz5N3mSogh21qdze1htNToiZTlkVy/ZWl9Y90MknJZFR6mmz5zDqaipFlQFQbih0SdxaMP8Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:31 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:31 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:54 +0900 Subject: [PATCH 5/6] scripts: generate_rust_analyzer: add pin_init to driver crate deps Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-5-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4PR01CA0025.jpnprd01.prod.outlook.com (2603:1096:405:2bf::13) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: 8873ba58-9b3e-42d5-c5bd-08de58018709 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?R0hEYzdRQ0xNMjVLOUlGMEh1NmMzUjJ6eWNUK1lEWndva0VlazNSM3JPQjZ2?= =?utf-8?B?djZEZUQ2N0FHUlBHTG1OQU92MjV2Zm9vaHRvWGprckFNOGUyUU9FQXFUV2Fa?= =?utf-8?B?VGgxT0YvUHMrZ0h5Wm96UFFYakRLWTkvSzBKdVF4OHhzRE9YTlIxSmVQb0cz?= =?utf-8?B?ZHZJOHdjZ0VyZDNzQWZ4RzNyMFZBaUdpSE5wMUlSNDRCclZPQ1NtcWkzZW1U?= =?utf-8?B?RXhseStCVjJ2cnE3Ykt6UjFCSm85b25ydE5HTlVLN2NxcWdvOE1iOHN0RnRK?= =?utf-8?B?bnd0OVlZbVFnbnB6ejhTZFdUMFprRUFoS3VLVzFONmdyWEx3T21sdHVFeEZC?= =?utf-8?B?Zm53K3FOa3kwZm1wTzBXVHE4ZS85eTUvZ2dIMFVQeWMzWllmU05WTzNUOEFG?= =?utf-8?B?ZXFvbGV4M1VZOUlLY25YTE9sTmZ5eUw0bjJtRWFTNXlYVzJwbjFzRUdDa05w?= =?utf-8?B?NUc0RkR4T3hnWmtlazc0RXB0cDdEeXI0dTZhT3BubENLMXk0MnFmMnM3VGgr?= =?utf-8?B?SWV6elQ4T2c1Rkc0NFlSSlNwUC9GenJtaE9adzgzMUt6OWxYNTJwKzUyWHN6?= =?utf-8?B?Njgvb1AxSk5FMTFSeEdWdkZWc1pYY3RsN0I0dW1ySDdTbmlWVXEvbUhHM09r?= =?utf-8?B?UkRFYWw3WElBaVYzVjFicTBOODlZcktrRC8rOGFuMkVrUDZ5bHFrWTFsdy95?= =?utf-8?B?Qm43Q1dDajZhYytHTDBSdnRYUzhnVkNFNUpzSXNNc2NOVEF4Wkh1MkwzRmJs?= =?utf-8?B?cDJucWFhK3k4dnJ1ZUtGRzhuMDkxc0o3dnRGTWVCM0NIcXd5V3lRdzJBWktS?= =?utf-8?B?ajU5S2JZdG1uWXZTT1Q3cnJoc2RXRllJRGVhMDBPWkhmTzFXdXVtZW9UZm1M?= =?utf-8?B?R2dIUVFtTUxid2FKamkyYnA5VDNpbkl0aGRvSWNuMDV4T2JUVFhWQUloSUoz?= =?utf-8?B?endPVStQYldibmRlMkIyenA4T1dOT2p4dnlDdXNLcHRVd0R4THFpSEthTG8x?= =?utf-8?B?ZVlERkdzNkpRRVBsQ3V6a05lcm5hMmw3OWNFUTdvd2ltNWwrMFdFSEx4cEVo?= =?utf-8?B?d05oOGJZblQyUEIxbTVySStINWRVWEZyUUR0bkMweGtqNEhTeE8waTVGb3lD?= =?utf-8?B?NHJUTzMzNk5IQkFXZmxWNkN4NFlMaFRGc2ZDZDdSa1IvbEZCdWNId0oxalpy?= =?utf-8?B?V0lRSnRwL3VvSVlCMXBoUVowczM4b0ZPcGVBckhwUkdQdG5tVkRIY3pYYmdG?= =?utf-8?B?ZGUwN3g1Y25jcSsyZXpQU1BkTThDQ1VuNHV4cEJEUzBPb0hIOUFiL3IrZmhs?= =?utf-8?B?Sy9wVzNqdUEzSU5xb2VoNElVR01oQXFoeFlBa0NLZytjdGVuWTZiaGxFZ2cv?= =?utf-8?B?SGowUDBsdEFqQTIrVC9ENGRwM3VpbkVpZ2N1N0l6eHhzeHE2Zlg3SDM4dm1P?= =?utf-8?B?S2Q5ckM2RG9XTmZvenFWQUJRVmg5MGpvYmlwQUFjekZmbXV5OHpuRUljcWpi?= =?utf-8?B?WVNVNTgvUFBuMGtWTitITlRkblE0S1FFNGMzV2NYTmdXa21qbFhodkF2aGRZ?= =?utf-8?B?MTVJcDNpWkJHS0xZcXdMaWRvYjNlYlhna0NpbWVmUGswM2IxaXJSR3FsdWl5?= =?utf-8?B?ZWNQeTJqV2pKMDdzN3h2Z1NIRmp2MzUyRUp6UkxyZXVwOXROeE9yTlZjTzhq?= =?utf-8?B?UzBLME10TFdvNHFNOFhHV20yZE8zRWJuWFFRWWZkOTBLNGg1cW1GVVdqa2Fl?= =?utf-8?B?UEVwMXQvbDZoKy9DdzQ5V1NWbUJmU0RCRG1sakVKc3JqRVFaM2dKb09lbnJo?= =?utf-8?B?SE02dUo1cDZHeUhSdGo1clIvZytCU0Q4RkZ6UTA5K1FsWlNodEcvZkNLUWJS?= =?utf-8?B?YkNrV1NSYlhQUlJWampNWW1PZ3FnQmJET3NMVUxKNVdGN1Z2Wkc2emlQVGc2?= =?utf-8?B?S1hvcDJ5MUI3dHpNb3VEd2ExcHE4MXdpQzFiajRDbkFwTjQvM3dYMUZaMW50?= =?utf-8?B?aGdtTjJtYXVNc1dTNWxINll0ekdKaXlhZ3UyN2FHb3BxcU9ySFlMSk5Mc0dQ?= =?utf-8?B?aTNPaTFBVk90V05SOE9ueGlHODdqMTN6RmdjNng3b2plZjMzR095R0RrR0Fx?= =?utf-8?B?K1lmTnpZR3M0N3lFVFprN0xhdTdaRmFxZm1GTGloelVGZFhKb0t3RjlGY3Jp?= =?utf-8?B?K3c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NHpMd1cwS2dZL1FtSFFldW5KTmM3S1Y2V0gzeEhsaEl6R1JpY3hJK1hDVHJG?= =?utf-8?B?MkJna3ROWTg0NkM0dFgrV01ZZW43SWRyaHAycDRHOWJyMlFrNjBjSXRaV3ZG?= =?utf-8?B?MGozVThZK1ByZzBOcDVBbEFBa0c1dlF1UXdzb0diTHNxRUJzTWE4SDl1cS9R?= =?utf-8?B?MUhVbU9wdzBjb2F0bVdGVC9jWDJyeFZtZElmRzI1RlB5bjlLRnk5UHpFRmFL?= =?utf-8?B?ODA4VEdnR2F3OTE5amswTGExWksxWmxmQnVVZnArZTVraEkvL0RFUHFYMzlE?= =?utf-8?B?SzA0Umd3dDJ1cE5WSDVwMkUwaW1ISlBrcUpGdDEwZDlkeEFOTFczSEo3QzNy?= =?utf-8?B?SVQ2Z2RXdUVnanI1N2c3aE1BR0tMaDdUemRLWXEyNnpsNFR1MlhtZDhMWUVi?= =?utf-8?B?L3h1bHBqMUlybmNJUTY3eFZKc0lHcnZra0xFeXBEWnVZaUZoQitDRHI5cjR1?= =?utf-8?B?bUpOa3BnWTVucEJBV3l2TEZWZHNyZzVrQlM5cmlySWdidlQ2TnU2Sm9xZUk3?= =?utf-8?B?WjJyVUdheCtBQ21ZY3JoM0Y5bEZjYzFaMVpvV3VOQXprNFNOdXhPSkQ4OHZw?= =?utf-8?B?RUhCM3FZVHcrT2ZSU25NVUhZTkF2UkdrMlRjdy82a2xpcWVNUkJuMlYvbEJ6?= =?utf-8?B?eWkrdlNlUHdVdy9IcWhUd3had2lEZkNYK2ppQ2I3anZnZzVZS1J3bFdaQU5B?= =?utf-8?B?VTljY2ljSmFIQWNTajFmQ1B3bWgyQkJLNW9uVVBRSWc0ZmI0YWcxaEtzY1JV?= =?utf-8?B?L0hnT2YyNGZPTWM4cGNQWHBxUS82NjJ5eXo3dEtoTnZ6UFRUOU1GZVcxVlRS?= =?utf-8?B?T0JyQVkwMmZYQ3gyMUk5bVNHcjh4aGNkb3BVTy82aVJDVUZrV3NhRkpQeU85?= =?utf-8?B?R1Vkb0phMTdLUk5vWklJbFI4bHJUSjVhQ1RVakw2MjVjZnRXK3ByUkhUVndk?= =?utf-8?B?Z0xlbTRQb1Rvb1cvK3EzTVR6Z1ZTd1F3WGtUL1R2VFBSbEFrcHVTWEd3TGdl?= =?utf-8?B?RDZYcjZtYWQzZkRxRkJRU25HNXRJSnNBMzJGWWs2TVpDbEJEVW5DMFhDY21Q?= =?utf-8?B?R3lIc1VTQkI3RW53NjE2MEVFUkNMNmpiaUgvMkRxdEdNMXVKeWNsYlE3Um5F?= =?utf-8?B?WlRmUGo2M0NYWi9CRS9SSUJ5ZlhraHRLRVM5aC9yUXJyTEVYd1U0OTdZUjVp?= =?utf-8?B?cWhIMGNzWGQ3c1RWS0ZJNlNlem10WnpvUFoyK3V3ZlIzSFluQ2tZZDF6Q2Ft?= =?utf-8?B?RkgxN0s3ZVNPNXdUaVI5cmg1Tk1qSVhRWmE4eklQYWc1MUd3ZkVsazhHUDEw?= =?utf-8?B?cU8yUG1RaHlqbkpBWnlaODZtK2pKUFMvV09udnVIN3NIbm9ialE2RmtLZFc5?= =?utf-8?B?NXpxeTdRWkczOEtwN2V3aG91VGZhZ0J4UjVSQzJRNzZCVUlQUWVBMW9UQU15?= =?utf-8?B?c2IxRHZxdHF2NTYrRjZpVzcyelpwaDVaQWtnb0l2dnZxVkppTTdxSThGS2VE?= =?utf-8?B?clVNSkh4R1c5Tno2SEhOU3dpSW9SN1IvMVUxNlA2YVpGRGpncFFjOW0wblpI?= =?utf-8?B?K05JektXUFdkQzZHK1lRbHg2cDlweDJzZkZYdHY0cjlrMXdJR0VCc2E0YVVn?= =?utf-8?B?Wm5XdS9DUDk1ZUIzdWR2RktadDRzZnVwR0xXQzhUOHFIczkwcUVTVzFLVmIw?= =?utf-8?B?bkdERUZ6eDN4RnFNcjJ6SmNFcFZwYVh6K3pqazRhL3NxY04vaVAyRkZEWmxM?= =?utf-8?B?RVFXRDhpbXdsa0l0ZUlobTJzNmd5UW1kZHZ1a1dpMFVzQ0w1U0g1b25PVSty?= =?utf-8?B?WWk5cEJIY1o3bHZTUUhMMTVRbmlPUnloR1IxQXQrV2ROeW5FRU83TXhDa25i?= =?utf-8?B?aG04Mjl1Y2xqMlgzM3hLNklpZUpzRE56ZVp2WjBvWlVQRjNwd0hmalRxOXBo?= =?utf-8?B?LzdWVlRZMnEyd29sV3I5dTh2QW1CeU5UZTVCZEtROEpFaklYbmJiaXdzSm9h?= =?utf-8?B?R25ZVjJsMXM4aDVyM2RoOE1FdjBHYkhLMzJBLzR1R3RYWXRrWXBXTGpJd2p4?= =?utf-8?B?Y0RVZ1p6R1kyRG5GNVVwWHd4R2s0TG5ucTAxalkzS1lpK2pIdVB2dVp3V0dU?= =?utf-8?B?UFJGZVRRNDk2b3I5R3N4N3NZRkt3R3hOM0JrVHJSc2JZbWg3Qjl6SWkwcHJs?= =?utf-8?B?azJNazgremVsc3pqL2lOdFk4MmY0RWh5MUR2VStXNDA1bm13eTNySWxFNHI2?= =?utf-8?B?ZFYwWEdxa1hyZW9NVnUrQWlIZ1l1RWwvekN6T2ZxaEZTdlNXSDN6Vm1XZUgy?= =?utf-8?B?S0Z5TDg0TWNYTW9sbFZ0cW0rcTBQbG8xdjRUY3lPSy92ek9pNFJPd2ZPWWli?= =?utf-8?Q?Ef7KXyfN0LRSFUckatVZnnRJqhEXzBOZLjQgaUCcBwgiA?= X-MS-Exchange-AntiSpam-MessageData-1: 1IyDl8LJgvodAw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8873ba58-9b3e-42d5-c5bd-08de58018709 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:31.7590 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yw4qsp51YFG70pIYTEzpGhpexyX1PMESTPUwui1xcq8UyMdVytUYKbWHZNNWvkbiD3pKqUgk0jfeVHFjIwBsyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 This adds the missing pin_init dep to driver crates. Signed-off-by: Eliot Courtney --- scripts/generate_rust_analyzer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 0d93e8a8e4bd..ba2f6b0fb99b 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -234,7 +234,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, append_crate( name, path, - ["core", "kernel"], + ["core", "kernel", "pin_init"], cfg=3Dgenerated_cfg, ) =20 --=20 2.52.0 From nobody Sat Feb 7 23:33:57 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010023.outbound.protection.outlook.com [52.101.56.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 048303C199E; Tue, 20 Jan 2026 08:54:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899283; cv=fail; b=gmYxZqeD42xNU2kcDKgVQrBtmuzIrbrAGXzPijN3VbOuqbKg0ndii+1mlMCAcsDoLNtzdTbEqbGWv2RxLke6A18TGInvbIMwAfl+Vq4rMfxdsK8eJ3KvScSQqbf8Bd+ldsL/mP7jcgJfjc7xHyPuj63qp2WNHvvjOJV/aO3OJDY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768899283; c=relaxed/simple; bh=xy9NjPoCg6lCL6VH6CC1Qjjn/rbhEONo/oRsdJ3HodM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Z2Em5RYqHas94por3gix3GLEv1XQaZMe9FOQwdyysS/GLsUHV3R5VNExCACqTPl5yeoTiXHGXxVyBeNgraZ7JyAJilL5YNy7Yi1uYqkzgycxbBPY4ZTh0flq2r7csbWiuRJigwOeDtH2bJGB/4o0lHOEcfvIJZAmbRhQ57oS/pg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=eGPMxdRn; arc=fail smtp.client-ip=52.101.56.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="eGPMxdRn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hfG0N8QBEi19lGxGf26ju+KB47pmhsDRKMKqq4M/zYhiZ9kiw4BsGL2YVPHRBzDfavwtzTn88t3U1HVq0LDaZYnQGr3KH0PzjYMSkKKYtwn405a7zuSfO+b4PCarT2FuizrtWsDvweTmIgpmJxu/iFP3LrlhgwDZzqm+pbjsrOXS+5N4cBpoypx2skHMJuwhlWBPL6hm/3Wq0rYfmh/zApFoBakB5RYaxHkNzfrqxo8Gl3iZo1o57diR2IkBTRKk3KLjL3pDwQmnCh0K7U+ExL06L1qVjbJuPFbcopHrmkn2OfIeRbAeYSxSAET1OD63W2E6JkwGLz4/rgQnz2fUbg== 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=2/GSjKQIy64ewi8MufxITGMfmVs+KsJ2Ya0vA+ukeuA=; b=VvajWdt9MUQPiz5WWfLFaNCTDUD2AnzRwVXki2D+d8eKky3T7irq0fJdaOGXdgM2cyZRgav3BAZyUW/rbs/TObmRvH09x2Mj1NxmTlhH6tOw6MJCbiUmmv//9QNL2hl3+R3FTVQjkYFbgrEwXh2cdVk7on/gHHgQJJ8Bb9cZ38Jwp63T57/87GPjyIoE+Pm1QtakvUdy+UEFrI5H9vTSiVeicGanUjl4i3329jG9dsiNuyApvXW918aCVLGB7AnthGN+rWXonOtSi3//8rIEWRyU5MHHf+LGbxqm8cW6CJL1G/TrxCB3WPYz4ToSRpC+7SifZfWsSLzNfGh00pHlTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2/GSjKQIy64ewi8MufxITGMfmVs+KsJ2Ya0vA+ukeuA=; b=eGPMxdRnAuDD96TJTunZenQOPU98/QmwEUsfY/1okiVFqfCoKJRadeC1K5cSC92ayVGAFMo+i+/ua4auLDhVLhGwF/1KzA2l66jDvA2z3jYcvgo1+QDcHNqkC6sBwVgqMc8oAIWs7Uqa7dcxwqJfn9URwUQxavxODWP8ufou1MdpVmtmh9kwmnSLsfSp6j0lZ/j/9dPoS3TCaAfxMbQvLgmaPSP10AXuiD/q4rH+A9+bRXorF+EE4MRxkFTCVgAw1Xn+EH8l8SYHEw7kPsx78FDFQE4daKBjS8NYWP5DSAM36Oh7gaLKSyyhLuiq192Mw4fAWWk0r4oxq5q7fsPZTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by IA1PR12MB6067.namprd12.prod.outlook.com (2603:10b6:208:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan 2026 08:54:36 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9520.011; Tue, 20 Jan 2026 08:54:36 +0000 From: Eliot Courtney Date: Tue, 20 Jan 2026 17:52:55 +0900 Subject: [PATCH 6/6] scripts: generate_rust_analyzer: move sysroot crates to sysroot_project Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260120-ra-fix-v1-6-829e4e92818c@nvidia.com> References: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> In-Reply-To: <20260120-ra-fix-v1-0-829e4e92818c@nvidia.com> To: Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nicolas Schier Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0010.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:26c::18) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR12MB2353:EE_|IA1PR12MB6067:EE_ X-MS-Office365-Filtering-Correlation-Id: 7114df09-7dd9-4f7a-33e5-08de580189cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|7416014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RTdTZ3pzWnY2NFl6T1J0b0Z5N21tNE9MVitsQURZbFRiMGUzT0dNcVdTVGkz?= =?utf-8?B?cWxGVW9nY2lOZ3R4aUdNR1QyQkF5dmgyM2dDNDEreWV5TVlSVFU0ZllHUjF5?= =?utf-8?B?YjJtdG1SQ1pXY1VydENpNEZxYjA3WjRtZjh4S09RRndXc1h1N3crZzZTNHZn?= =?utf-8?B?RmVCSTVYZ0tWV3M3ZG1UTkVzNER4bGZpOFFYOVc3U0xWcTdZYzcrUEh5YjZE?= =?utf-8?B?SWM2Z0RzWEZRcGdrTTIzUEhGMlBXZ2NUYW5oM24vYjdMWWZENFdVRzZicXhS?= =?utf-8?B?MWRPQUlIS2RGc0VDMjFDeFRWTStFYlJJUGRoVmI2RHhKb1k5R0R1cVRaUjFs?= =?utf-8?B?dDhMTUpYK2hqakYwSHdKTWJuVEpYRG5QOWlzM05XRzBlRDRuZHkxei8xNVVM?= =?utf-8?B?Qkh2UE5HRTFnR3ZzUVQrU1NhWlgrVmk1dU9PM2U1cFRHQ2QzQVo4VEl4V0ZM?= =?utf-8?B?OGo2Q09OZ2Y5d0ZGem02OHJWcUtRcHRpYzIvUXg3Unp0bHVPbzlGL0F5bXdK?= =?utf-8?B?MmNEcFZCQzFJTWpYUGFick5hRkliN1hOYjMwNHdJVVVGOHdzTFFLQjN5TmYz?= =?utf-8?B?cVAxNStZWGFVL0hqVzFOdGlzQzVWeUVvekJiZHJxaURveEQ4QnRwNkR2dGkv?= =?utf-8?B?ejdrZ1BwVzg4ZHEveWhLZWo3SWNOdkwyamxINzlHOElyMThhWWhPV1VZTzhQ?= =?utf-8?B?Ymtld2dEL283K2phK3N2bUpvRGl1UXpYNFN4QnhHNk9KeXZaMFVXYmlBWVZq?= =?utf-8?B?WUpLQ3BVdFBHckVrbFFkMWJ5VmNidE0zbmtETUplYThWWVZaT25LaDNoVDly?= =?utf-8?B?TjZkcGJtWFlKVXVyUUNHN1B0ZVQ0ckNac090WjFVOFVrcWZUZzNaZUkzM0xT?= =?utf-8?B?bW5RdU8reWE4NDh2ZlZETlFTNXRBemFRT3Juc3NWalRkM1RUdmFkTWtwL0U4?= =?utf-8?B?MXNBTXg4TmRJZTZYaWFGVGJxUEpNalBQV3BoRDJmSU1MbllTNUkwenhobDB2?= =?utf-8?B?YUg4T2VjazQ3VjBKdDdnME14QUk2ai9YVzFudDFIWGRpck5pRTlJUUpxRVZh?= =?utf-8?B?Ull3TGNEQjdvUHJkL0tEZ3gyNXluQzBPMXZHUDEvYVNhdGhRdDZSVXU1dXlT?= =?utf-8?B?ZVlSbWduK1B5QVZmYTJKYXhJWFZlUGREaERvYkFnN051M1RxeWZuS0MzaWtu?= =?utf-8?B?Y1c1cXpjYVNyQVlQcEIzeWZyT3pPL3F3RzFFRlhuSHdsSDg0azMwWnNENTdi?= =?utf-8?B?bmtISXAxOGJwZkxlb1pPQldIaE1YbU1LMS9pNFNZejY2c0dKRWZNNndoTUdH?= =?utf-8?B?ajB6VmNUN2tUQnlGclp3WnZrVVJmQkpMckIvVDVHcnhUcm9jUTR2THl4ZVdI?= =?utf-8?B?UTlvaFk4RWQzYlRYYlk4S3lxVEhjU2hubktPNzBMdlNUb0JzODNCa2xZdHd3?= =?utf-8?B?dnd5OUFGWXBGcU1lczdNa3N2UTFTSlE4Z3ZZUjFkRFVIMkZEM2lHWlFrZ0Fl?= =?utf-8?B?T3gyZm9MQUYwanlkTGRZWEFHVDN1M2ZaaFNWYXgxcmlDUjc0b1BKTk9nQmFh?= =?utf-8?B?RVp5U2dnNUhDMU9ETXQ0T3Y3NTBJUHdGek9BVHgzblNmcGswNDhqeEgrYzVU?= =?utf-8?B?QVU4N1NnSjcrcnl4K2pjSTYza05pL1U4R2JhYmMyM1Z4aFNyWFlGenVaa0Ev?= =?utf-8?B?ZmJwaEpjdWd5bmM1LzZRWTRJaGxIS1JKNXpOVXh3M0NwUDh0aVRuSkk1SktR?= =?utf-8?B?aWVjR3Flb0xoMEN4b1p4YVhWVXBGVkpnNzh0YStYYlZHUzBzZG1jZHNrN1Vj?= =?utf-8?B?R2dqbmpnVENJOGZVMGQvZUQzNEhNU3VyNllnN0IrRDhKNjk4aVQzbHZBQXdG?= =?utf-8?B?WUVhb0NvdTdaSjltZHlMb3BrSmR3VWZhV2JaRno2eCtLOWxLUnZDeW51NlBK?= =?utf-8?B?VW5ld2tzSTcwMVhlVjRqMWtNajczbDVHZDJ2UkZjOE1uSCtpMUxJdGNjZ1FZ?= =?utf-8?B?U0tnV3dVNkpmbWJmVzFBclZTWlZKdjhoMXJETlNQVmZ2SU4xdDEwdXRGWjJC?= =?utf-8?B?OUw0VjAvQ1A3aGxXTXNlZ1BSOXdoQ1FQUGdML1dRaytOOHlnbGkydVpFMDhu?= =?utf-8?B?VmorWXBvOG84YWdXZHpJcnpyVjVqenVQN2lPSEcwMC9yU0VVM01VL1ZPWTZo?= =?utf-8?B?K3c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(366016)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bUJHQUJ3R0dhazZoRXJEdVdCblpYMjlTV1l3UVpYT1gyUmJoOG5aaEtpODU0?= =?utf-8?B?Q1ByejZsUzU3SFkzYW9YNVhiRXJxRi9IREVXUHVyWk1LVklYZVA3KzNxRmE1?= =?utf-8?B?Wmpsa2FaMjZzVmRIVlE5M3dtcGtoRHpqQmNKOEMrUytaNE5lMFFMTFVNSUxJ?= =?utf-8?B?akZySDROZG5URy9heFgzanlaaHdzaHppKzE5MWJwZ1JwNUd2a0lCanorelNt?= =?utf-8?B?aDVYTHkwWmlsZEJSMGZWa2syeTVYZEdqVkZ5NDk1RTFtODk1cE1CeVVnZlVi?= =?utf-8?B?d0JBRDAxVWg5dlZ0aVdnc2Mvb3dWSGQrUFFFVDcyUXhkN2kwTjZUWklPODlC?= =?utf-8?B?STF2dUZIOUhBWXZEMzhHY2MzZHprTHY3MWNoMGg2NmhRVnVvbVV3cUxvU3Ax?= =?utf-8?B?aXhwWlNieWdFaHlVYTdlRkRMNzNWaXVoRDl5UThoMjl5NU0ySlU1SnA5NzAy?= =?utf-8?B?bEc1WHhXYnM5ZDJ2dWQxeHJ6ODVWSnhoSDY2clFYZmFFd1RKQjVEK2hxWmE4?= =?utf-8?B?RmRDaXBHaXVsaEkwTnFWQTRBT3BLQ3E0dlU1bjlvK0V4Ylk5SjR3eFVRdXo4?= =?utf-8?B?QXhXLzhjaEpGdVNRdFE4YVFEdDF3SFMvMkxDc2pqMzFhQk1ZeEFXVGVUTHNj?= =?utf-8?B?R05MUUdySlhLay85Uk9tRFpJZDM0RC9wZEFIUjNjSEpmWEczSzJXYWNLUEZL?= =?utf-8?B?dnovMytseUsxNytNMlJVYTJMN2tCN1ZCd1ZTS0IrcS9RSFh5Mk1zd0hJaHds?= =?utf-8?B?MkNhRkgzWUtUZHRNSHRJQmhwaFBHVWtpT0xDMFBXYm4zOWdobmdMTDEza1VH?= =?utf-8?B?RTdhaUlsTmxZS0Q2YTdTcnVVZjl6Tms2YXVUR0hseGVpd1BXZnduNUg5TGls?= =?utf-8?B?S2thbG9IUFJtWXRzMmlpWWdGTndrMTJwUHNEbEhpQ28yUXA5eUw4UkhPYUJZ?= =?utf-8?B?eXdvWjNNMjAxTGwySzF6REFWTmVOTjhRdUFuZ05sMGpiWjhISlRnc2UyazhD?= =?utf-8?B?WlRlVnNrY3Mwc2dzKzd0Z0dBREhTMmFpYm5TM0s3SlJOYjAvMnFOMEtuU2gx?= =?utf-8?B?cXdrZURmcWxzT2ZESVdJRVAxdTJORi9uZjdYRDBwemNkWm9NSFQySGk1N0tJ?= =?utf-8?B?NzhpS0ZBV0Z1WDl3NkU0SWp1eWd5M1VHUWVpNmhzTlVhZTVkM1JDWFczWkto?= =?utf-8?B?S2VvZGhFSzhxQytIMnN3T2x0ZnorbXdpNUNjVHhoLytFMm1Camp4NENUSXFS?= =?utf-8?B?TVBtMHJ0b1J5dTVVeC91bG8wYjF4Zmk1RHRNSFpFL0VIRXJCQVQwUlVQYldm?= =?utf-8?B?NmRQZGJTN3hDVDN0eDRyREV1aEFRT3JwRTh4dnVVUXg0NXdrcUhZRlk3ZEM3?= =?utf-8?B?UGNHYzdMWWN0dFFxV2NPd09TMDNKNWpWY1dNQ0lBYjhldW5ETjFYaHNvYXNo?= =?utf-8?B?QmY2YjBuc1dtelNRV1hBUWxWNVVlV1hLeWlEVkFmSWpKZnpZNGp0S2dveE9F?= =?utf-8?B?VGZaV0l6aHJBTFBIVDAzaEh2SE96ZEV1Z1JUVTZNTlZya3IxeEF1UkVhdW1V?= =?utf-8?B?bDg3ZGNhbFBkcjJRNjVDZmRid05pMlhRM29GdGRuNmdTOHl4Zk5mUitaYVR6?= =?utf-8?B?VjVpWVFPdWJIY3krZUlRZ25peTczdUdLbU5VRkdpZFZGa0tseW1vN25IT1NL?= =?utf-8?B?azJVMFFxSEVtTVZFMkllOTZTbEJVZWRuUHgxL1h2SWp3SnNnYm42SG9wcEFQ?= =?utf-8?B?bmp3VzhzK1Z6dzZsODdMMFd5SUdKeFVoS0F6ajRNZFEyUW9tVnJrVDhvV29Y?= =?utf-8?B?elpsbEp4VWljOXBEdHRTUk54TzFpV25GK1RZNTMvMHNiSGFwZllMTmJSNDF1?= =?utf-8?B?ZlVUbGdiSXoyVTh2RUllY0NweTk5Ukc2a0JsWnVOanU2V1I4d0JDZUs4Qmg5?= =?utf-8?B?aWtNMGtPZllLSVRZUUp0VE4vWlppVVl2eXV4UjRFa04zV1puZk9waXR5SlB3?= =?utf-8?B?VFNXQUlia1k3TUFHOWsyU3ZVRHRyTC9HWUFHOW44TkpzYVlhelBJbVhOczdP?= =?utf-8?B?VFFWalNSUG9qZzF1V1hpZUc5UnV3VUZFVVlqZ2EvYjNOWndVNDB4dGdlbXB5?= =?utf-8?B?bEhFWE4rVGU1WHowd0hzL3NaOEJoTnJic0dJemVqei9oa2NhNnJlOHVvZ3hN?= =?utf-8?B?U293SDRkRzQvWUd5TG9uK3ZzU2tSSzgrSE5BV3lFQnVjcFdYTDZNK0hwbll5?= =?utf-8?B?dVRYelhrS0NjV2Vwb0ltZGlpZyt2bnNwc2VDMjB2ZVFaenM4Y3l1OW1MdXMz?= =?utf-8?B?N0E3aXlqSmczU2lZV3lWcFdCRFhaRlVqb0JsdXhqb2dJdDYyb3IzRmlzajdj?= =?utf-8?Q?q8QZN4wcjg36uvpdjkiACMB8Z74bfLvlNLyjifYfC/mSu?= X-MS-Exchange-AntiSpam-MessageData-1: z0zFYaHaUZ44lA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7114df09-7dd9-4f7a-33e5-08de580189cf X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2026 08:54:36.4539 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ttyc78BgFih3rV4dSbBER6LYo87+RXiruDxycV5/c10S157FPJGfN0j7AHsgq8T1BCr04j3Aspo/LZL7rtK/pQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6067 Use rust-analyzer's sysroot_project feature to properly configure sysroot crates (core, alloc, std, proc_macro). This allows rust-analyzer to correctly resolve items from the sysroot and automatically add sysroot crate dependencies to all project crates. Some sysroot crates use #[path] directives to load files outside of their directory but still in the sysroot. This is disallowed by rust-analyzer, so the sysroot crate are not properly loaded. Loading them using sysroot_project tells rust-analyzer to let them load anything inside sysroot_src. The sysroot_project field was added to rust-analyzer in v0.3.2328 (~1.87.0) and is silently ignored by older versions. In that case, rust-analyzer falls back to loading the sysroot via sysroot_src. This basically works, but the advantage of using sysroot_project is that we can make the set of features/cfgs more similar to what the actual build uses. Signed-off-by: Eliot Courtney --- scripts/generate_rust_analyzer.py | 118 ++++++++++++++++++++++------------= ---- 1 file changed, 70 insertions(+), 48 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index ba2f6b0fb99b..f8666050a997 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -27,25 +27,14 @@ def args_crates_cfgs(cfgs): =20 return crates_cfgs =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, edi= tions, crate_attrs, common_crate_attrs): - # Generate the configuration list. - generated_cfg =3D [] - with open(objtree / "include" / "generated" / "rustc_cfg") as fd: - for line in fd: - line =3D line.replace("--cfg=3D", "") - line =3D line.replace("\n", "") - generated_cfg.append(line) - - # Now fill the crates list -- dependencies need to come first. - # - # Avoid O(n^2) iterations by keeping a map of indexes. +def generate_sysroot_crates(cfgs, editions, crate_attrs): crates =3D [] crates_indexes =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) crates_editions =3D args_single(editions) crates_crate_attrs =3D args_crates_cfgs(crate_attrs) =20 - def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse, is_proc_macro_library=3DFalse): + def append_sysroot_crate(display_name, deps): # Miguel Ojeda writes: # # > ... in principle even the sysroot crates may have different @@ -72,6 +61,52 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs, editions, # assumption if future edition moves span multiple rust versions. edition =3D crates_editions.get(display_name, "2021") =20 + cfg =3D crates_cfgs.get(display_name, []) + crates_indexes[display_name] =3D len(crates) + crates.append({ + "display_name": display_name, + # Paths in sysroot_project are relative to sysroot_src. + "root_module": f"{display_name}/src/lib.rs", + "is_workspace_member": False, + "is_proc_macro": False, + "deps": [{"crate": crates_indexes[dep], "name": dep} for dep i= n deps], + "cfg": cfg, + "edition": edition, + # Crate attributes were introduced in 1.94.0 but older version= s will silently ignore this. + "crate_attrs": crates_crate_attrs.get(display_name, []), + "env": { + "RUST_MODFILE": "This is only for rust-analyzer" + } + }) + + append_sysroot_crate("core", []) + append_sysroot_crate("alloc", ["core"]) + append_sysroot_crate("std", ["alloc", "core"]) + append_sysroot_crate("proc_macro", ["core", "std"]) + + return crates + +def generate_crates(srctree, objtree, external_src, cfgs, editions, crate_= attrs, common_crate_attrs): + # Generate the configuration list. + generated_cfg =3D [] + with open(objtree / "include" / "generated" / "rustc_cfg") as fd: + for line in fd: + line =3D line.replace("--cfg=3D", "") + line =3D line.replace("\n", "") + generated_cfg.append(line) + + # Now fill the crates list -- dependencies need to come first. + # + # Avoid O(n^2) iterations by keeping a map of indexes. + crates =3D [] + crates_indexes =3D {} + crates_cfgs =3D args_crates_cfgs(cfgs) + crates_editions =3D args_single(editions) + crates_crate_attrs =3D args_crates_cfgs(crate_attrs) + + def append_crate(display_name, root_module, deps, cfg=3D[], is_proc_ma= cro=3DFalse, is_proc_macro_library=3DFalse): + edition =3D crates_editions.get(display_name, "2021") + crate_attrs =3D crates_crate_attrs.get(display_name, []) # Apply common crate attrs to non-host crates. if not is_proc_macro_library and not is_proc_macro: @@ -80,7 +115,7 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs, editions, crate =3D { "display_name": display_name, "root_module": str(root_module), - "is_workspace_member": is_workspace_member, + "is_workspace_member": True, "is_proc_macro": is_proc_macro, "deps": [{"crate": crates_indexes[dep], "name": dep} for dep i= n deps], "cfg": cfg, @@ -100,37 +135,20 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs, editions, crates_indexes[display_name] =3D len(crates) crates.append(crate) =20 - def append_sysroot_crate( - display_name, - deps, - cfg=3D[], - ): - append_crate( - display_name, - sysroot_src / display_name / "src" / "lib.rs", - deps, - cfg, - is_workspace_member=3DFalse, - ) - - # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies - # here is important for ensuring that rust-analyzer can resolve symbol= s. The sources of truth - # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" f= or crate in crates)`. - append_sysroot_crate("core", [], cfg=3Dcrates_cfgs.get("core", [])) - append_sysroot_crate("alloc", ["core"]) - append_sysroot_crate("std", ["alloc", "core"]) - append_sysroot_crate("proc_macro", ["core", "std"]) + # Sysroot crates (core, alloc, std, proc_macro) are in sysroot_project, + # and their deps are automatically added to all crates by rust-analyze= r. + # We only need to define deps between our own crates here. =20 append_crate( "compiler_builtins", srctree / "rust" / "compiler_builtins.rs", - ["core"], + [], ) =20 append_crate( "proc_macro2", srctree / "rust" / "proc-macro2" / "lib.rs", - ["core", "alloc", "std", "proc_macro"], + [], cfg=3Dcrates_cfgs["proc_macro2"], is_proc_macro_library=3DTrue, ) @@ -138,7 +156,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, append_crate( "quote", srctree / "rust" / "quote" / "lib.rs", - ["core", "alloc", "std", "proc_macro", "proc_macro2"], + ["proc_macro2"], cfg=3Dcrates_cfgs["quote"], is_proc_macro_library=3DTrue, ) @@ -146,7 +164,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, append_crate( "syn", srctree / "rust" / "syn" / "lib.rs", - ["std", "proc_macro", "proc_macro2", "quote"], + ["proc_macro2", "quote"], cfg=3Dcrates_cfgs["syn"], is_proc_macro_library=3DTrue, ) @@ -154,20 +172,20 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs, editions, append_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - ["std", "proc_macro", "proc_macro2", "quote", "syn"], + ["proc_macro2", "quote", "syn"], is_proc_macro=3DTrue, ) =20 append_crate( "build_error", srctree / "rust" / "build_error.rs", - ["core", "compiler_builtins"], + ["compiler_builtins"], ) =20 append_crate( "pin_init_internal", srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs", - ["std", "proc_macro"], + [], cfg=3D["kernel"], is_proc_macro=3DTrue, ) @@ -175,14 +193,14 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs, editions, append_crate( "pin_init", srctree / "rust" / "pin-init" / "src" / "lib.rs", - ["core", "compiler_builtins", "pin_init_internal", "macros"], + ["pin_init_internal", "macros"], cfg=3D["kernel"], ) =20 append_crate( "ffi", srctree / "rust" / "ffi.rs", - ["core", "compiler_builtins"], + ["compiler_builtins"], ) =20 def append_crate_with_generated( @@ -204,9 +222,9 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, "exclude_dirs": [], } =20 - append_crate_with_generated("bindings", ["core", "ffi", "pin_init"]) - append_crate_with_generated("uapi", ["core", "ffi", "pin_init"]) - append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "pin_init", "ffi", "bindings", "uapi"]) + append_crate_with_generated("bindings", ["ffi", "pin_init"]) + append_crate_with_generated("uapi", ["ffi", "pin_init"]) + append_crate_with_generated("kernel", ["macros", "build_error", "pin_i= nit", "ffi", "bindings", "uapi"]) =20 def is_root_crate(build_file, target): try: @@ -234,7 +252,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs, editions, append_crate( name, path, - ["core", "kernel", "pin_init"], + ["kernel", "pin_init"], cfg=3Dgenerated_cfg, ) =20 @@ -261,7 +279,11 @@ def main(): =20 common_crate_attrs =3D args.common_crate_attrs.split() if args.common_= crate_attrs else [] rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs, args.editions, args.crate_attrs, common_crat= e_attrs), + "sysroot_src": str(args.sysroot_src), + "sysroot_project": { + "crates": generate_sysroot_crates(args.cfgs, args.editions, ar= gs.crate_attrs), + }, + "crates": generate_crates(args.srctree, args.objtree, args.exttree= , args.cfgs, args.editions, args.crate_attrs, common_crate_attrs), "sysroot": str(args.sysroot), } =20 --=20 2.52.0