Re: 2.6.24-rc3-mm1 make headers_check fails

Avi Kivity
2007-12-02T08:53:50Z

[-- Attachment #1: Type: text/plain, Size: 1783 bytes --]

Andrew Morton wrote:
> On Wed, 21 Nov 2007 12:17:14 +0200 Avi Kivity <avi@qumranet.com> wrote:
>
>
>> Avi Kivity wrote:
>>
>>>>>>>
>>>>>>>
>>>>>>>> The make headers_check fails,
>>>>>>>>
>>>>>>>> CHECK include/linux/usb/gadgetfs.h
>>>>>>>> CHECK include/linux/usb/ch9.h
>>>>>>>> CHECK include/linux/usb/cdc.h
>>>>>>>> CHECK include/linux/usb/audio.h
>>>>>>>> CHECK include/linux/kvm.h
>>>>>>>> /root/kernels/linux-2.6.24-rc3/usr/include/linux/kvm.h requires
>>>>>>>> asm/kvm.h, which does not exist in exported headers
>>>>>>>>
>>>>>>>>
>>>>>>> hm, works for me, on i386 and x86_64. What's different over there?
>>>>>>>
>>>>>>>
>>>>>> Hi Andrew,
>>>>>>
>>>>>> It fails on the powerpc box, with allyesconfig option.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> How do we fix this? Export linux/kvm.h only on x86? Seems ugly.
>>>>>
>>>>>
>>>> Is kvm x86 specific? Then move the .h file to asm-x86.
>>>> Otherwise no good idea...
>>>>
>>>>
>>>>
>>> kvm.h is x86 specific today, but will be s390, ppc, ia64, and x86
>>> specific tomorrow.
>>>
>>> What about having a asm-generic/kvm.h with a nice #error? would
>>> that suit?
>>>
>>>
>> headers_check continues to complain. Is the only recourse to add
>> asm/kvm.h for all archs?
>>
>>
>
> That would work.
>
> Meanwhile my recourse is to drop the kvm tree ;)
>

Since you put it this way...

I committed the attached (sorry) patch to kvm.git. Rather than
touching 2*($NARCH - 1) file, I changed include/linux/Kbuild to only
export kvm.h if the arch actually supports it. Currently that's just x86.

--
error compiling committee.c: too many arguments to function

[-- Attachment #2: 0001-KVM-Export-include-linux-kvm.h-only-if-ARCH-actual.patch --]
[-- Type: text/x-patch, Size: 1876 bytes --]

>From a393444c97f6d7355a6d7d6d7aeb80f1e72472b1 Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@qumranet.com>
Date: Sun, 2 Dec 2007 10:50:06 +0200
Subject: [PATCH] KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM

Currently, make headers_check barfs due to <asm/kvm.h>, which <linux/kvm.h>
includes, not existing. Rather than add a zillion <asm/kvm.h>s, export kvm.h
only if the arch actually supports it.

Signed-off-by: Avi Kivity <avi@qumranet.com>
---
arch/x86/Kconfig | 3 +++
drivers/kvm/Kconfig | 4 ++--
include/linux/Kbuild | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 368864d..eded44e 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -112,6 +112,9 @@ config GENERIC_TIME_VSYSCALL
bool
default X86_64

+config ARCH_SUPPORTS_KVM
+ bool
+ default y

diff --git a/drivers/kvm/Kconfig b/drivers/kvm/Kconfig
index 6569206..4086080 100644
--- a/drivers/kvm/Kconfig
+++ b/drivers/kvm/Kconfig
@@ -3,7 +3,7 @@
#
menuconfig VIRTUALIZATION
bool "Virtualization"
- depends on X86
+ depends on ARCH_SUPPORTS_KVM || X86
default y
---help---
Say Y here to get to see options for using your Linux host to run other
@@ -16,7 +16,7 @@ if VIRTUALIZATION

config KVM
tristate "Kernel-based Virtual Machine (KVM) support"
- depends on X86 && EXPERIMENTAL
+ depends on ARCH_SUPPORTS_KVM && EXPERIMENTAL
select PREEMPT_NOTIFIERS
select ANON_INODES
---help---
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 105c5d6..397197f 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -254,7 +254,7 @@ unifdef-y += kd.h
unifdef-y += kernelcapi.h
unifdef-y += kernel.h
unifdef-y += keyboard.h
-unifdef-y += kvm.h
+unifdef-$(CONFIG_ARCH_SUPPORTS_KVM) += kvm.h
unifdef-y += llc.h
unifdef-y += loop.h
unifdef-y += lp.h
--
1.5.3