From nobody Fri Dec 19 18:52:15 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 8560330F95A for ; Thu, 4 Dec 2025 07:55:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; cv=none; b=r24x4uUp79JzPQr7SlMTV6iz89Drykn5oIWyJDCEjoAgeGA4+gzwbo3DZitzlHFzXEfJ+u2W1mjZ3wap8DOrSkc1Y3o2LfuZdDXd9FPLXDXJKTY95mDFZ/jD2bIOcV1l/MmkaqRrhHhbmscXb5c6/9mrEXa7OE1Vx8SCb7wHmus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; c=relaxed/simple; bh=djzz99/Nqr+mam54feyNiv1NIFjqDBU6RJYwqgkk4Jc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pb+GkhG5Z3vJKK+xw8D8vHwVnrs0C0TR7/fvnU3Okgib2SQdgNwkTTCoX0TyPEF4oaiOUfGBWIZNx8ypfBav/rF4l50npxUWGAX5sbWtiKF9W6C5tJyDf94Jj/JwpKv/APg9VWh+/6fjTvvlbJGtmzbgyArvOPNsTCXv6do1qv8= 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=gMmZMkhV; arc=none smtp.client-ip=209.85.167.47 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="gMmZMkhV" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-597d712c0a7so362385e87.0 for ; Wed, 03 Dec 2025 23:55:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764834920; x=1765439720; 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=Z9GtPr5taZTAzyn89OMPpDe+uAgwZM83gWeHrAtje3E=; b=gMmZMkhV3vs3n0FzsHdafB2Msqyg9ZJ0fYcxNrh6CCd1JJO0wmLYPlkeHxCrOESGxj gpYHcTzstePF3OyQBeLzh4J8xUrUtRPRBHtgbH3q+h0joO1xUGRu8lUbJ2M22LmvojSL Ma9n2w0UdDeDTbZSbSQkxtsJINRMCa3EVdLaEVLdKQJw0ioTg0iWrTJn/Z7QfTRBqXn0 8v3aZXApN6JlkNOJ7djlKftiv45U44scS6biKtYhhb6XGb78XeUyiRBvaDPbOEFdx6oh RzixmN6xb/NLTtm4EG8XXxjY32pzmbDJixcaHmRQ3Ta6lvJ0vQmmESwlTlIB2hwRGH6f Y0Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764834920; x=1765439720; 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=Z9GtPr5taZTAzyn89OMPpDe+uAgwZM83gWeHrAtje3E=; b=kl0hW3wAw6DrBwd/mEq19S6RvJMHCkq5PTFvSaHss8r5PdQRtRHHqCxlcRpff4/fbe VqFlUZzwjV6qZPqkR8UPGrUkCacejQ9q+ilQCCCkboBeLFqiZ3T5UEyyCk/MR/Rr4uvd 8DdAJz0RJZk/8SZIUEEDgCkke+dh+NzAhpWm2UMl9SxoOZ+6xBaBhZ09wk4YEXwVGwKO rr4ahs7o5V00i2b2spqPiki1JuQC3eT/VW4VBqjgF6AK3qGJdtJFC5fYGrUVbvGSfuxx 82G+Y0vNWoaDgKCEF9tOhvm4xaZ2oOBgOFNaASMWXbz/aQohIwA8w/lNTd+b2HZdoeAI WjxQ== X-Forwarded-Encrypted: i=1; AJvYcCVteUoieijhb8q/uhI4E8+M2Hqs2hXTME3Vm+S/AFoJLpEZMDzIA2SRHWJ80DFnwgNkz+qIA//n7JtJNno=@vger.kernel.org X-Gm-Message-State: AOJu0YzJ9XExAh522X2eJ0n2bNPe6zdxYX/0l/8lhh+8B5MxrPe6haqO MMrDu8rAWDbBmB5W+rIlQGypBQmiRtW84HIg5Cj5ZLhSKqiN0BMg1pNm X-Gm-Gg: ASbGncszf9onva80tiGdUfJXhHzwPZukIRosJUzLMukDFn2mGThMvyS8rM8bMqP25kB GCPF7NVdvpewhQwPr9O0pagwVvIc5GCfJdwsXPj4FYwIyEA1KE6WKwDHXUPjhzVBOvfWr+wr6WJ hg5KNpo5v8D5WnKWE+zx4vG9CuPRmYeakvP6UyKnfXAX1E6c+6Ktdpkx2kLfe90C7YSYnHFEkUt MScaZZAUBe4qONpnT9GWlks98O8V/jv0toAesv3O0QKhbXEy6cnIl18eDl9HkdHGWoI5tHruI8l sI/qkPSH3C8EXFluUK38gFtoKPqngKUjhe7b1ULX2oeegB3DEay8x/4l2iJqp8438bnf/xTpgjX klDiw7oonRRCCucSgJbs0kkqVYkOMQKk8CyvU78qf54tCeO5O230Hxlc3KUv/KEDRGBdUEQ== X-Google-Smtp-Source: AGHT+IEldMEBa+Y+2+8e9BBmMa+iraf8wmEl/ZT2sdU4A9p2jyG2tZG76w7egCqyyaaevWjMOuPaow== X-Received: by 2002:a05:6512:3c9c:b0:595:9d6b:1175 with SMTP id 2adb3069b0e04-597d3f27914mr1982243e87.14.1764834919940; Wed, 03 Dec 2025 23:55:19 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-597d7c28019sm239190e87.69.2025.12.03.23.55.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Dec 2025 23:55:19 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Thu, 04 Dec 2025 08:54:51 +0100 Subject: [PATCH v5 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: <20251204-gcc-rust-v5-v5-1-2d4f20d86c24@gmail.com> References: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> In-Reply-To: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Jonathan Corbet , Jason Montleon , Han Gao , Conor Dooley , Vivian Wang Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org, Asuna Yang , Asuna Yang X-Mailer: b4 0.14.3 From: Asuna Yang A subsequent commit will add a new function `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`. Therefore, move this variable to a separate new `Makefile.rust` file and include it from `scripts/Makefile` to make the exported variable available for use in Kconfig. Place the include in the `need-compiler` branch to avoid including it in irrelevant make targets. Since the new file name is `Makefile.rust`, it matches an existing MAINTAINERS rule `scripts/*rust*`, so no modification to the MAINTAINERS file is needed. Signed-off-by: Asuna Yang --- Makefile | 3 ++- rust/Makefile | 8 -------- scripts/Makefile.rust | 9 +++++++++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index e61f1300fea0..bdbf2025e68c 100644 --- a/Makefile +++ b/Makefile @@ -718,9 +718,10 @@ ifneq ($(findstring clang,$(CC_VERSION_TEXT)),) include $(srctree)/scripts/Makefile.clang endif =20 +ifdef need-compiler +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 include $(srctree)/scripts/Makefile.compiler endif =20 diff --git a/rust/Makefile b/rust/Makefile index 5d357dce1704..2603b34f9833 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -385,14 +385,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 Fri Dec 19 18:52:15 2025 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (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 3AAE13101B5 for ; Thu, 4 Dec 2025 07:55:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; cv=none; b=gMM0BdGxGK39Qy1TMSOCu/k0/7AXIctiXdLdjmZBWWYeJ7vNqwo47T5xh/4p6ZfhTLX9dejHUOgfdVMx1t+Ioq+xKapTk6Mw0qeuT73GUwakwOkqY+hk/SA4KvZ9QtEpU/rYODj5VU9EvK10vbkttsZ77SxMPnpBh6hEm+tOeP4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; c=relaxed/simple; bh=gAqTIa/FjG6cAUC+EuJL20860zY+3jWZZY86tAyZUAc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J/+ojuSwwA+2MjzFnU646ZvueYkj936MB7WPpOpzp0d2GNqErIJR9gExxLWEWCEozoP1I4QH97Amn8m0iOEBvj+RNRmxDsDqjbnVtBQSh3YP1UheNh6eb44V0tNLQPWDDiWjgrvClW/ZpT1wYHMm0cHEYkSCkIcOQlyE8rnHZ74= 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=EjEBQjxO; arc=none smtp.client-ip=209.85.167.53 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="EjEBQjxO" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-59578e38613so600371e87.2 for ; Wed, 03 Dec 2025 23:55:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764834921; x=1765439721; 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=FZiwTIA7+3bk0rVcoIpmE4cdhNIriz9fkqfbHGGu2Q8=; b=EjEBQjxOlXOY42LENED3rHo6KrTi3dKuZHtKdl7RHAbEBSVNxco28Ye7K22DbNq3Wx Z4X73LpdkpC0vZtVHOg94Ya0qGfmy1oJCzrmbmuACyTM15nonk66hL3eax2HW3xjtfQb oJDWWuVtVQ0caVp8UPFbe/9RQCwXX0PjXqKtTjQ4QNdJ4OlwSRsQBl2/x/xXEAvYOPkX ubQv/p0W0Bl0lcPpe0umiGlSNgaI9oJb2jfTHUYzFeDd4YLv+BLk3u0Q9uODhE2xb+Pd Jk4lxm0RJMpD1e62UHniX/4cI7NE6mBaPDo5vlf7vFpVD7LNv/Bu9Z+UhGpBkaqoJTPr hUfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764834921; x=1765439721; 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=FZiwTIA7+3bk0rVcoIpmE4cdhNIriz9fkqfbHGGu2Q8=; b=c5y2E9g3elAYUGkTOv5ppqVzsja7uk0aoGRqzObQPIndDLbYvaXdCZDMJ2O0astqCH waq/RhdoNHQcVpx8FgX7UcFPDSgXJ+I+HP2kz8IOOWWmyXW4YwcIayvKyF030nQAF/T6 r/rvlqisBq/QZriz+NuszFwdlmn1Oha6lJkJHFGO7URJaf1gI5yqdTrvDDl/jQ7Wum6+ xXtH5PdVsFUHZpqolGqrkO+e5VXnuj2BLCb4H8SZVtZg0tfhhIRaX7Ckbu3843mOHaUz /0Z9WEEGxRWHv+25j5wgLSPJskP6JheTE60cB4TjMPeCUZ99313VwFP9U3Vjk3HQzkVI N9zw== X-Forwarded-Encrypted: i=1; AJvYcCWoRUNG9vExrsUevWmw5SBSP+CjpQTMT36M2smgT7vYuI6FB7USX0cnNQZEj8gdYXH1rdaBsn+el423n04=@vger.kernel.org X-Gm-Message-State: AOJu0YwOSraf9kqw2IhQ8NMdxTkb5F1W765g+UytYolk7CbvUdydzx5U W6SbafjTStCFmXlNHiO/9IVoBVvPmY0I1Z/I+B9nEA3pJXZVvScpcLiQ X-Gm-Gg: ASbGncttZKKaKH8+HBC+A8WO/1iwLzXqaq+AmxcAMPSJK+g+olNB5WUyDpkyMga3Umh iXtBEQYq0A3wSYlLNbqRGxPczoD2RI+5er+AEBl6/ur6cpJ/SRanuQbjYfI1FKNd8zVGSH5omJ5 rxrw+eYYwdJ/dnuKJRjhEZUfnB2bvfbUVhNxN704kFdY11f7S6RvZtJm1bmXvsIxrLnnK3FKQbT bCpdGPR8yUe/t2WA0PmGrLquDE/b6nC5BnUYxJ03z8BtS/XfdxFYcBUwrizb6BggpLuo5rajDFy TfqASPKvUwE+rmNa8ptLc1LYMNg/ozffSnvOKSU5hUvLM6xPi5RUP9DAH7VdxWpknHykN7KhBRf CIeQRIyXeCD5MtCkn3gVw8yxUg8XZXQ2EuRrwBDKWVW6QQpZx84DH9/pLDiN22sf2W/nPLg== X-Google-Smtp-Source: AGHT+IGspx1iBq0l/KYW0BPXnBTjQSmqu1QYrFO2QolLF61uEAVSaqBKv7zpWcBgOHbRwa9f2MaI2A== X-Received: by 2002:a05:6512:684:b0:55f:4f1f:93fa with SMTP id 2adb3069b0e04-597d66f8a45mr630014e87.42.1764834920536; Wed, 03 Dec 2025 23:55:20 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-597d7c28019sm239190e87.69.2025.12.03.23.55.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Dec 2025 23:55:20 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Thu, 04 Dec 2025 08:54:52 +0100 Subject: [PATCH v5 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: <20251204-gcc-rust-v5-v5-2-2d4f20d86c24@gmail.com> References: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> In-Reply-To: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Jonathan Corbet , Jason Montleon , Han Gao , Conor Dooley , Vivian Wang Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org, Asuna Yang , Asuna Yang X-Mailer: b4 0.14.3 From: Asuna Yang 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`. Before this commit, error messages might look like: error: unknown argument: '-mno-riscv-attribute' error: unsupported argument 'medany' to option '-mcmodel=3D' for target 'unknown' error: unsupported option '-march=3D' for target '' error: unsupported option '-mno-save-restore' for target '' error: unknown target triple 'unknown' panicked at bindgen/ir/context.rs:562:15: libclang error; possible causes include: - Invalid flag syntax - Unrecognized flags - Invalid flag arguments - File I/O errors - Host vs. target architecture mismatch Acked-by: Miguel Ojeda Signed-off-by: Asuna Yang --- 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 Fri Dec 19 18:52:15 2025 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (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 D583D3115A2 for ; Thu, 4 Dec 2025 07:55:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; cv=none; b=CgvxJ77C7V82ZGPwBNbWDOmvtF2qyxXS2jnTHDte0FH2m2n/u/ZlXQ0rrABBxwxyQ7NiffX+qQ957BArRZdMceEECRPzx8yvTLwUtQkyhsgSmzgvUFNQwO3SBKrrdZy95f1/nPEeqt5Qw1F8wCCNjX+oKZme+UY7V1Y5SgJCScc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834926; c=relaxed/simple; bh=iTlPMjznJPbXtJOmJD38qd13ozQfx2VEj/0hkHnAJ+8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q2zYjno80dto1zaUEr1l69pIER5c30zIqFiat1+l0gHvYLJ0AtK1XcPE5EYjbNK/fEfUio2jSEik1Of/lsUlx09bvs3p3J7pPJRbJk/A2r/iYdfhNdGBKbJVUZbdk7Dm15jfIVIi9t50yAFUoQBQHx4qLMUSTkNzhkf7ZnGfHdA= 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=WVBfDhLn; arc=none smtp.client-ip=209.85.167.53 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="WVBfDhLn" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-59581e32163so675141e87.1 for ; Wed, 03 Dec 2025 23:55:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764834921; x=1765439721; 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=l5CWhh0bivbAxLbPHjrdPNLbMwbFtGK6KhcOChIXS0I=; b=WVBfDhLnXSfCvsS1SAxp6E/otJpTNFOuveXhI8D1iYshreuNdrS800sKYNJDTC30Vq gHAZ3pZV73fhL5jPH9kw8tCcTKUBye+e5Qvud5yZg0RmDPogngx5ojRvjKZdGpeApKyw L7FQismbl6mDqUvAgJ8cMg4UbxBZkKKzmLZ4jB+wcxR+RrpVfSG8Bebjvt+b1UBzSrHt HbYJGJphm/RpRTx5PrPBcw9pRUmHd9AVwQ7FkkkS3dxlT2Yge9cLDyLPCJt8pNraUeh0 JsqAH21FDLra4YgzdM4mT8RSQKqdjikS2FcYhO+iN605wlJkPNlWoIMYHvTAF0W6YPTW xrvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764834921; x=1765439721; 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=l5CWhh0bivbAxLbPHjrdPNLbMwbFtGK6KhcOChIXS0I=; b=h9zcc4Ntgdo+W6TPhoxvftUMsfs5XrE0Pni6F7XwZA0txVL3T+gD5YntDsMapgCTHn bt8WbBPhSSPj8vCaFlbxoRHAuYwLOBc10VEKt+C8RZepnzzdVNDM1DIw1Ca22ox3PR9b N6qEUkrUj+A1jBOXAjgUo3Zafd8IWb+rfgklJ+8DR2ZRMyQ5GTpMSWfxojR9ddd8gn8M IWrPNQOKJZ8twsqy9a+AOzRM2ARS22pxYUX/SxTAessgouTMtfTwTtJvV2k+ke1Zn/dv boe2imLUuM2cR68xltISVaFZyWTl3szJxydqtsLSoFKzgW1DO65ZipO1NE5RiplIY5jJ 185A== X-Forwarded-Encrypted: i=1; AJvYcCWD9cT4YjhdICH9YY3O+a+B3E89VgZ39HZsNg6tzkak/icwWi+e/xJN5r0gVQyqdF2UcPmZ0elqMrZuNrE=@vger.kernel.org X-Gm-Message-State: AOJu0YzFZatxJat5MSCQYUcmv/EhUGQzAW/HdRrCHWIjvPr9xDn2hbBJ Ztoz4A2er1IVMSFR/s/PLhCQZx3pB7oR9exP3aoPy7Nfg0PV1T13PZ6x X-Gm-Gg: ASbGnct15LatHkaSkz1ksjSZYi9ckdx7vCtqDCWIH0ZnbofrCFKbwK5kdn3GdXXZPKI H8YpcPjkPGpJphN/diM2fXqNfp9xKRWmz6oVqaIs/LKmQQveEE8PY0YDoNUWMdUDO79mhjLTL51 Tb8APtnslFjdvj1WFHSXueoK0rpGAAHyclOsphontkFvpNKUoZFSED+k/s7tbAb9+Ymo0gUe5Uk sOwJmhfHbyB+Oc6tmmJ7BWKlbZerQ39X+NI2h4fZO9RnyNWRekiBMBN8U4InJeGQxj7047NfSyz l0sLz+65WnKlLE5OcvDRk8f1bZvgjq11dApzFvasNh1NZdo8ZmUdJaGARoOV/iTA0Rb9kAiJ08Y 3hIJkxBwu32jCsY1/hPVy9HshkP7O4+OprQo8KnGRGiEBzzy7oki8c/j0j9dF8BvjsOXC/A== X-Google-Smtp-Source: AGHT+IHtNtKovriM8w2pLkDHwyMQApqeD8GW60UnConeyFy7gFY99L8zBySpoiS8naABTGPgdJC9Sw== X-Received: by 2002:a05:6512:159b:b0:592:f521:188a with SMTP id 2adb3069b0e04-597d6709d9emr571551e87.49.1764834921103; Wed, 03 Dec 2025 23:55:21 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-597d7c28019sm239190e87.69.2025.12.03.23.55.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Dec 2025 23:55:20 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Thu, 04 Dec 2025 08:54:53 +0100 Subject: [PATCH v5 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: <20251204-gcc-rust-v5-v5-3-2d4f20d86c24@gmail.com> References: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> In-Reply-To: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Jonathan Corbet , Jason Montleon , Han Gao , Conor Dooley , Vivian Wang Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org, Asuna Yang , Asuna Yang X-Mailer: b4 0.14.3 From: Asuna Yang Add a new `bindgen-backend-option` Kconfig function to test whether the bindgen backend supports a given flag. A subsequent commit will use this function to test for RISC-V extension flags. 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 d42042b6c9e2..5d4d29eed0b3 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include @@ -78,3 +78,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) + +# $(bindgen-backend-option,) +# Return y if bindgen backend supports , n otherwise +# For now, the backend refers only to libclang, so more specifically, this= function tests whether the given flag is recognized by the libclang used b= y bindgen. +bindgen-backend-option =3D $(success,trap "rm -f .tmp_$$.h" EXIT; touch .t= mp_$$.h; $(BINDGEN) .tmp_$$.h -- --target=3D$(BINDGEN_TARGET) $(1)) --=20 2.51.1 From nobody Fri Dec 19 18:52:15 2025 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08A0D3126C7 for ; Thu, 4 Dec 2025 07:55:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834928; cv=none; b=aAqBFnwk0zQ5PWJkjx+2dAnvtEl474kUfLM18pGuC/vlmsAGAqQ3MZwajEb06hPCO88SoG3WK1NhKPSVsqoO4rYUM8z8X0iL6MhnxZglVN7GcLC1Y9mrA/ZybRcjfGaszVT8IvU2/dv0whdQefR8cTcxelWq93jM/bCdNAXnF6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764834928; c=relaxed/simple; bh=4okMZpRD6wIoEgayUCzJK//NuknOM3zeJimcoyL1Et0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QdyDaR3oUjB2OMojkVy3hCYFWtmmb13g/yhwtIu7kMnQ3SZfyns4T0WOQK3+A6kIso7tSACc+XcAL+Prguko3CaNc50pnr1ZpYl5T+OA41lYgos/oP7yzmVTo63m48EOSg+S47p9iYhhFaTTLKH6XdPMyj6INyTImFRJ2Td4pl0= 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=SJr8CLWE; arc=none smtp.client-ip=209.85.167.52 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="SJr8CLWE" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5958187fa55so453877e87.3 for ; Wed, 03 Dec 2025 23:55:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764834922; x=1765439722; 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=eFpDiwl5QELAGSjHLYwP943u+3dPXQammgNgy7agEDk=; b=SJr8CLWErM1posQcp+NTvd5G1XUTZ+TaE5CqKeatOM53LTkQ0OwjfgzB3dIGcPYRKk d/HtXzDRjFVdOFDqPavSW0YCqB6wvpdN6hC/1HQ3y+rN5Ms6VqemVjMrhuTvUDVg2Nd0 dKcV+4679vyL4VizLy/Sq6aJt2pYhcKIUq0s0U7+6UvOZaMod/EKi6fmCMHFTzpo2N30 Z2mbdqJdAhCIoIsavTtzY37zEogjte2sw33ChYill5XbfFPyKNX5YrOnF35S6+iZo3kO Az2wAqnnDaaM2pkDiePWYYgsBgt7yFhxzXH0+zf9HNnicpw443uwWDbNPqPQ8Y4Zodpc SnWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764834922; x=1765439722; 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=eFpDiwl5QELAGSjHLYwP943u+3dPXQammgNgy7agEDk=; b=G/k4uqkFP3meb0ZdxJ9TaWJlNII4otMI/1aa3V3gjf7Zl1dLkFZeMuy3bcPnsqXEaG otxcsgMuXB4gwTKNR9pa+5/+boDhC84sXCyp0IdObd1MPEs9s1zs9Gu4ENzDrezeFCGe /o26cMvUhPebRBf38e9KmOk8vBAIHr3686MMhMmXRjwmfLuiH8OR0u0g1g1bnHWwImWC k8wVwD6Havxff1+6/1zQ+kMi46wmrgmdDyNu90puA9UX1J/lLjbrP1ccm8TLRqCy2/XQ w6/bEF3ZnayvGICBaB2n1Ti7zCiBHmadqpM1l/1nf9Fn+XTWx4Jw5ZisgeXwIZgWrmvT rs9w== X-Forwarded-Encrypted: i=1; AJvYcCUU6bxx/rCzd4XccdxGFv95oMvGpT/dc3Bakvxgt55gBz/P17Ww6xYIjDoSwF6DiDgFvWrDShtWY7X+Ngs=@vger.kernel.org X-Gm-Message-State: AOJu0YxSbPYXmnUP6g8skCD884XhuJct4kCebecAX/X6C11GAtbcDShG phCrdrf+VLerWnRikVs14pP7GAdiKSHf0cc305RkhZ6n22tIFRnEeC2v X-Gm-Gg: ASbGncuXZfqzdENwz6bpJ7ebhysDpFv8anEMq5tpvHE3g2os87FaDt2u0CXV12a84gx sqVj73jQwAeVr6Lsc+1VxFj4TjW5/pHP282/Z0m+p0cJbW/MtCKCy0CusR19M25kQslGcOhJF36 gkIeVf0kL+0lXhYHoCqmhRwANKM9Vxb9tzaPeTTL6ZE/ig/0XJ26OzofBqFpdErfKu4D2vRMtUA 2PDX49b5zwD9cTeIg+22r0tTqtbsOc248e6BjcYs/vFejsAKHxvqYFBXt+teD2YKYmwB/izV5Ui 2+1fqXWCY1jkFfOim7OLAwEK6cThl9vfkxdNAMq6JfMsDpf/DBT/v3X2Bq72SCT/BtM8KTPAncb ee2sD0DN5Kdv4K4yuyJFVU2BmGlpHxg/8j/Vgwq29bwOJLjzjALYlkm7N0yWHIz4BGi5DvQ== X-Google-Smtp-Source: AGHT+IEhDlWE8of6FKJZTBdolMkdIJwrQS5sBkMxqZRx1jm7mgw1ED3Gz3nsCefElmIVs2UoNwo5Dg== X-Received: by 2002:a05:6512:3d87:b0:597:cf1d:bc77 with SMTP id 2adb3069b0e04-597d66c8085mr614377e87.29.1764834921676; Wed, 03 Dec 2025 23:55:21 -0800 (PST) Received: from minun.felixc.at ([2a01:4f9:6b:1cc4::2]) by smtp.googlemail.com with ESMTPSA id 2adb3069b0e04-597d7c28019sm239190e87.69.2025.12.03.23.55.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Dec 2025 23:55:21 -0800 (PST) From: Asuna Yang X-Google-Original-From: Asuna Yang Date: Thu, 04 Dec 2025 08:54:54 +0100 Subject: [PATCH v5 4/4] RISC-V: handle extension configs for bindgen, re-enable 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: <20251204-gcc-rust-v5-v5-4-2d4f20d86c24@gmail.com> References: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> In-Reply-To: <20251204-gcc-rust-v5-v5-0-2d4f20d86c24@gmail.com> To: Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Jonathan Corbet , Jason Montleon , Han Gao , Conor Dooley , Vivian Wang Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org, Asuna Yang , Asuna Yang X-Mailer: b4 0.14.3 From: Asuna Yang Commit 33549fcf37ec ("RISC-V: disallow gcc + rust builds") disabled GCC + Rust builds for RISC-V due to differences in extension handling compared to LLVM. This commit enables GCC + Rust builds again. Add `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 maintained. Acked-by: Miguel Ojeda Signed-off-by: Asuna Yang --- 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..9a5606396646 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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64imv) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zabha) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zacas) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zbb) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zba) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zbc) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -marc= h=3Drv64ima_zbkb) + depends on !RUST || !32BIT || $(bindgen-backend-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 || $(bindgen-backend-option,-mabi=3Dlp64 -march=3Drv64i= ma_zicsr_zifencei) + depends on !32BIT || $(bindgen-backend-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 2603b34f9833..079af058ddde 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -383,7 +383,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