Hi,
I am trying to compile some simple code that needs to include mempool.h from the linux kernel to access some memory structures. I am not developing a kernel module. When trying to compile, gcc gives me these strange warnings and errors (shortened):
Example source:Code:$ make gcc -c -Wall -I/usr/src/linux/include test.c -o test.o In file included from /usr/src/linux/include/linux/compiler-gcc4.h:4, from /usr/src/linux/include/linux/compiler.h:40, from /usr/src/linux/include/linux/stddef.h:4, from /usr/src/linux/include/linux/list.h:6, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/compiler-gcc.h:41:1: warning: "__attribute_pure__" redefined In file included from /usr/include/features.h:322, from /usr/include/stdio.h:28, from test.c:3: /usr/include/sys/cdefs.h:206:1: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/compiler.h:40, from /usr/src/linux/include/linux/stddef.h:4, from /usr/src/linux/include/linux/list.h:6, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/compiler-gcc4.h:16:1: warning: "__attribute_used__" redefined In file included from /usr/include/features.h:322, from /usr/include/stdio.h:28, from test.c:3: /usr/include/sys/cdefs.h:215:1: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/compiler.h:40, from /usr/src/linux/include/linux/stddef.h:4, from /usr/src/linux/include/linux/list.h:6, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/compiler-gcc4.h:19:1: warning: "__always_inline" redefined In file included from /usr/include/features.h:322, from /usr/include/stdio.h:28, from test.c:3: /usr/include/sys/cdefs.h:277:1: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/kernel.h:16, from /usr/src/linux/include/asm/system.h:4, from /usr/src/linux/include/asm/processor.h:18, from /usr/src/linux/include/linux/prefetch.h:14, from /usr/src/linux/include/linux/list.h:8, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/log2.h:52: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘is_power_of_2’ In file included from /usr/src/linux/include/asm/system.h:4, from /usr/src/linux/include/asm/processor.h:18, from /usr/src/linux/include/linux/prefetch.h:14, from /usr/src/linux/include/linux/list.h:8, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/kernel.h:172: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘printk_timed_ratelimit’ /usr/src/linux/include/linux/kernel.h:223: error: expected declaration specifiers or ‘...’ before ‘bool’ /usr/src/linux/include/linux/kernel.h:226: error: expected declaration specifiers or ‘...’ before ‘bool’ In file included from /usr/src/linux/include/linux/prefetch.h:14, from /usr/src/linux/include/linux/list.h:8, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/asm/processor.h:83: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function) /usr/src/linux/include/asm/processor.h:83: error: requested alignment is not a constant /usr/src/linux/include/asm/processor.h: In function ‘cpuid_count’: /usr/src/linux/include/asm/processor.h:618: warning: pointer targets in passing argument 1 of ‘native_cpuid’ differ in signedness /usr/src/linux/include/asm/processor.h:618: warning: pointer targets in passing argument 2 of ‘native_cpuid’ differ in signedness /usr/src/linux/include/asm/processor.h:618: warning: pointer targets in passing argument 3 of ‘native_cpuid’ differ in signedness /usr/src/linux/include/asm/processor.h:618: warning: pointer targets in passing argument 4 of ‘native_cpuid’ differ in signedness In file included from /usr/src/linux/include/linux/wait.h:24, from /usr/src/linux/include/linux/mempool.h:7, from test.c:9: /usr/src/linux/include/linux/spinlock.h: At top level: /usr/src/linux/include/linux/spinlock.h:290: error: expected declaration specifiers or ‘...’ before ‘bool’ /usr/src/linux/include/linux/spinlock.h: In function ‘double_spin_lock’: /usr/src/linux/include/linux/spinlock.h:294: error: ‘l1_first’ undeclared (first use in this function) /usr/src/linux/include/linux/spinlock.h:294: error: (Each undeclared identifier is reported only once /usr/src/linux/include/linux/spinlock.h:294: error: for each function it appears in.) /usr/src/linux/include/linux/spinlock.h: At top level: /usr/src/linux/include/linux/spinlock.h:309: error: expected declaration specifiers or ‘...’ before ‘bool’ /usr/src/linux/include/linux/spinlock.h: In function ‘double_spin_unlock’: /usr/src/linux/include/linux/spinlock.h:313: error: ‘l1_taken_first’ undeclared (first use in this function) make: *** [test.o] Error 1
Anyone know how to fix this? Using gcc 4.1.3 and ubuntu 7.10 (2.6.22-14-generic).Code:#define __KERNEL__ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/types.h> #include <sys/mman.h> #include <sys/stat.h> #include <linux/mempool.h> int main() { printf("Hello World!"); return(0); }



LinkBack URL
About LinkBacks


