summaryrefslogtreecommitdiff
path: root/scripts/rustc-llvm-version.sh
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-10-19 08:32:47 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2024-10-19 08:32:47 -0700
commit4e6bd4a33a6cf4d2dce9725630ada847a3947c7c (patch)
tree2533733c6a052d20026140dc93df7e7f4e630911 /scripts/rustc-llvm-version.sh
parent3d5ad2d4eca337e80f38df77de89614aa5aaceb9 (diff)
parent8b8ca9c25fe69c2162e3235c7d6c341127abeed6 (diff)
downloadlinux-4e6bd4a33a6cf4d2dce9725630ada847a3947c7c.tar.gz
linux-4e6bd4a33a6cf4d2dce9725630ada847a3947c7c.tar.bz2
linux-4e6bd4a33a6cf4d2dce9725630ada847a3947c7c.zip
Merge tag 'rust-fixes-6.12-2' of https://github.com/Rust-for-Linux/linux
Pull rust fixes from Miguel Ojeda: "Toolchain and infrastructure: - Fix several issues with the 'rustc-option' macro. It includes a refactor from Masahiro of three '{cc,rust}-*' macros, which is not a fix but avoids repeating the same commands (which would be several lines in the case of 'rustc-option'). - Fix conditions for 'CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS'. It includes the addition of 'CONFIG_RUSTC_LLVM_VERSION', which is not a fix but is needed for the actual fix. And a trivial grammar fix" * tag 'rust-fixes-6.12-2' of https://github.com/Rust-for-Linux/linux: cfi: fix conditions for HAVE_CFI_ICALL_NORMALIZE_INTEGERS kbuild: rust: add `CONFIG_RUSTC_LLVM_VERSION` kbuild: fix issues with rustc-option kbuild: refactor cc-option-yn, cc-disable-warning, rust-option-yn macros lib/Kconfig.debug: fix grammar in RUST_BUILD_ASSERT_ALLOW
Diffstat (limited to 'scripts/rustc-llvm-version.sh')
-rwxr-xr-xscripts/rustc-llvm-version.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/rustc-llvm-version.sh b/scripts/rustc-llvm-version.sh
new file mode 100755
index 000000000000..b6063cbe5bdc
--- /dev/null
+++ b/scripts/rustc-llvm-version.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+#
+# Usage: $ ./rustc-llvm-version.sh rustc
+#
+# Print the LLVM version that the Rust compiler uses in a 6 digit form.
+
+# Convert the version string x.y.z to a canonical up-to-6-digits form.
+get_canonical_version()
+{
+ IFS=.
+ set -- $1
+ echo $((10000 * $1 + 100 * $2 + $3))
+}
+
+if output=$("$@" --version --verbose 2>/dev/null | grep LLVM); then
+ set -- $output
+ get_canonical_version $3
+else
+ echo 0
+ exit 1
+fi