LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (https://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   dereferencing pointer to incomplete type (just built a new kernel) (https://www.linuxquestions.org/questions/linux-kernel-70/dereferencing-pointer-to-incomplete-type-just-built-a-new-kernel-589204/)

144419855310001 10-03-2007 03:58 PM

dereferencing pointer to incomplete type (just built a new kernel)
 
Hi

I'm running ubuntu 7.04 and have just compiled a new kernel in order to get the tickless kernel - I didn't really want to upgrade to 7.10 just to get this feature. I now have 2.6.22.9 (formerly 2.6.20-16-generic).

However, I'm now getting problems when I try to make kqemu for my kernel. I'm just wondering, did I forget to compile something in when I built my kernel? (or is this a bug in the kernel?)

Why am I getting:
Quote:

/usr/src/modules/kqemu/kqemu-linux.c:81: error: dereferencing pointer to incomplete type
Full error:

Quote:

dpatch deapply-all
rm -rf patch-stamp patch-stampT debian/patched
dh_testdir
#dh_testroot
# Cleaning package
/usr/bin/make clean
make[1]: Entering directory `/usr/src/modules/kqemu'
make -C common clean
make[2]: Entering directory `/usr/src/modules/kqemu/common'
rm -f *.o *~ monitor-image.h genoffsets genmon monitor_def.h \
monitor-image.bin monitor-image.out \
i386/*.o x86_64/*.o
make[2]: Leaving directory `/usr/src/modules/kqemu/common'
rm -f kqemu.ko *.o *~
make[1]: Leaving directory `/usr/src/modules/kqemu'
dh_clean
/usr/bin/make -f debian/rules clean
make[1]: Entering directory `/usr/src/modules/kqemu'
dpatch deapply-all
rm -rf patch-stamp patch-stampT debian/patched
dh_testdir
#dh_testroot
# Cleaning package
/usr/bin/make clean
make[2]: Entering directory `/usr/src/modules/kqemu'
make -C common clean
make[3]: Entering directory `/usr/src/modules/kqemu/common'
rm -f *.o *~ monitor-image.h genoffsets genmon monitor_def.h \
monitor-image.bin monitor-image.out \
i386/*.o x86_64/*.o
make[3]: Leaving directory `/usr/src/modules/kqemu/common'
rm -f kqemu.ko *.o *~
make[2]: Leaving directory `/usr/src/modules/kqemu'
dh_clean
make[1]: Leaving directory `/usr/src/modules/kqemu'
/usr/bin/make -f debian/rules kdist_clean kdist_config binary-modules
make[1]: Entering directory `/usr/src/modules/kqemu'
dpatch deapply-all
rm -rf patch-stamp patch-stampT debian/patched
dh_testdir
#dh_testroot
# Cleaning package
/usr/bin/make clean
make[2]: Entering directory `/usr/src/modules/kqemu'
make -C common clean
make[3]: Entering directory `/usr/src/modules/kqemu/common'
rm -f *.o *~ monitor-image.h genoffsets genmon monitor_def.h \
monitor-image.bin monitor-image.out \
i386/*.o x86_64/*.o
make[3]: Leaving directory `/usr/src/modules/kqemu/common'
rm -f kqemu.ko *.o *~
make[2]: Leaving directory `/usr/src/modules/kqemu'
dh_clean
/usr/bin/make -w -f debian/rules clean
make[2]: Entering directory `/usr/src/modules/kqemu'
dpatch deapply-all
rm -rf patch-stamp patch-stampT debian/patched
dh_testdir
#dh_testroot
# Cleaning package
/usr/bin/make clean
make[3]: Entering directory `/usr/src/modules/kqemu'
make -C common clean
make[4]: Entering directory `/usr/src/modules/kqemu/common'
rm -f *.o *~ monitor-image.h genoffsets genmon monitor_def.h \
monitor-image.bin monitor-image.out \
i386/*.o x86_64/*.o
make[4]: Leaving directory `/usr/src/modules/kqemu/common'
rm -f kqemu.ko *.o *~
make[3]: Leaving directory `/usr/src/modules/kqemu'
dh_clean
make[2]: Leaving directory `/usr/src/modules/kqemu'
make[1]: Nothing to be done for `kdist_config'.
for templ in ; do \
cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.22.9-homebuild/g'` ; \
done
for templ in `ls debian/*.modules.in` ; do \
test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
sed -e 's/##KVERS##/2.6.22.9-homebuild/g ;s/#KVERS#/2.6.22.9-homebuild/g ; s/_KVERS_/2.6.22.9-homebuild/g ; s/##KDREV##/2.6.22.9-homebuild-10.00.Custom/g ; s/#KDREV#/2.6.22.9-homebuild-10.00.Custom/g ; s/_KDREV_/2.6.22.9-homebuild-10.00.Custom/g ' < $templ > ${templ%.modules.in}; \
done
dh_testroot
dh_clean -k
# Build the module
./configure --kernel-path=/lib/modules/2.6.22.9-homebuild/source
Source path /usr/src/modules/kqemu
C compiler gcc
Host C compiler gcc
make make
host CPU x86_64

kernel sources /lib/modules/2.6.22.9-homebuild/source
kbuild type 2.6
/usr/bin/make
make[2]: Entering directory `/usr/src/modules/kqemu'
make -C common all
make[3]: Entering directory `/usr/src/modules/kqemu/common'
gcc -Wall -O2 -Werror -g -D__KERNEL__ -I.. -o genoffsets genoffsets.c
./genoffsets > monitor_def.h
gcc -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -D__ASSEMBLY__ -c -o x86_64/nexus_asm.o x86_64/nexus_asm.S
gcc -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -D__ASSEMBLY__ -c -o x86_64/monitor_asm.o x86_64/monitor_asm.S
gcc -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing -Werror -mno-red-zone -fno-stack-protector -fpic -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -c -o monitor.o monitor.c
gcc -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing -Werror -mno-red-zone -fno-stack-protector -fpic -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -c -o monitor-utils.o monitor-utils.c
gcc -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing -Werror -mno-red-zone -fno-stack-protector -fpic -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -c -o interp.o interp.c
ld -T x86_64/monitor.ld -o monitor-image.out x86_64/nexus_asm.o x86_64/monitor_asm.o monitor.o monitor-utils.o interp.o
objcopy -O binary monitor-image.out monitor-image.bin
gcc -Wall -O2 -Werror -g -o genmon genmon.c
./genmon < monitor-image.bin > monitor-image.h
gcc -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing -Werror -mno-red-zone -mcmodel=kernel -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -c -o kernel.o kernel.c
gcc -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -D__ASSEMBLY__ -c -o x86_64/kernel_asm.o x86_64/kernel_asm.S
ld -r -o ../kqemu-mod-x86_64.o kernel.o x86_64/kernel_asm.o
make[3]: Leaving directory `/usr/src/modules/kqemu/common'
make -C /lib/modules/2.6.22.9-homebuild/source M=`pwd` modules
make[3]: Entering directory `/usr/src/linux-2.6.22.9'
CC [M] /usr/src/modules/kqemu/kqemu-linux.o
/usr/src/modules/kqemu/kqemu-linux.c: In function ‘kqemu_lock_user_page’:
/usr/src/modules/kqemu/kqemu-linux.c:81: error: dereferencing pointer to incomplete type
/usr/src/modules/kqemu/kqemu-linux.c: In function ‘kqemu_schedule’:
/usr/src/modules/kqemu/kqemu-linux.c:194: warning: implicit declaration of function ‘need_resched’
/usr/src/modules/kqemu/kqemu-linux.c:195: warning: implicit declaration of function ‘schedule’
/usr/src/modules/kqemu/kqemu-linux.c:197: warning: implicit declaration of function ‘signal_pending’
make[4]: *** [/usr/src/modules/kqemu/kqemu-linux.o] Error 1
make[3]: *** [_module_/usr/src/modules/kqemu] Error 2
make[3]: Leaving directory `/usr/src/linux-2.6.22.9'
make[2]: *** [kqemu.ko] Error 2
make[2]: Leaving directory `/usr/src/modules/kqemu'
make[1]: *** [binary-modules] Error 2
make[1]: Leaving directory `/usr/src/modules/kqemu'
make: *** [kdist_build] Error 2
Any ideas? Thanks


All times are GMT -5. The time now is 03:15 PM.