Thread (22 messages) 22 messages, 4 authors, 2021-09-01

Re: [PATCH] Declare the file_operations struct as const

From: Krish Jain <hidden>
Date: 2021-08-29 16:57:05
Also in: lkml

On Sun, Aug 29, 2021 at 6:49 PM Bryan Brattlof [off-list ref] wrote:
On this day, August 29, 2021, thus sayeth Krish Jain:
quoted
quoted
quoted
Hi, what option do you mean?  I already ran make allmodconfig and sudo
make modules_install install and then make   "CCFLAGS=-Werror W=1
M=drivers/staging/android/" and now I do get output but one line
"WARNING: Symbol version dump "Module.symvers" is missing. Modules may
not have dependencies or modversions. You may get many unresolved
symbol warnings." . Then I tried "make CCFLAGS=-Werror V=1
M=drivers/staging/android/" and that outputted the following:
Most of the answers you're asking for are going to get vague responses
(if any) on the mailing lists. The idea being (and I agree with) that
giving out the answers will steal your opportunity to explore and learn
the material yourself.

Yes, it would be faster if we told you the answer, but ultimately, we
would be doing a disservice to you.

Besides, more times than not we (me especially) don't have the answer.

With that said, I will give a (generous) hint. :)
Hi. Do I have to build the kernel once before this works? Or can I
just build a module directly?
Again, do not allow others to rob you of learning how to solve these
issues yourself. I *strongly* encourage you to familiarize yourself with
the Kernel Build System in the Documentation.

  https://www.kernel.org/doc/html/latest/kbuild/modules.html

Specifically the first paragraph of "2. How to Build External Modules"

It may seem like a lot for such a simple issue but it *is* worth it.
~Bryan


That section says


"To build external modules, *you must have a prebuilt kernel
available* that contains the configuration and header files used in
the build. Also, the kernel must have been built with modules enabled.
If you are using a distribution kernel, there will be a package for
the kernel you are running provided by your distribution.

An alternative is to use the “make” target “modules_prepare.” This
will make sure the kernel contains the information required. The
target exists solely as a simple way to prepare a kernel source tree
for building external modules.

NOTE: “modules_prepare” will not build Module.symvers even if
CONFIG_MODVERSIONS is set; therefore, *a full kernel build needs to be
executed to make module versioning work.*"

So I am just trying to confirm with you whether I have to first build
the kernel with like "make" or not? As you can imagine my hardware
takes *very* long to build a kernel as I did in my last attempt so I
am asking whether it is needed. Hope you understand.

Best Regards
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help