Just compiled and installed 3.7-rc1 on my test system, and ran into problems straight away..
NVIDIA (304.51) compile fails with a whole host of errors, and VMware (9.0-patched) compile fails immediately, with:
vthread-3| I120: Failed version test: /usr/src/linux-3.7-rc1/linux/version.h not found.
There is a fix for NVIDIA, here:
http://www.nvnews.net/vbulletin/showthread.php?t=194465 – a patch, and the removal of VM_RESERVED from line 466 of nv-mmap.c..
old: vma->vm_flags |= (VM_IO | VM_LOCKED | VM_RESERVED);
new: vma->vm_flags |= (VM_IO | VM_LOCKED);
I have tried this, and it does compile OK with these changes.. Not tested loading/running, as my test system doesn’t have that brand of graphics card….
In a caffeine-fuelled 4am brainstorm, I decided to just replace /linux-3.7-rc1/include/version.h again, to see what further errors arose when compiling VMware, and I found that this was all that was needed to get it to compile and load successfully! I used the one from 3.6.2, and VMware – with the 3.5 patch – compiled and loaded correctly.. The LINUX_VERSION_CODE value should be greater for 3.7-rc1, but this doesn’t seem to matter, and this is – after all – just a nasty hack!
Seems version.h (generated..) has moved, and is now linux-3.7-rc1/include/generated/uapi/linux/version.h, so the VMware installer just needs to be changed to look here, for kernels 3.7 and above..
$ cat /usr/src/linux-3.7-rc1/include/generated/uapi/linux/version.h
#define LINUX_VERSION_CODE 198400
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
And so – a better ‘workaround’ is to just (soft)link the ‘new’ version.h back to the ‘old’:
# ln -s /usr/src/linux-3.7-rc1/include/generated/uapi/linux/version.h /usr/src/linux-3.7-rc1/include/linux/version.h
I have a suspicion that all the uapi-related changes for 3.7 are going to generate a lot of ‘issues’…