I'm trying to build kexec as a module, but I'm running into a weird problem.  My obj-m is:obj-m += kexec.o machine_kexec.o relocate_kernel.oWhen I run the makefile, it complains that there's no rule to make target relocate_kernel.c, needed by relocate_kernel.oHow should I be telling it to include the assembly file?  I've looked in the kernel Makefile, and while I'm not very good with them, it DOES appear that there's a rule for .S > .o.  Am I wrong about this?
Assembly files in obj-m list when building kernel modules
kernel;kernel modules;make;assembly
As always, RTFM.  Answering this and leaving it up to help others that may come across this.  Per the Linux documentation project, I was using obj-m wrong:Sometimes it makes sense to divide a kernel module between several source files.  Here's an example of such a kernel module.[ Source files ... ]And finally, the makefile:Example 2-10. Makefileobj-m += hello-1.o  obj-m += hello-2.o  obj-m += hello-3.o  obj-m += hello-4.o  obj-m += hello-5.o  obj-m += startstop.o  startstop-objs := start.o stop.oall:    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean:    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) cleanLinux Kernel Module Programming Guide:  2.7. Modules Spanning Multiple FilesSo, my Makefile should have read:obj-m += kexecmod.okexecmod-objs := kexec.o machine_kexec.o relocate_kernel.oWhich compiled relocate_kernel.S into relocate_kernel.o(To anyone stumbling across this trying to compile kexec as a module, I still haven't found all the dependencies, but this is a start.)