Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: Add Rust for Linux #2851

Merged
merged 1 commit into from
Sep 19, 2024
Merged

ci: Add Rust for Linux #2851

merged 1 commit into from
Sep 19, 2024

Commits on Jun 19, 2024

  1. ci: Add Rust for Linux

    Rust for Linux, so far, has pinned the Rust compiler and `bindgen`
    versions. The kernel is looking into expanding that support to several
    versions, i.e. establishing a minimum supported version, so that the
    kernel can start to be more easily built. In particular, it should be
    possible to build the kernel using the tools provided directly by Linux
    distributions. In order to help achieve that goal, the Rust project has
    added the kernel to its Rust pre-merge CI.
    
    This commit does the same for `bindgen`. In particular, it adds a quick,
    build-only test of the Rust code in the kernel as an extra step in the
    `test` workflow.
    
    This is intended to be an end-to-end test that runs what kernel
    developers/users would do. In particular, it is useful to catch certain
    issues that go beyond the C header comparisons. For instance, it would
    have been able to catch an issue like the `--version` option unexpectedly
    requiring a header in 0.69.0 (fixed in 0.69.1) [1].
    
    It would also have detected another issue present in 0.66.0 and 0.66.1:
    a panic handling certain C headers with string literals containing
    an interior NUL [2]. While the kernel is not really a stable test,
    and such an issue would still require that a proper test is added,
    it is nevertheless a good test case of non-trivial C headers that may
    trigger edge cases like that.
    
    Of course, `bindgen` may need to disable the test for different reasons,
    i.e. there is no expectation to block any urgent/important PR, and the
    kernel can also call `bindgen` differently depending on the version,
    i.e. we are happy to adjust on our side too. Even if it gets disabled
    often, we would still be in a better situation than not having the test
    at all.
    
    The Linux version (hash or tag) should ideally be updated from time to
    time (e.g. every kernel `-rc1`), and each update should only contain
    that change.
    
    Link: rust-lang#2678 [1]
    Link: rust-lang#2567 [2]
    Signed-off-by: Miguel Ojeda <[email protected]>
    ojeda committed Jun 19, 2024
    Configuration menu
    Copy the full SHA
    61ddde7 View commit details
    Browse the repository at this point in the history