This strikes me as quite nasty, although i've no idea if it's xen related at all... i was just doing a 'make world' under dom0, when the compile crashed out thus:
gcc -D__KERNEL__ -I/usr/src/xeno-unstable.bk/linux-2.4.26-xen0/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno
-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefi
x include -DKBUILD_BASENAME=svcsock -c -o svcsock.o svcsock.c
svcsock.c:144:25: warning: null character(s) preserved in literal
svcsock.c:144:25: missing terminating " character
svcsock.c:1176:1: unterminated argument list invoking macro "dprintk"
svcsock.c: In function `svc_sock_enqueue':
svcsock.c:144: error: `dprintk' undeclared (first use in this function)
svcsock.c:144: error: (Each undeclared identifier is reported only once
svcsock.c:144: error: for each function it appears in.)
svcsock.c:144: error: parse error at end of input
svcsock.c:118: warning: unused variable `rqstp'
svcsock.c:66: warning: `svc_setup_socket' declared `static' but never defined
svcsock.c:67: warning: `svc_udp_data_ready' declared `static' but never defined
svcsock.c:68: warning: `svc_udp_recvfrom' declared `static' but never defined
svcsock.c:69: warning: `svc_udp_sendto' declared `static' but never defined
svcsock.c:116: warning: `svc_sock_enqueue' defined but not used
and sure enough svcsock.c had a big lump of corruption right in the middle of it. My most recent reboot was afaik orderly and so the corruption shouldn't have come from an unclean halt. My last compile was right before my last reboot (i think) and the svcsock.c was not corrupt then.
I copied the file back from a known good source and restarted the compile, but it aborted pretty quickly with internal gcc errors etc.
I then tried a basic file corruption test - copying large files of known data back and forth lots and then finally compare to the original but that started seg faulting, and then the process hung in a 'D' state, so i'm rebooting now.
When it comes back up i'll try to break it again.
My tree is about 30 hours old. I should probably completely refresh it to ensure there is no other corruption... is there a bk command to do that? or at least to sum all the files to check them against the originals?