From d276479ded54133efc4a12b271e0b3d57c258f5c Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Fri, 12 Dec 2025 13:00:49 -0800 Subject: [PATCH 1/5] ci: expand ci matrix to test more LLVM versions --- .github/workflows/build.yaml | 4 ++++ .github/workflows/codeql.yaml | 4 ++++ .github/workflows/docs.yaml | 4 ++++ .github/workflows/lint.yaml | 4 ++++ .github/workflows/local-development-makefile.yaml | 4 ++++ .github/workflows/test.yaml | 4 ++++ README.md | 1 + 7 files changed, 25 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6c1eecef7..3fc70fb02 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,6 +38,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 rust_toolchain: - stable diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 94895e404..c12e5ca31 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -30,6 +30,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 rust_toolchain: - stable diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index f009ca2a1..57b0c3841 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -36,6 +36,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 rust_toolchain: - stable diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 7ab7e4b39..929bde1a1 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -39,6 +39,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 rust_toolchain: - stable diff --git a/.github/workflows/local-development-makefile.yaml b/.github/workflows/local-development-makefile.yaml index 2eb97f882..dfcc8ba1a 100644 --- a/.github/workflows/local-development-makefile.yaml +++ b/.github/workflows/local-development-makefile.yaml @@ -36,6 +36,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 runs-on: ${{ matrix.runner.name }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0cd387ad5..47a373110 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -33,6 +33,10 @@ jobs: llvm: - 17.0.6 + - 18.1.8 + - 19.1.1 + - 20.1.0 + - 21.1.0 rust_toolchain: - stable diff --git a/README.md b/README.md index 0f336691e..6da43dc50 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ This project was built with support of WDM, KMDF, and UMDF drivers in mind, as w * Binding generation via `bindgen` requires `libclang`. The easiest way to acquire this is via `winget` * `winget install -i LLVM.LLVM --version 17.0.6 --force` + * See list of [tested/supported versions](https://github.com/microsoft/windows-drivers-rs/blob/main/.github/workflows/build.yaml#L39) in the [CI workflow]](./.github/workflows/build.yaml) * Ensure you select the GUI option to add LLVM to the PATH * LLVM 18 has a bug that causes bindings to fail to generate for ARM64. Continue using LLVM 17 until LLVM 19 comes out with [the fix](https://github.com/llvm/llvm-project/pull/93235). See [this](https://github.com/rust-lang/rust-bindgen/issues/2842) for more details. * To execute post-build tasks (ie. `inf2cat`, `infverif`, etc.), `cargo make` is used From 1db099ae828de9c55a5df45797764de7029a624e Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Fri, 12 Dec 2025 14:02:35 -0800 Subject: [PATCH 2/5] update versions to whats available on winget --- .github/workflows/build.yaml | 6 +++--- .github/workflows/codeql.yaml | 6 +++--- .github/workflows/docs.yaml | 6 +++--- .github/workflows/lint.yaml | 6 +++--- .github/workflows/local-development-makefile.yaml | 6 +++--- .github/workflows/test.yaml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3fc70fb02..47066f551 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -39,9 +39,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 rust_toolchain: - stable diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index c12e5ca31..440530fc5 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -31,9 +31,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 rust_toolchain: - stable diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 57b0c3841..396f6bab4 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -37,9 +37,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 rust_toolchain: - stable diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 929bde1a1..33ff965cd 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -40,9 +40,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 rust_toolchain: - stable diff --git a/.github/workflows/local-development-makefile.yaml b/.github/workflows/local-development-makefile.yaml index dfcc8ba1a..debdae673 100644 --- a/.github/workflows/local-development-makefile.yaml +++ b/.github/workflows/local-development-makefile.yaml @@ -37,9 +37,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 runs-on: ${{ matrix.runner.name }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 47a373110..293acebad 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -34,9 +34,9 @@ jobs: llvm: - 17.0.6 - 18.1.8 - - 19.1.1 - - 20.1.0 - - 21.1.0 + - 19.1.7 + - 20.1.8 + - 21.1.2 rust_toolchain: - stable From b70e6842e8772190e53c45d4c5c6d8f09d5666fb Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Fri, 12 Dec 2025 15:10:40 -0800 Subject: [PATCH 3/5] remove LLVM 18 due to ARM64 bug --- .github/workflows/build.yaml | 1 - .github/workflows/codeql.yaml | 1 - .github/workflows/docs.yaml | 1 - .github/workflows/lint.yaml | 1 - .github/workflows/local-development-makefile.yaml | 1 - .github/workflows/test.yaml | 1 - 6 files changed, 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 47066f551..21e379723 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,7 +38,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 440530fc5..7da62ecca 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -30,7 +30,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 396f6bab4..18a818cea 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -36,7 +36,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 33ff965cd..d607537ac 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -39,7 +39,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 diff --git a/.github/workflows/local-development-makefile.yaml b/.github/workflows/local-development-makefile.yaml index debdae673..b6cf77e79 100644 --- a/.github/workflows/local-development-makefile.yaml +++ b/.github/workflows/local-development-makefile.yaml @@ -36,7 +36,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 293acebad..4a10b59e5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -33,7 +33,6 @@ jobs: llvm: - 17.0.6 - - 18.1.8 - 19.1.7 - 20.1.8 - 21.1.2 From 208562dbef04ff9623af9f1541e4c9377b209ba8 Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Fri, 12 Dec 2025 16:32:14 -0800 Subject: [PATCH 4/5] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Melvin Wang --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6da43dc50..da81e02b7 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ This project was built with support of WDM, KMDF, and UMDF drivers in mind, as w * Binding generation via `bindgen` requires `libclang`. The easiest way to acquire this is via `winget` * `winget install -i LLVM.LLVM --version 17.0.6 --force` - * See list of [tested/supported versions](https://github.com/microsoft/windows-drivers-rs/blob/main/.github/workflows/build.yaml#L39) in the [CI workflow]](./.github/workflows/build.yaml) + * See list of [tested/supported versions](https://github.com/microsoft/windows-drivers-rs/blob/main/.github/workflows/build.yaml#L39) in the [CI workflow](./.github/workflows/build.yaml) * Ensure you select the GUI option to add LLVM to the PATH * LLVM 18 has a bug that causes bindings to fail to generate for ARM64. Continue using LLVM 17 until LLVM 19 comes out with [the fix](https://github.com/llvm/llvm-project/pull/93235). See [this](https://github.com/rust-lang/rust-bindgen/issues/2842) for more details. * To execute post-build tasks (ie. `inf2cat`, `infverif`, etc.), `cargo make` is used From 046442659daccb44cf2cb2f5250e36b3ed9b0f64 Mon Sep 17 00:00:00 2001 From: Melvin Wang Date: Thu, 29 Jan 2026 17:17:29 -0800 Subject: [PATCH 5/5] docs: update README.md to reflect changes in LLVM installation instructions --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index da81e02b7..3a6595b77 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,9 @@ This project was built with support of WDM, KMDF, and UMDF drivers in mind, as w ### Build Requirements * Binding generation via `bindgen` requires `libclang`. The easiest way to acquire this is via `winget` - * `winget install -i LLVM.LLVM --version 17.0.6 --force` - * See list of [tested/supported versions](https://github.com/microsoft/windows-drivers-rs/blob/main/.github/workflows/build.yaml#L39) in the [CI workflow](./.github/workflows/build.yaml) + * `winget install -i LLVM.LLVM` * Ensure you select the GUI option to add LLVM to the PATH - * LLVM 18 has a bug that causes bindings to fail to generate for ARM64. Continue using LLVM 17 until LLVM 19 comes out with [the fix](https://github.com/llvm/llvm-project/pull/93235). See [this](https://github.com/rust-lang/rust-bindgen/issues/2842) for more details. + * See list of [tested/supported versions](https://github.com/microsoft/windows-drivers-rs/blob/main/.github/workflows/build.yaml#L39) in the [CI workflow](./.github/workflows/build.yaml) * To execute post-build tasks (ie. `inf2cat`, `infverif`, etc.), `cargo make` is used * `cargo install --locked cargo-make --no-default-features --features tls-native`