From nobody Tue Dec 2 01:03:02 2025 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E0522F84F for ; Mon, 24 Nov 2025 00:23:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943808; cv=none; b=JYWoXXi5v6O9xsKQpAqCY6CeMmzPBHNEJqYXD92b2+w8LykeRgKK1ZiBjlwpor8ZmdlFdQgLGRCd5a62v2WLTwAD8Q3DPdEYt2v5P2dEnjKhXThshkS0IensKlnQntJbHyJEUM20wYUAx0hNQgV56qX0qsaXTT1XP98G5mCyFxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943808; c=relaxed/simple; bh=UBNCi+JwEpdLbNq63Kw6zv29wcmJRW5azpG7favyCqE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sN8lviJC26f2M0vNRP8bNogQyYetkw+aogKRN9lz/RiDm32r9NtzxGQ1iB4ybMBKql13aLeHaIs7u7J9ZkhP0ATbFz238ofihxMEytHmeLPpCD6sy0L7ZlzIcbOapMQjm6w+5sDZZYhC9cbKORcap8lo3TBLqGS5p+wIUqdm/oU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JmOATdSM; arc=none smtp.client-ip=209.85.167.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JmOATdSM" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5959d9a8eceso4403178e87.3 for ; Sun, 23 Nov 2025 16:23:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763943805; x=1764548605; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VmO7WeRHELfWemd3T0oTKOnUWLtTpQSTMpH/BoQx1+w=; b=JmOATdSMd3cUQbpCBWUvrGF/jQVdat7ESe9LZJJEnoNMfUagl9BljHbkuVZ1DpnD0B tNwk23b6nQfrEiwQ9teeS/OV+NOrFrdYiWiqyUNPZV3osvUDJcBWhTw1qWqslWFcaZEK P0uJ7UEpKT/OO6XDK8rbYLthyZ2FxAl/RZGoS7KUnhAzchJePg/bIy0sfuqiXLwAfSRS gWNlAi34tisJGVv3fjLWppPgPCryROKB7C4VhOq1nRWtDSODW7RSwiuiwIWhWzFe7XG3 ZsVcIYQWeeQde2qnZct7TFdazG8o9EEIhbw3YQR3SQoThlgFh5O2M2NG9DdJGBIIBH2J hfEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763943805; x=1764548605; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VmO7WeRHELfWemd3T0oTKOnUWLtTpQSTMpH/BoQx1+w=; b=dnHGSjgRv0ddLSt7/8lSZh8YNTYd3beEVvzm6F5Cm+xEHMKXJC10jRO6vg3wikTemS byvUCygHxK7jt+d9Db003368YLLaA9286yQAVVrTN7aCLhrMSyd3nKky5oGjeV9PfA6p +zxKRgZ3u0dLNA0PiPUwr9voxlMAh1RuvdClNXZa+83j55gXI99wrCcewAUB4F3YdjgY TrJ6E4Jmz+FXZrES7nrXJ0UQ2h4UIao+IyEv+HEDpLFVFza08+pfER8j3FejxFv9IlTf nLNiAWtBA184bkQ+OPq9ca4PDO3KVuUqkv4+R58txxpQw0O5uhpvgYDKpm7CoLdEpwAz bW/Q== X-Forwarded-Encrypted: i=1; AJvYcCUVeLMXbzma2ULGNGR6Hgal1ALFXb6GD0cS76gbodkKKT9evodiq6U1pqEfvWvVTaEzpfnRbsqDBpoiEYc=@vger.kernel.org X-Gm-Message-State: AOJu0YzdGrSWHrR0ym6UfIaA1+OVvTU+zJEcm8YiDxWCviuItDZKKRWU pQvjkzzyY5TSSRVM28v+NOpUerjnW9QmXFLSu1W6JVoIc1gEioJyTkAM X-Gm-Gg: ASbGncsfHQ9spEkGkqZjHtBdE2eWBFXPh4fYfpXq1+I+VVGDajv8qIFMpKN4BPlWA1h K9nS8nLm3jAAcLmNN3FN/eSzb1Ot8LD47ozh/m+6rfht4LuKhJ6b4wAQ09I8gj7fb3C4urOKX6E 9DAFWEWHTYYDB2df+o0wa340de5hPUqqj+fJewJWMa9/Zd6GaV+UPUjAuhmP6Yxgf1OvB8LUWXj GApynOkSoDTu7G2BakKkiFcOyIh6NfLao79DDzv117ycLVAipC9fQ1oCZcaXAAo+FIc0cNVcUT+ 1Z+lHJ1KYdHm6yXAxA0YtYkuFAJG5+0WZEmwXUCa9JmcnOCODX5e+gZqviCDuAm7O6fE5T2Ev5g A9+HsF2zeBJsiYQblWy4kYIx5Y/lGrUXJ8Bm6UIIZreSJLwqkJThDMtwYNtCSOzGk4tSHVw== X-Google-Smtp-Source: AGHT+IF4aoVvhwlxQOs8/bE5W87pZdLvSLg96T0R9i+b0fAYQSrBsEEdwuQJf/Z42sWlhlDPankRDg== X-Received: by 2002:a05:6512:3b29:b0:571:8fad:ecee with SMTP id 2adb3069b0e04-596a3eb3235mr3529623e87.21.1763943804905; Sun, 23 Nov 2025 16:23:24 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-5969dbd095dsm3708266e87.97.2025.11.23.16.23.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Nov 2025 16:23:24 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Mon, 24 Nov 2025 01:23:21 +0100 Subject: [PATCH v4 1/4] rust: export BINDGEN_TARGET from a separate Makefile Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251124-gcc-rust-v4-v4-1-4e06e07421ae@gmail.com> References: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> In-Reply-To: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Jonathan Corbet , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Han Gao , Jason Montleon , Conor Dooley Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, Asuna Yang X-Mailer: b4 0.14.3 A subsequent commit will add a new function `rust-bindgen-option` to `scripts/Kconfig.include`. The bindgen backend requires the `--target` option for cross compiling, but variable `BINDGEN_TARGET` in `rust/Makefile` cannot be exported to `scripts/Kconfig.include`. Signed-off-by: Asuna Yang --- Makefile | 2 ++ rust/Makefile | 8 -------- scripts/Makefile.rust | 9 +++++++++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index fb4389aa5d5f..e4fcae38cc13 100644 --- a/Makefile +++ b/Makefile @@ -718,6 +718,8 @@ ifneq ($(findstring clang,$(CC_VERSION_TEXT)),) include $(srctree)/scripts/Makefile.clang endif =20 +include $(srctree)/scripts/Makefile.rust + # Include this also for config targets because some architectures need # cc-cross-prefix to determine CROSS_COMPILE. ifdef need-compiler diff --git a/rust/Makefile b/rust/Makefile index 7842ad0a4ea7..ae7cbbd89da3 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -300,14 +300,6 @@ bindgen_skip_c_flags :=3D -mno-fp-ret-in-387 -mpreferr= ed-stack-boundary=3D% \ -fzero-init-padding-bits=3D% -mno-fdpic \ --param=3D% --param asan-% -fno-isolate-erroneous-paths-dereference =20 -# Derived from `scripts/Makefile.clang`. -BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu -BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu -BINDGEN_TARGET_arm :=3D arm-linux-gnueabi -BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf -BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) -BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) - # All warnings are inhibited since GCC builds are very experimental, # many GCC warnings are not supported by Clang, they may only appear in # some configurations, with new GCC versions, etc. diff --git a/scripts/Makefile.rust b/scripts/Makefile.rust new file mode 100644 index 000000000000..5c12b4b8c8b6 --- /dev/null +++ b/scripts/Makefile.rust @@ -0,0 +1,9 @@ +# Derived from `scripts/Makefile.clang`. +BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu +BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu +BINDGEN_TARGET_arm :=3D arm-linux-gnueabi +BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf +BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) +BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) + +export BINDGEN_TARGET --=20 2.51.1 From nobody Tue Dec 2 01:03:02 2025 Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E43A439FCE for ; Mon, 24 Nov 2025 00:23:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943810; cv=none; b=u+PsxzXlvgOG1Vlob0TxnoG3Z/njRFBIIQyC7obrehx9dX4EOK+ORYFOX+lzEAmAy0qAvfYndPYYiGcAgJwOkIu7WNtf11mYoOhKjOErV4eogfAcuGtxBh6kQEQ6u1Z1j905gih3SlYFMJmDfn4qCzmJFt2ItugGoIDBX6UmA4Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943810; c=relaxed/simple; bh=sTkBdKF2Bl395/5OqRTBusVdJ6qB+Rw9uaO1n0TJDaU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r8vVYHlO0P2TfwIV4Z+0jhbFkc/5kUCqBKKHo0oJBBktYvkTF1kBUgueJrnf1TBULKt6oTcrya0WzHDC/7unBVkeF5P/sTHShtlRs/uJ5neq4dNAHUEh1Ub2hgwSZJ+eGrWaB1SzsWYwzaU2ioUUI4qxDZOEboRW6ID4Z+ldVxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MxJ4OgUv; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MxJ4OgUv" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-594330147efso3970076e87.2 for ; Sun, 23 Nov 2025 16:23:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763943806; x=1764548606; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2GKE54eSllGJNXgg9hY2liAKdUIlhKXmX5Ag1NTay1Y=; b=MxJ4OgUv1qC201EOX+3Aj/psHUa96b89BKpFq3WoQDRGW3KqnaU3M/9nxOgIcoJUIi InigXf27PljNPhwGlp91tJ+6Z/YHuGwZJha04wGqNLJFeye8VRr2Z0/LRLv5BxzDkRXQ /EjxmpXEW/96qe0nu3Idg9GKOn4yPBTB7HgAYG1epoGkuaLcWYmI515aXhfpE/kravM0 ziY+2bz4eqEiecV5H4dAgZgSx4jAKJ680FU5DTF3LAUYs8/V1vOaZHQ4gwu+UUnW2ej4 WKJ1ef1sTZfnEcaxpRmtrqj8TdKzNN0J+bzC3N1i8E4VKzX4t2IJYjvcwQKVOlrmEkYo TUyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763943806; x=1764548606; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2GKE54eSllGJNXgg9hY2liAKdUIlhKXmX5Ag1NTay1Y=; b=WcOY+BvVNLCJTQZn96WH8C/PMIR3duUObTf/tvVcf6aUbcc4TsOY3ty6dhByynKEzA 1BfmfiGh+BtgroQKWrdJylI6DpI+6gK7FXJap5L1WM9hGUAFlVvfpUSBSd7z5iIAvioO NYLJzKl3+jzhPJ6ek3L0cXswMaMTvnD9c9yYQlA3xgrzpkTEW92bTgaCw1Mn9Oz9kva0 +oXriRAbtgU5YMaNsFGNB7aXDocdBt1u6bDv8/SKVMAHcwbEMiCLrlGtFQArYc1KFxl4 natP8otpICGDolApqbacgeUuj2troXqba2I4l0Rs0Jwl9CgzqE/rppIrZByEmyjyfawn dGNg== X-Forwarded-Encrypted: i=1; AJvYcCVUiGbppuMajAJk7bfG3NsPvZWVABUGizCDtfFyiJsbrFynnSBsv1VwVIarKkz9inKh+XEOCHp96yIF/3Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxjX0efJElPNNU933De9OF0Lk8KbmK8DDVx2HsksyI0qT5gBGUw lHrhtqzqOJchiGXy3qeiSnkYf9WCUpvWeCKrFrxAGFJBACnFYlCogPyk X-Gm-Gg: ASbGncsW/VcTZf8iCJU+ZXMoPtf54KE7FLv/M8+dyXKcOFjR1g1QH82HwBRpLAUCpCZ ICzRvZowRJY9kHJXN02BBlJAuNMNrwuNv2ZuHVDs5PU8RRCbkOyeSuQFPgtfCys4kscAwHzEmKe crXrVy66EFZsCJYgKviNdBXM23WasRnXIgn55FIwVYPuzgyFXiiEWx9SWHVEsTV507GC5G+ETfi rs2grZMDdauAQ9VBiUR0elJNjX1PwhBpbbCZU+B4swqaGGTIebdzZ3ThwW9lvd6sUZH0Lbmh1be cgfTjHU22NJgiNs905h4huE2hfVM/xAxq8skxenXSKnyb00k3ipiDeE6ODmcIumhi4IR+cx3FMV V8VmFSS0nzOjOxMUzXuQn6jORBZw7ppT/Nd2HmUbYPPb2gqBF0UPfbMrJctTL4L1KdRMf6A== X-Google-Smtp-Source: AGHT+IEWwT4/ncaiOLuV73qylxP6v1jd62XgFGSBRwTlD52FtVaOl9gnPmEY64M2GGXzMxQbpMXxnA== X-Received: by 2002:a05:6512:3188:b0:595:7e9c:cdfa with SMTP id 2adb3069b0e04-596a3eb5e25mr3770473e87.6.1763943805776; Sun, 23 Nov 2025 16:23:25 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-5969dbd095dsm3708266e87.97.2025.11.23.16.23.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Nov 2025 16:23:25 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Mon, 24 Nov 2025 01:23:22 +0100 Subject: [PATCH v4 2/4] rust: generate a fatal error if BINDGEN_TARGET is undefined Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251124-gcc-rust-v4-v4-2-4e06e07421ae@gmail.com> References: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> In-Reply-To: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Jonathan Corbet , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Han Gao , Jason Montleon , Conor Dooley Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, Asuna Yang X-Mailer: b4 0.14.3 Generate a friendly fatal error if the target triplet is undefined for bindgen, rather than having the compiler generate obscure error messages during the build stage. This piece of code is copied from `scripts/Makefile.clang`. Signed-off-by: Asuna Yang Acked-by: Miguel Ojeda --- scripts/Makefile.rust | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/Makefile.rust b/scripts/Makefile.rust index 5c12b4b8c8b6..b219244cd051 100644 --- a/scripts/Makefile.rust +++ b/scripts/Makefile.rust @@ -6,4 +6,8 @@ BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) =20 +ifeq ($(BINDGEN_TARGET),) +$(error add '--target=3D' option to scripts/Makefile.rust) +else export BINDGEN_TARGET +endif --=20 2.51.1 From nobody Tue Dec 2 01:03:02 2025 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBA627E0FF for ; Mon, 24 Nov 2025 00:23:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943810; cv=none; b=qIQCpjFjo/0duTisvdS3jnnk0hWhQOU2Oyo7EYdfd/gJG/y6b+HzAIT1PbMn7wK9DuISx++bgvQGlb5wS+Yu4mTM2ohGElCTKPhujXTY/f+rmcLYhDp33aFI6n3V71HodB3eAP3UIDIeykZyRhdHGp0ibPQypN4+VqP9E8hAzYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943810; c=relaxed/simple; bh=WbemIgKuUD0wTji/U5cdEGBHeKZfnMP3MRB40CeW1Qc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OLsSN7wXbfN3CuS73EBaRuLQ7dQSOr22eBQLzkAMiFiQIjgawHuNMyB2VLVKc1nJRp9HQ8SKf4Xz3V+vbUBQTZx7lkArUxromu26heo642GfvaC02TpIOAOr+WUfPpL3IkqCreNgCnSPVvG+YMtcO1ZwjVMHW74KbV7CUdU7qHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WXhrMV1n; arc=none smtp.client-ip=209.85.208.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WXhrMV1n" Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-37a2dcc52aeso36012551fa.0 for ; Sun, 23 Nov 2025 16:23:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763943807; x=1764548607; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qbGYlCQvEAxl7Ii7cRcs+Js6nTClE2kmQahDh35IFoE=; b=WXhrMV1nwjasSDnXIDViZKvJytOYRSKrlDBKdbBhCafU9zKoE1wWo6Wt06bYTQeZkH wzTwyIrcD3Zt+hm/+YXg9LgRLLFSXi7C7AdyR4MP+qtyD9nRDND+BVlP3+mY47E/9r5E a7Rh1Ar0zWOBs7khs7sVKUH3JZpJ8b6OEZ52UpNABjqyRTYLPR7PPNLxmY3SqPuRj9bD CMMBzwCtj9JbAdkQmKidK/tgB0i8xPxztTfHhL2dVrM1QhbsUJHE3RZR+ModdVEtxb1M 2zEvvrkA2iR8+MKVS/WwLPj7QyFz8aH0tQlvyf3hKd32SAP5446RwLWsZrrjDUKFJIth fqDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763943807; x=1764548607; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qbGYlCQvEAxl7Ii7cRcs+Js6nTClE2kmQahDh35IFoE=; b=iLTXPlQ4PcJh+StBrb20oRWiK+XLvm0wzA3RnbDdM2f6Yo/wXVpR6zDzGv2TIunpIq f5rnOc0KeHgSQTwrC1iR2iCkAS7p8gHMDH+lBkAwUCzxvUxAtq4lFYFXp1f6lVCUYz9g FHdBguSo7CcAWuMiFI0m1dmPKQ9dp+NHpeJh425QXdPTL/IAmWAjCFFnNN8mvg4ap2tM 8EtU0O2sazdinb6RZoiy53olMdvJKDpGBhpYoSgZ9ZyUoYl+wx/SJWF2vqHwYw0KEn6+ R5Hkzok0wHrTuuqdmXRNcaBNKu6TAzCQHw37uS12iSqg29NFZ6Qye3On+FVbm2DQQlOT 2/mA== X-Forwarded-Encrypted: i=1; AJvYcCW+jVqUBp1Vql2mwPeEBqfIB811Bbn0AtKPJR0IZauA5bTHMKa+BU1mRlkk5fyL0gPNDwFn9mLNAibbrro=@vger.kernel.org X-Gm-Message-State: AOJu0YwJ2FvT3hoY1lb9BaiQtZPURUtOdVIisIhGwc7UzN1/e4hiHaTe txiIpkQb/r0UX9vKfX4fpMAn/N9t45+BYIRajT3Q2JujkAAVRbZqlY5T X-Gm-Gg: ASbGncsitWR/7skUHyQpnvT4P0ySScdgHIrPOo34mao/Y7zulmLJXQJuB2ucrp9v7z2 Y0/0DvaG3FnmkVAezqtPTvZkhSrUttSklKJaKavYtfygCbxDmwURwqlhhb9UbKSMlbjNW3EunIF Inyp2MLf6HBDaPZvkMAtEPrVpwCesbld2d810L66VNCYnkDMCo1t1xYF6lZ2P0m/QrgMXA62V4r 9PyziLyCCrkJpmHfQ1o5XEaEveINsbxsCst1tO9fNMGLRzWhofHW1/2oL2L4//nlvk1YLGwuOBh ZB3pjZMfbQnQQ/Sm91oWR1L5+KcatiqV6ME8rpoF3IO61TEVozwmA3eNhZ0t2L/LShFYSLqn0yh ww69ltiYwgzcxEnYaimHoorQ+h6YesrWoW1SoQp3Et5b5OcBhaQKN/khJCwAlZVOJKIWqmw== X-Google-Smtp-Source: AGHT+IEwZK8e0HsCARZb6AL+s2DVpYUXEissqZGhv69G7j9nHjSuwrkdy5uD1EZ2r86MmPczP46Jzw== X-Received: by 2002:a05:6512:b19:b0:595:7fa2:acd with SMTP id 2adb3069b0e04-596a3eb2edcmr3569705e87.21.1763943806325; Sun, 23 Nov 2025 16:23:26 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-5969dbd095dsm3708266e87.97.2025.11.23.16.23.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Nov 2025 16:23:26 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Mon, 24 Nov 2025 01:23:23 +0100 Subject: [PATCH v4 3/4] rust: add a Kconfig function to test for support of bindgen options Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251124-gcc-rust-v4-v4-3-4e06e07421ae@gmail.com> References: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> In-Reply-To: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Jonathan Corbet , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Han Gao , Jason Montleon , Conor Dooley Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, Asuna Yang X-Mailer: b4 0.14.3 Use the `BINDGEN_EXTRA_CLANG_ARGS` environment variable to pass the `--target` option for cross compiling, so that the function can be used to test both bindgen options and bindgen backend options. Signed-off-by: Asuna Yang --- scripts/Kconfig.include | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include index 33193ca6e803..a8cfe9f408a5 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include @@ -75,3 +75,8 @@ rustc-llvm-version :=3D $(shell,$(srctree)/scripts/rustc-= llvm-version.sh $(RUSTC)) # If you are testing for unstable features, consider testing RUSTC_VERSION # instead, as features may have different completeness while available. rustc-option =3D $(success,trap "rm -rf .tmp_$$" EXIT; mkdir .tmp_$$; $(RU= STC) $(1) --crate-type=3Drlib /dev/null --out-dir=3D.tmp_$$ -o .tmp_$$/tmp.= rlib) + +# $(rust-bindgen-option,) +# Return y if the Rust bindgen supports , n otherwise +# To test options for the bindgen backend, add -- at the beginning, for ex= ample: $(rust-bindgen-option,-- ) +rust-bindgen-option =3D $(success,trap "rm -f .tmp_$$.h" EXIT; touch .tmp_= $$.h; BINDGEN_EXTRA_CLANG_ARGS+=3D" --target=3D$(BINDGEN_TARGET)" $(BINDGEN= ) .tmp_$$.h $(1)) --=20 2.51.1 From nobody Tue Dec 2 01:03:02 2025 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF95813C8EA for ; Mon, 24 Nov 2025 00:23:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943812; cv=none; b=atI7CT7DI1SbiZdDC3DfPOLmU+CHRh7Mzv7uBXWvigTgjGWyjf6URDiLbkIC7p1jtAfgqLMwEbCBr6kQMTS/8l54ORLBNn1GHn0URRRcymA7DbrOM7rgRDGqFc5i8diC/wSx/07MouySbD3CDeQQesFE2vpZ3TGaV8LZeLHFEQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763943812; c=relaxed/simple; bh=IyyJ7rVmhgm+QGwk2c2H4lH2MEPDT6fLbCPXeII+ASw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oTAksOUdyCt1bFtDBW26/wCe6S7x2X2WydZtrSKGerDHvX3CRF4RluCvkA2q/QEktcJAJAXXek8fy96f0/VAThNYv2sKDqLCeF2yBNMYTulqqWra3PCYRI8A5AEauyHhTAk2+8xdFiXIo/GNqAKrdkBMYHKIb8gtvET6fn+jfpY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=U7VhOt9C; arc=none smtp.client-ip=209.85.167.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U7VhOt9C" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-594330147efso3970089e87.2 for ; Sun, 23 Nov 2025 16:23:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763943808; x=1764548608; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WvP3pAsY86kZPj7yXGlDI1ekuH0t13w7nIB3BO3NZ8U=; b=U7VhOt9Cq8qXaLZAAjvmpKvIZI0k01jpabW8ZUEOfOhz6A7351BpfFVDONzVpEIfcW 755O7+b8dPATX/pWV0Et3Be/ZzGvEeBJjJgiyJRN1EbHGlOoB9MFR+bpvUVDa9J237Rd yxAp8L4GbGSKGwzD3eDgSJnhBgRVkjXqb84LmjXCJkzElPowgVzRUrQTaAsb+v4YA7Qi kDIdC5MWLJC5xj69gk6FU7v3dlafyAEbocAfQzZvNcASAfYfh8EpXXwxQdZeBgDzvO/s DDfjf07vetqRhMTY6BW3FT0koJ1CAY8e8BysFnxQzE9FUbUUXXkBFyjPruaZRF/zqIFS 1oog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763943808; x=1764548608; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=WvP3pAsY86kZPj7yXGlDI1ekuH0t13w7nIB3BO3NZ8U=; b=KjPPkLG66KEhgfpA+BmDP+NfUtul4DyZXyctaTls1/XyDFzEz8R55h3qJAJ/oXerwK N9EXWcEDsP1y3mcBL/JS/zO33dXkHSdSW4MEXCXGMlC/AFlB8aR0LSqG6H5W9d62cc2p y5qzAgbAnU+fbsOEgds9akpmvjbH/A6WmhXFxI1zjzpjVWLhSGlvmWM+aeiE/aFR6u3n uWBOWNlbH8+hQEGEaivd3BbCg1KZBiyppBno2bHe2Fy+Hypw/fL/jKTcL9uYsWIrJhEh r/6vxzxrYBkPcRb23vWLdcD7Eqi9kGNTkHSgmloZgXTR7GR3LuOpimfPAAGv6/4BnB1u 3sWA== X-Forwarded-Encrypted: i=1; AJvYcCXFsTFpUhoRxClJdclWGyW0rOWWyCIdUI2TsA8Aw0khOmAo/nIkVMETdKBiAKKbUlART1togjf1d9o/BRA=@vger.kernel.org X-Gm-Message-State: AOJu0YxJoK/ck5PZMiUlE6LI0/F5EfVWlWO2rj/1SQAaS6QtTP/VJzUW AqWlzT5c4kNyYS9cgpVAWRXqAiwS9XHaXNV+fl6phweXhYmgQgc3v5E8 X-Gm-Gg: ASbGncs7QoyMk4KlUX+YY6AXhm5MDSe1W7MLM/HIpsRi0UQStwQPyrtP6hu8CMgoxnN C18cslDW0g26Tsze/HTYiMbOMWANxnEVhMuN6hMhUrpQG6psbD8uLAKIhQ+PSuTwJ5o8iVzg00p B08hL/nHO3RgyFkEGjkyrkmW3N89MNQjHNyWupK6ZYS+B4+vbH9b68PVdlBvC6MVZGpLEWM3dwq k+z17OS6Ls0zXOpOd/PDuCt14loP5aUbfTIFzgA3APG2QNYsmmteBt21dPzxf1HddAe3+vjIeAj s/mydFtAVYOdTpzzXpvAGCfvqiy/xvZQdpFnLZP/znGE5TftpR9C8x7D+JyLTBEH7gFLtq1MJDq DymOHRsfUsrq5u4x5gVu9t6MFexFwmwKZICsFayrZxMVXDsfY6VwYA5PeX6vld1qTkCT6Zg== X-Google-Smtp-Source: AGHT+IH+0QfjZBw1sWNIlTTbH1LlvraSWUBJu/TmQUXItAjl9hQUPyPKxxy1pqyLmhU5s/uWuaOPiQ== X-Received: by 2002:a05:6512:e98:b0:595:91dc:72a5 with SMTP id 2adb3069b0e04-596a3eefdffmr3405623e87.40.1763943807138; Sun, 23 Nov 2025 16:23:27 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-5969dbd095dsm3708266e87.97.2025.11.23.16.23.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Nov 2025 16:23:26 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Mon, 24 Nov 2025 01:23:24 +0100 Subject: [PATCH v4 4/4] RISC-V: fix gcc + rust builds Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251124-gcc-rust-v4-v4-4-4e06e07421ae@gmail.com> References: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> In-Reply-To: <20251124-gcc-rust-v4-v4-0-4e06e07421ae@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Jonathan Corbet , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Han Gao , Jason Montleon , Conor Dooley Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, Asuna Yang X-Mailer: b4 0.14.3 Commit 33549fcf37ec ("RISC-V: disallow gcc + rust builds") disabled GCC + Rust builds for RISC-V due to differences in extension handling compared to LLVM. Add `rust-bindgen-option` conditions for the availability of libclang to the RISC-V extension Kconfig symbols that depend on the `cc-option` function. For Zicsr/Zifencei special handling, since LLVM/Clang always enables these two extensions, either don't pass them to `-march`, or pass them explicitly and Rust bindgen libclang must recognize them. Clang does not support `-mno-riscv-attribute` flag, filter it out to resolve error: unknown argument: '-mno-riscv-attribute'. Define `BINDGEN_TARGET_riscv` to pass the target triplet to Rust bindgen libclang for RISC-V to resolve error: unsupported argument 'medany' to option '-mcmodel=3D' for target 'unknown'. Update the documentation, GCC + Rust builds for RISC-V are now supported. Signed-off-by: Asuna Yang Acked-by: Miguel Ojeda --- Documentation/rust/arch-support.rst | 2 +- arch/riscv/Kconfig | 35 +++++++++++++++++++++++++++++++++= +- rust/Makefile | 3 ++- scripts/Makefile.rust | 1 + 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Documentation/rust/arch-support.rst b/Documentation/rust/arch-= support.rst index 6e6a515d0899..5282e0e174e8 100644 --- a/Documentation/rust/arch-support.rst +++ b/Documentation/rust/arch-support.rst @@ -18,7 +18,7 @@ Architecture Level of support Constraints ``arm`` Maintained ARMv7 Little Endian only. ``arm64`` Maintained Little Endian only. ``loongarch`` Maintained \- -``riscv`` Maintained ``riscv64`` and LLVM/Clang only. +``riscv`` Maintained ``riscv64`` only. ``um`` Maintained \- ``x86`` Maintained ``x86_64`` only. =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=3D diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index fadec20b87a8..e3ea132191d1 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -193,7 +193,7 @@ config RISCV select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RETHOOK if !XIP_KERNEL select HAVE_RSEQ - select HAVE_RUST if RUSTC_SUPPORTS_RISCV && CC_IS_CLANG + select HAVE_RUST if RUSTC_SUPPORTS_RISCV && TOOLCHAIN_MATCHES_ZICSR_ZIFEN= CEI select HAVE_SAMPLE_FTRACE_DIRECT select HAVE_SAMPLE_FTRACE_DIRECT_MULTI select HAVE_STACKPROTECTOR @@ -617,6 +617,8 @@ config TOOLCHAIN_HAS_V depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32imv) depends on LD_IS_LLD || LD_VERSION >=3D 23800 depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64imv) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32imv) =20 config RISCV_ISA_V bool "Vector extension support" @@ -681,6 +683,8 @@ config TOOLCHAIN_HAS_ZABHA depends on !64BIT || $(cc-option,-mabi=3Dlp64 -march=3Drv64ima_zabha) depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zabha) depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zabha) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zabha) =20 config RISCV_ISA_ZABHA bool "Zabha extension support for atomic byte/halfword operations" @@ -699,6 +703,8 @@ config TOOLCHAIN_HAS_ZACAS depends on !64BIT || $(cc-option,-mabi=3Dlp64 -march=3Drv64ima_zacas) depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zacas) depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zacas) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zacas) =20 config RISCV_ISA_ZACAS bool "Zacas extension support for atomic CAS" @@ -717,6 +723,8 @@ config TOOLCHAIN_HAS_ZBB depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zbb) depends on LD_IS_LLD || LD_VERSION >=3D 23900 depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zbb) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zbb) =20 # This symbol indicates that the toolchain supports all v1.0 vector crypto # extensions, including Zvk*, Zvbb, and Zvbc. LLVM added all of these at = once. @@ -732,6 +740,8 @@ config TOOLCHAIN_HAS_ZBA depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zba) depends on LD_IS_LLD || LD_VERSION >=3D 23900 depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zba) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zba) =20 config RISCV_ISA_ZBA bool "Zba extension support for bit manipulation instructions" @@ -767,6 +777,8 @@ config TOOLCHAIN_HAS_ZBC depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zbc) depends on LD_IS_LLD || LD_VERSION >=3D 23900 depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zbc) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zbc) =20 config RISCV_ISA_ZBC bool "Zbc extension support for carry-less multiplication instructions" @@ -790,6 +802,8 @@ config TOOLCHAIN_HAS_ZBKB depends on !32BIT || $(cc-option,-mabi=3Dilp32 -march=3Drv32ima_zbkb) depends on LD_IS_LLD || LD_VERSION >=3D 23900 depends on AS_HAS_OPTION_ARCH + depends on !RUST || !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -marc= h=3Drv64ima_zbkb) + depends on !RUST || !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -mar= ch=3Drv32ima_zbkb) =20 config RISCV_ISA_ZBKB bool "Zbkb extension support for bit manipulation instructions" @@ -877,6 +891,25 @@ config TOOLCHAIN_NEEDS_OLD_ISA_SPEC versions of clang and GCC to be passed to GAS, which has the same result as passing zicsr and zifencei to -march. =20 +config RUST_BINDGEN_HAS_ZICSR_ZIFENCEI + def_bool y + depends on !64BIT || $(rust-bindgen-option,-- -mabi=3Dlp64 -march=3Drv64i= ma_zicsr_zifencei) + depends on !32BIT || $(rust-bindgen-option,-- -mabi=3Dilp32 -march=3Drv32= ima_zicsr_zifencei) + +config TOOLCHAIN_MATCHES_ZICSR_ZIFENCEI + def_bool y + # https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d449= 8694e15bf8a16 + depends on TOOLCHAIN_NEEDS_OLD_ISA_SPEC || !TOOLCHAIN_NEEDS_EXPLICIT_ZICS= R_ZIFENCEI || RUST_BINDGEN_HAS_ZICSR_ZIFENCEI + help + LLVM/Clang >=3D 17.0.0 starts recognizing Zicsr/Zifencei in -march, pas= sing + them to -march doesn't generate an error anymore, and passing them or n= ot + doesn't have any real difference, it still follows ISA before version + 20190608 - Zicsr/Zifencei are included in base ISA. + + The current latest version of LLVM/Clang still does not require explicit + Zicsr/Zifencei to enable these two extensions, Clang just accepts them = in + -march and then silently ignores them. + config FPU bool "FPU support" default y diff --git a/rust/Makefile b/rust/Makefile index ae7cbbd89da3..1f209e6025e4 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -298,7 +298,8 @@ bindgen_skip_c_flags :=3D -mno-fp-ret-in-387 -mpreferre= d-stack-boundary=3D% \ -fno-inline-functions-called-once -fsanitize=3Dbounds-strict \ -fstrict-flex-arrays=3D% -fmin-function-alignment=3D% \ -fzero-init-padding-bits=3D% -mno-fdpic \ - --param=3D% --param asan-% -fno-isolate-erroneous-paths-dereference + --param=3D% --param asan-% -fno-isolate-erroneous-paths-dereference \ + -mno-riscv-attribute =20 # All warnings are inhibited since GCC builds are very experimental, # many GCC warnings are not supported by Clang, they may only appear in diff --git a/scripts/Makefile.rust b/scripts/Makefile.rust index b219244cd051..cee28a604830 100644 --- a/scripts/Makefile.rust +++ b/scripts/Makefile.rust @@ -3,6 +3,7 @@ BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu BINDGEN_TARGET_arm :=3D arm-linux-gnueabi BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf +BINDGEN_TARGET_riscv :=3D riscv64-linux-gnu BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) =20 --=20 2.51.1