problems compiling kernel module

From: Fernando Barsoba
Date: Wed Apr 19 2006 - 09:44:10 EST


Hi,

I am really stuck with this thing.. For couple of days i have been trying to compile a kernel module. I have been following the info in http://www.faqs.org/docs/kernel/x204.html. But no success... i recompiled the latest kernel version, and i think i trying to compile the module against the source code for that kernel.. however, strange errors appear.

Please any help will be appreciated.

Here's the error:

Code:

[fbarsoba@localhost ~]$ cd workspace/kernel_tests/
[fbarsoba@localhost kernel_tests]$ make
gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c -o hello-1.o hello-1.c
In file included from /lib/modules/2.6.16.7/build/include/linux/spinlock.h:87, from /lib/modules/2.6.16.7/build/include/linux/capability.h:45, from /lib/modules/2.6.16.7/build/include/linux/sched.h:7, from /lib/modules/2.6.16.7/build/include/linux/module.h:10, from hello-1.c:3:
/lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function ‘__raw_spin_lock’: /lib/modules/2.6.16.7/build/include/asm/spinlock.h:42: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function ‘__raw_read_lock’: /lib/modules/2.6.16.7/build/include/asm/spinlock.h:96: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/spinlock.h:96: error: expected expression before ‘else’ /lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function ‘__raw_write_lock’: /lib/modules/2.6.16.7/build/include/asm/spinlock.h:101: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/spinlock.h:101: error: expected expression before ‘else’ In file included from /lib/modules/2.6.16.7/build/include/linux/sched.h:20, from /lib/modules/2.6.16.7/build/include/linux/module.h:10, from hello-1.c:3: /lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘down’: /lib/modules/2.6.16.7/build/include/asm/semaphore.h:112: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘down_interruptible’: /lib/modules/2.6.16.7/build/include/asm/semaphore.h:137: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘down_trylock’:/lib/modules/2.6.16.7/build/include/asm/semaphore.h:161: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ /lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘up’: /lib/modules/2.6.16.7/build/include/asm/semaphore.h:184: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’ make: *** [hello-1.o] Error 1


And here are the files:

Code:

/* hello-1.c - The simplest kernel module.
*/ #include <linux/module.h> /* Needed by all modules
*/ #include <linux/kernel.h> /* Needed for KERN_ALERT */

int init_module(void) {
printk("<1>Hello world 1.\n"); // A non 0 return means init_module failed; module can't be loaded.
return 0;
}

void cleanup_module(void) {
printk(KERN_ALERT "Goodbye world 1.\n");
}


Code:

TARGET := hello-1
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} CC := gcc
${TARGET}.o: ${TARGET}.c
.PHONY: clean
clean: rm -rf {TARGET}.o


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/