Sziasztok!
A következő példaprogramot szeretném lefordítani. (Ubuntu 8.10, Netbeans 6.5)
#include <linux/kernel.h>
#include <linux/module.h>
#include <sys/syscall.h>
extern void *sys_call_table[];
asmlinkage int (*eredeti_sys_exit)(int);
asmlinkage int sajat_exit (int error_code) {
printk("Szia! A sys_exit hívásakor ez volt a hibakód: %d\n",error_code);
return eredeti_sys_exit(error_code);
}
int init_module() {
eredeti_sys_exit=sys_call_table[__NR_exit];
sys_call_table[__NR_exit] = sajat_exit;
}
void cleanup_module() {
sys_call_table[__NR_exit] = eredeti_sys_exit;
}
Azonban a következő hibaüzenetet kapom:
gcc -c -g -DMODULE -D__KERNEL__ -DLINUX -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c
main.c:2:26: warning: linux/module.h: No such file or directory
main.c:7: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
main.c:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
main.c: In function ‘init_module’:
main.c:15: error: ‘eredeti_sys_exit’ undeclared (first use in this function)
main.c:15: error: (Each undeclared identifier is reported only once
main.c:15: error: for each function it appears in.)
main.c:16: error: ‘sajat_exit’ undeclared (first use in this function)
main.c: In function ‘cleanup_module’:
main.c:20: error: ‘eredeti_sys_exit’ undeclared (first use in this function)
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1
make[2]: Leaving directory `/home/tom/NetBeansProjects/pelda2'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/tom/NetBeansProjects/pelda2'
make: *** [.build-impl] Error 2
Ha megadom az include pathba "/lib/modules/2.6.27-9-generic/build/include/" elérési utat, továbbra sem hajlandó lefordulni.
gcc -c -g -DMODULE -D__KERNEL__ -DLINUX -I/lib/modules/2.6.27-9-generic/build/include -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c
/lib/modules/2.6.27-9-generic/build/include/linux/ratelimit.h: In function ‘ratelimit’:
In file included from /lib/modules/2.6.27-9-generic/build/include/linux/kernel.h:18,
from main.c:1:
/lib/modules/2.6.27-9-generic/build/include/linux/ratelimit.h:23: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/lib/modules/2.6.27-9-generic/build/include/linux/ratelimit.h:23: error: (Each undeclared identifier is reported only once
/lib/modules/2.6.27-9-generic/build/include/linux/ratelimit.h:23: error: for each function it appears in.)
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h: At top level:
In file included from /lib/modules/2.6.27-9-generic/build/include/linux/prefetch.h:14,
from /lib/modules/2.6.27-9-generic/build/include/linux/list.h:6,
from /lib/modules/2.6.27-9-generic/build/include/linux/module.h:9,
from main.c:2:
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:112: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:112: error: requested alignment is not a constant
In file included from /lib/modules/2.6.27-9-generic/build/include/linux/prefetch.h:14,
from /lib/modules/2.6.27-9-generic/build/include/linux/list.h:6,
from /lib/modules/2.6.27-9-generic/build/include/linux/module.h:9,
from main.c:2:
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:152:1: warning: "cache_line_size" redefined
In file included from /lib/modules/2.6.27-9-generic/build/include/asm/pda.h:7,
from /lib/modules/2.6.27-9-generic/build/include/asm/current.h:19,
from /lib/modules/2.6.27-9-generic/build/include/asm/processor.h:15,
from /lib/modules/2.6.27-9-generic/build/include/linux/prefetch.h:14,
from /lib/modules/2.6.27-9-generic/build/include/linux/list.h:6,
from /lib/modules/2.6.27-9-generic/build/include/linux/module.h:9,
from main.c:2:
/lib/modules/2.6.27-9-generic/build/include/linux/cache.h:64:1: warning: this is the location of the previous definition
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h: In function ‘load_cr3’:
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:184: error: ‘CONFIG_PAGE_OFFSETUL’ undeclared (first use in this function)
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h: At top level:
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:233: error: requested alignment is not a constant
/lib/modules/2.6.27-9-generic/build/include/asm/processor.h:270: error: requested alignment is not a constant
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h: In function ‘elf_common_init’:
In file included from /lib/modules/2.6.27-9-generic/build/include/linux/elf.h:7,
from /lib/modules/2.6.27-9-generic/build/include/linux/module.h:14,
from main.c:2:
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r8’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r9’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r10’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r11’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r12’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r13’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r14’
/lib/modules/2.6.27-9-generic/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r15’
In file included from /lib/modules/2.6.27-9-generic/build/include/linux/module.h:21,
from main.c:2:
/lib/modules/2.6.27-9-generic/build/include/asm/module.h:70:2: error: #error unknown processor family
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1
make[2]: Leaving directory `/home/tom/NetBeansProjects/pelda2'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/tom/NetBeansProjects/pelda2'
make: *** [.build-impl] Error 2
Build failed. Exit value 2.
Van valakinek ötlet mivel probálkozzam?