error: missing syscalls when compiling kernel module
Paul Bolle
pebolle at tiscali.nl
Mon Feb 16 03:23:43 EST 2015
On Mon, 2015-02-16 at 12:14 +0530, noyb noybee wrote:
> Hi all. This is the error that I am getting when I try to compile a
> loadable module(it tries to intercept a system call by directly
> editing the sys_call_table in the memory):-
>
> make -C /lib/modules/2.6.32-504.1.3.el6.x86_64/build M= modules
> make[1]: Entering directory `/usr/src/kernels/2.6.32-504.1.3.el6.x86_64'
> make[2]: Nothing to be done for `all'.
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> SYMLINK include/asm -> include/asm-x86
> make[2]: *** No rule to make target `missing-syscalls'. Stop.
> make[1]: *** [prepare0] Error 2
> make[1]: Leaving directory `/usr/src/kernels/2.6.32-504.1.3.el6.x86_64'
> make: *** [all] Error 2
>
> The Makefile is:-
>
> obj-m +:= hijack.o
You want ":=" here. "+:=" gives
Makefile:1: *** empty variable name. Stop.
when I try it.
> PWD := $(pwd)
I think this line sets the value of variable PWD to the value of the
variable pwd, which is probably empty. Look at "M=" in the output you
quoted above.
> all:
> make -C /lib/modules/2.6.32-504.1.3.el6.x86_64/build M=$(PWD) modules
> clean:
> make -C /lib/modules/2.6.32-504.1.3.el6.x86_64/build M=$(PWD) clean
>
> I have googled the error but most links are unresolved. I am trying to
> install this against the currently running kernel and not the complete
> source.
I'm not sure what you're trying to do here, and I'm not really
comfortable reading Makefiles. But the examples in "3. Creating a Kbuild
File for an External Module" in Documentation/kbuild/modules.txt suggest
you could also drop the assignment to PWD and use 'M=$$PWD' in those two
lines.
Hope this helps,
Paul Bolle
More information about the Kernelnewbies
mailing list