lkml.org 
[lkml]   [2022]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v9 21/27] scripts: add `is_rust_module.sh`
    Date
    From: Daniel Xu <dxu@dxuuu.xyz>

    This script is used to detect whether a kernel module is written
    in Rust.

    It will later be used to disable BTF generation on Rust modules as
    BTF does not yet support Rust.

    Co-developed-by: Alex Gaynor <alex.gaynor@gmail.com>
    Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com>
    Co-developed-by: Wedson Almeida Filho <wedsonaf@google.com>
    Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com>
    Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
    Co-developed-by: Miguel Ojeda <ojeda@kernel.org>
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
    ---
    scripts/is_rust_module.sh | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)
    create mode 100755 scripts/is_rust_module.sh

    diff --git a/scripts/is_rust_module.sh b/scripts/is_rust_module.sh
    new file mode 100755
    index 000000000000..28b3831a7593
    --- /dev/null
    +++ b/scripts/is_rust_module.sh
    @@ -0,0 +1,16 @@
    +#!/bin/sh
    +# SPDX-License-Identifier: GPL-2.0
    +#
    +# is_rust_module.sh module.ko
    +#
    +# Returns `0` if `module.ko` is a Rust module, `1` otherwise.
    +
    +set -e
    +
    +# Using the `16_` prefix ensures other symbols with the same substring
    +# are not picked up (even if it would be unlikely). The last part is
    +# used just in case LLVM decides to use the `.` suffix.
    +#
    +# In the future, checking for the `.comment` section may be another
    +# option, see https://github.com/rust-lang/rust/pull/97550.
    +${NM} "$*" | grep -qE '^[0-9a-fA-F]+ r _R[^[:space:]]+16___IS_RUST_MODULE[^[:space:]]*$'
    --
    2.37.1
    \
     
     \ /
      Last update: 2022-08-05 17:48    [W:6.660 / U:1.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site