Skip to content
This repository has been archived by the owner on Mar 7, 2021. It is now read-only.

Keep modinfo happy in newer kernels #230

Open
geofft opened this issue Aug 9, 2020 · 1 comment
Open

Keep modinfo happy in newer kernels #230

geofft opened this issue Aug 9, 2020 · 1 comment

Comments

@geofft
Copy link
Collaborator

geofft commented Aug 9, 2020

I see this warning:

WARNING: could not find /home/ubuntu/linux-kernel-module-rust/hello-world/.hello_world.rust.o.cmd for /home/ubuntu/linux-kernel-module-rust/hello-world/hello_world.rust.o

Looking around a bit, I see torvalds/linux@70f30cf, which I'm now worried about:

    Going forward, the missing *.symvers or *.cmd is a fatal error.
    This should not happen because scripts/Makefile.modpost guards the
    -i option files with $(wildcard $(input-symdump)).

I think we need to either generate the .cmd file or explicitly tell modinfo to skip our .o file. (I assume the skip option exists because closed-source modules with precompiled .o files are a thing.)

I think this is generated as an -MD or thereabouts of input C files, and we could almost certainly do that easily for bindings.c. I'm less sure if we can do that for bindgen but presumably it's doable somehow with libclang....

Bobo1239 added a commit to Bobo1239/linux-kernel-module-rust that referenced this issue Aug 28, 2020
@Bobo1239
Copy link
Contributor

This is affecting Arch Linux's 5.8 kernel now so I've looked around a bit.

I didn't find anything to tell modpost to skip our .rust.o. (Unless you meant the mod->skip field which was removed in torvalds/linux@0b19d54 but wasn't exposed anyways.)

Fortunately it seems to suffice to just create an empty file with the correct name.

 %.rust.o: target/x86_64-linux-kernel/debug/lib%.a
        $(LD) -r -o $@ --whole-archive $<
+       touch $(dir $@)/.$(notdir $@).cmd

Along with some changes from your filter-out-plugins branch I'm able to build hello-world again on Arch.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants