I'm creating a set of kernel modules. Each module is its own project. One of these modules provides an interface to many child modules. ie. One parent module has exports and the child modules import.

Since the kernel code being compiled against already has a Module.symvers, I have no problems compiling and inserting the parent module. However, the child modules include a header file (describing the exports) from the parent. I've created the header in such a way it can just be copied into the a child project's include directory. My aim is for one day this parent module be part of the kernel tree.

When inserting the child modules, dmesg complains about unverified function signatures (can't remember the exact error message). To work around this I also copied the Module.symvers generated while building the parent into the build directories of the children.

While copying the Module.symvers works, the Module.symvers file contains full paths to the built module containing the exported functions. Therefore, sharing Module.symvers on github/gitlab would cause problems for anybody cloning the project.

What is the best/preferred way of handling this situation?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.