Arnd Bergmann wrote:
On Wednesday 13 May 2009 08:32:21 Mark McLoughlin wrote:
Currently we only include $(KERNELDIR)/include in CFLAGS,
but we also have $(KERNELDIR)/arch/$(arch)/include or else
we'll get mis-matched headers.
I think this is fundamentally wrong. User files should never directly
access kernel headers, because they are postprocessed in various
ways in order to get files that are valid in user space, e.g. __user
annotations are removed.
There aren't the real kernel headers, just cheap copies carried in
qemu-kvm.git which have been appropriately postprocessed. We do this
since the kvm external module can run on a much older kernel, so there
is no natural place to find it headers.
The three possible sources for kernel headers are:
/usr/include
- system provided headers, may be older than the running kernel
/lib/modules/$(uname -r)/build/usr/include
- user space headers for the currently running kernel
$(KERNELDIR)/usr/include
- user space headers from a configured kernel tree after 'make headers_install'
None of these are sufficiently up-to-date.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html