Re: Broken userspace module Makefile

2008-10-20 Thread Sheng Yang
On Sunday 19 October 2008 17:25:43 Avi Kivity wrote:
> Sheng Yang wrote:
> > Hi, Avi
> >
> > After Xiantao's irq_common patches were checked in, we found that it's
> > impossible to compile with VT-d userspace now. Essentially the problem is
> > Makefile missed a $ since unifdef patch checked in half an years ago...
> >
> > But after I fix it, I found it's still impossible to get unifdef run
> > correctly...
> >
> > First, unifdef report error when processing include/linux/kvm.h, but I
> > can't find out what's wrong now.
> >
> > Second, seems at least my unifdef can't deal with
> >
> > #if defined(CONFIG_X86) || defined(CONFIG_IA64)
> >
> > My unifdef version is 1.0(20030701), the latest from debian testing. I
> > also tried one for fc9, same result.
>
> My unifdef manual says it can handle #if and defined(), but only if it
> knows about the defines.  Can you try adding -UCONFIG_IA64?
>
> > diff --git a/kernel/Makefile b/kernel/Makefile
> > index f2a71fa..e352f77 100644
> > --- a/kernel/Makefile
> > +++ b/kernel/Makefile
> > @@ -65,7 +65,7 @@ header-sync:
> >  "$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
> >   $T/include/asm-$(ARCH_DIR)/
> >
> > -   set -e && for i in $(find $T -name '*.h'); do \
> > +   set -e && for i in $$(find $T -name '*.h'); do \
> > $(call unifdef,$$i); done
> > $(call hack, include/linux/kvm.h)
> > set -e && for i in $$(find $T -type f -printf '%P '); \
> > @@ -79,7 +79,7 @@ source-sync:
> >  "$(LINUX)"/virt/kvm/./*.[cSh] \
> >  $T/
> >
> > -   set -e && for i in $(find $T -name '*.c'); do \
> > +   set -e && for i in $$(find $T -name '*.c'); do \
> > $(call unifdef,$$i); done
> >
> > for i in $(hack-files); \
>
> Looks good, is this safe to apply given the current brokenness?

Yes, add -UCONFIG_IA64 make things fine. And I found the reason of exit is:

"EXIT STATUS
 The unifdef utility exits 0 if the output is an exact copy of the input, 
1 if not, and 2 if in trouble."

So, set -e is wrong too...

I will patch it later.

--
regards
Yang, Sheng
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Broken userspace module Makefile

2008-10-19 Thread Avi Kivity

Sheng Yang wrote:

Hi, Avi

After Xiantao's irq_common patches were checked in, we found that it's
impossible to compile with VT-d userspace now. Essentially the problem is
Makefile missed a $ since unifdef patch checked in half an years ago...

But after I fix it, I found it's still impossible to get unifdef run
correctly...

First, unifdef report error when processing include/linux/kvm.h, but I
can't find out what's wrong now.

Second, seems at least my unifdef can't deal with

#if defined(CONFIG_X86) || defined(CONFIG_IA64)

My unifdef version is 1.0(20030701), the latest from debian testing. I also
tried one for fc9, same result.

  


My unifdef manual says it can handle #if and defined(), but only if it 
knows about the defines.  Can you try adding -UCONFIG_IA64?



diff --git a/kernel/Makefile b/kernel/Makefile
index f2a71fa..e352f77 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -65,7 +65,7 @@ header-sync:
 "$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
  $T/include/asm-$(ARCH_DIR)/
 
-	set -e && for i in $(find $T -name '*.h'); do \

+   set -e && for i in $$(find $T -name '*.h'); do \
$(call unifdef,$$i); done
$(call hack, include/linux/kvm.h)
set -e && for i in $$(find $T -type f -printf '%P '); \
@@ -79,7 +79,7 @@ source-sync:
 "$(LINUX)"/virt/kvm/./*.[cSh] \
 $T/
 
-	set -e && for i in $(find $T -name '*.c'); do \

+   set -e && for i in $$(find $T -name '*.c'); do \
$(call unifdef,$$i); done
 
 	for i in $(hack-files); \
  


Looks good, is this safe to apply given the current brokenness?

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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Broken userspace module Makefile

2008-10-09 Thread Zhang, Xiantao
The following patch should solve the issue you met before unifdef gets
work again. 

diff --git a/libkvm/config-i386.mak b/libkvm/config-i386.mak
index 2706b70..3579985 100644
--- a/libkvm/config-i386.mak
+++ b/libkvm/config-i386.mak
@@ -1,6 +1,6 @@

 LIBDIR := /lib
 CFLAGS += -m32
-CFLAGS += -D__i386__
+CFLAGS += -D__i386__ -DCONFIG_X86

 libkvm-$(ARCH)-objs := libkvm-x86.o
diff --git a/libkvm/config-x86_64.mak b/libkvm/config-x86_64.mak
index e638977..9d02eb0 100644
--- a/libkvm/config-x86_64.mak
+++ b/libkvm/config-x86_64.mak
@@ -1,6 +1,6 @@

 LIBDIR := /lib64
 CFLAGS += -m64
-CFLAGS += -D__x86_64__
+CFLAGS += -D__x86_64__ -DCONFIG_X86

 libkvm-$(ARCH)-objs := libkvm-x86.o

> 
> Yeah, CONFIG_X86 is for qemu. But kernel/ is not a part of qemu code,
> and can't be cover by qemu/config-host.mak...

No, when you use ./configure in userspace, it will generate a qemu_cflag
which includes -DCONFIG_X86 for compiling qemu's objects.  So when
compile qemu's objects, CONFIG_X86 is defined for every targets! :)
Xiantao


> regards
> Yang, Sheng
>> Thanks
>> Xiantao
>> 
>> Sheng Yang wrote:
>>> Hi, Avi
>>> 
>>> After Xiantao's irq_common patches were checked in, we found that
>>> it's impossible to compile with VT-d userspace now. Essentially the
>>> problem is Makefile missed a $ since unifdef patch checked in half
>>> an years ago... 
>>> 
>>> But after I fix it, I found it's still impossible to get unifdef
>>> run correctly... 
>>> 
>>> First, unifdef report error when processing include/linux/kvm.h,
>>> but I can't find out what's wrong now.
>>> 
>>> Second, seems at least my unifdef can't deal with
>>> 
>>> #if defined(CONFIG_X86) || defined(CONFIG_IA64)
>>> 
>>> My unifdef version is 1.0(20030701), the latest from debian testing.
>>> I also tried one for fc9, same result.
>>> 
>>> How do you think...
>>> --
>>> regards
>>> Yang,Sheng
>>> 
>>> --
>>> From: Sheng Yang <[EMAIL PROTECTED]>
>>> Date: Thu, 9 Oct 2008 20:45:02 +0800
>>> Subject: [PATCH 1/1] kvm: Fix broken Makefile of kernel module
>>> 
>>> 
>>> Signed-off-by: Sheng Yang <[EMAIL PROTECTED]>
>>> ---
>>>  kernel/Makefile |4 ++--
>>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>> 
>>> diff --git a/kernel/Makefile b/kernel/Makefile
>>> index f2a71fa..e352f77 100644
>>> --- a/kernel/Makefile
>>> +++ b/kernel/Makefile
>>> @@ -65,7 +65,7 @@ header-sync:
>>>  "$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
>>>   $T/include/asm-$(ARCH_DIR)/
>>> 
>>> -   set -e && for i in $(find $T -name '*.h'); do \
>>> +   set -e && for i in $$(find $T -name '*.h'); do \
>>> $(call unifdef,$$i); done
>>> $(call hack, include/linux/kvm.h)
>>> set -e && for i in $$(find $T -type f -printf '%P '); \
>>> @@ -79,7 +79,7 @@ source-sync:
>>>  "$(LINUX)"/virt/kvm/./*.[cSh] \
>>>  $T/
>>> 
>>> -   set -e && for i in $(find $T -name '*.c'); do \
>>> +   set -e && for i in $$(find $T -name '*.c'); do \
>>> $(call unifdef,$$i); done
>>> 
>>> for i in $(hack-files); \
>>> --
>>> 1.5.3
>> 
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to [EMAIL PROTECTED]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Broken userspace module Makefile

2008-10-09 Thread Sheng Yang
On Friday 10 October 2008 09:47:15 Zhang, Xiantao wrote:
> CONFIG_X86 is defined to compile every qemu's objects, so even if
> unifdef doesn't work, we shouldn't meet the problems related to this
> header file.  Maybe other pential issues casues the problem you met.
> Anyway we had better enable unifdef to work in its right way. :)
> BTW, seems unifdef can't handle the case like #if defined(CONFIG_X86) ||
> defined(CONFIG_IA64) from the manual, who can clarify it ?

Yeah, CONFIG_X86 is for qemu. But kernel/ is not a part of qemu code, and 
can't be cover by qemu/config-host.mak...

regards
Yang, Sheng
> Thanks
> Xiantao
>
> Sheng Yang wrote:
> > Hi, Avi
> >
> > After Xiantao's irq_common patches were checked in, we found that it's
> > impossible to compile with VT-d userspace now. Essentially the
> > problem is Makefile missed a $ since unifdef patch checked in half an
> > years ago...
> >
> > But after I fix it, I found it's still impossible to get unifdef run
> > correctly...
> >
> > First, unifdef report error when processing include/linux/kvm.h, but I
> > can't find out what's wrong now.
> >
> > Second, seems at least my unifdef can't deal with
> >
> > #if defined(CONFIG_X86) || defined(CONFIG_IA64)
> >
> > My unifdef version is 1.0(20030701), the latest from debian testing.
> > I also tried one for fc9, same result.
> >
> > How do you think...
> > --
> > regards
> > Yang,Sheng
> >
> > --
> > From: Sheng Yang <[EMAIL PROTECTED]>
> > Date: Thu, 9 Oct 2008 20:45:02 +0800
> > Subject: [PATCH 1/1] kvm: Fix broken Makefile of kernel module
> >
> >
> > Signed-off-by: Sheng Yang <[EMAIL PROTECTED]>
> > ---
> >  kernel/Makefile |4 ++--
> >  1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/Makefile b/kernel/Makefile
> > index f2a71fa..e352f77 100644
> > --- a/kernel/Makefile
> > +++ b/kernel/Makefile
> > @@ -65,7 +65,7 @@ header-sync:
> >  "$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
> >   $T/include/asm-$(ARCH_DIR)/
> >
> > -   set -e && for i in $(find $T -name '*.h'); do \
> > +   set -e && for i in $$(find $T -name '*.h'); do \
> > $(call unifdef,$$i); done
> > $(call hack, include/linux/kvm.h)
> > set -e && for i in $$(find $T -type f -printf '%P '); \
> > @@ -79,7 +79,7 @@ source-sync:
> >  "$(LINUX)"/virt/kvm/./*.[cSh] \
> >  $T/
> >
> > -   set -e && for i in $(find $T -name '*.c'); do \
> > +   set -e && for i in $$(find $T -name '*.c'); do \
> > $(call unifdef,$$i); done
> >
> > for i in $(hack-files); \
> > --
> > 1.5.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Broken userspace module Makefile

2008-10-09 Thread Zhang, Xiantao
CONFIG_X86 is defined to compile every qemu's objects, so even if
unifdef doesn't work, we shouldn't meet the problems related to this
header file.  Maybe other pential issues casues the problem you met.
Anyway we had better enable unifdef to work in its right way. :)
BTW, seems unifdef can't handle the case like #if defined(CONFIG_X86) ||
defined(CONFIG_IA64) from the manual, who can clarify it ?
Thanks
Xiantao


Sheng Yang wrote:
> Hi, Avi
> 
> After Xiantao's irq_common patches were checked in, we found that it's
> impossible to compile with VT-d userspace now. Essentially the
> problem is Makefile missed a $ since unifdef patch checked in half an
> years ago... 
> 
> But after I fix it, I found it's still impossible to get unifdef run
> correctly...
> 
> First, unifdef report error when processing include/linux/kvm.h, but I
> can't find out what's wrong now.
> 
> Second, seems at least my unifdef can't deal with
> 
> #if defined(CONFIG_X86) || defined(CONFIG_IA64)
> 
> My unifdef version is 1.0(20030701), the latest from debian testing.
> I also tried one for fc9, same result.
> 
> How do you think...
> --
> regards
> Yang,Sheng
> 
> --
> From: Sheng Yang <[EMAIL PROTECTED]>
> Date: Thu, 9 Oct 2008 20:45:02 +0800
> Subject: [PATCH 1/1] kvm: Fix broken Makefile of kernel module
> 
> 
> Signed-off-by: Sheng Yang <[EMAIL PROTECTED]>
> ---
>  kernel/Makefile |4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/Makefile b/kernel/Makefile
> index f2a71fa..e352f77 100644
> --- a/kernel/Makefile
> +++ b/kernel/Makefile
> @@ -65,7 +65,7 @@ header-sync:
>"$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
>   $T/include/asm-$(ARCH_DIR)/
> 
> - set -e && for i in $(find $T -name '*.h'); do \
> + set -e && for i in $$(find $T -name '*.h'); do \
>   $(call unifdef,$$i); done
>   $(call hack, include/linux/kvm.h)
>   set -e && for i in $$(find $T -type f -printf '%P '); \
> @@ -79,7 +79,7 @@ source-sync:
>"$(LINUX)"/virt/kvm/./*.[cSh] \
>$T/
> 
> - set -e && for i in $(find $T -name '*.c'); do \
> + set -e && for i in $$(find $T -name '*.c'); do \
>   $(call unifdef,$$i); done
> 
>   for i in $(hack-files); \
> --
> 1.5.3

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Broken userspace module Makefile

2008-10-09 Thread Sheng Yang
Hi, Avi

After Xiantao's irq_common patches were checked in, we found that it's
impossible to compile with VT-d userspace now. Essentially the problem is
Makefile missed a $ since unifdef patch checked in half an years ago...

But after I fix it, I found it's still impossible to get unifdef run
correctly...

First, unifdef report error when processing include/linux/kvm.h, but I
can't find out what's wrong now.

Second, seems at least my unifdef can't deal with

#if defined(CONFIG_X86) || defined(CONFIG_IA64)

My unifdef version is 1.0(20030701), the latest from debian testing. I also
tried one for fc9, same result.

How do you think...
--
regards
Yang,Sheng

--
From: Sheng Yang <[EMAIL PROTECTED]>
Date: Thu, 9 Oct 2008 20:45:02 +0800
Subject: [PATCH 1/1] kvm: Fix broken Makefile of kernel module


Signed-off-by: Sheng Yang <[EMAIL PROTECTED]>
---
 kernel/Makefile |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/Makefile b/kernel/Makefile
index f2a71fa..e352f77 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -65,7 +65,7 @@ header-sync:
 "$(LINUX)"/arch/$(ARCH_DIR)/include/asm/./kvm*.h \
  $T/include/asm-$(ARCH_DIR)/
 
-   set -e && for i in $(find $T -name '*.h'); do \
+   set -e && for i in $$(find $T -name '*.h'); do \
$(call unifdef,$$i); done
$(call hack, include/linux/kvm.h)
set -e && for i in $$(find $T -type f -printf '%P '); \
@@ -79,7 +79,7 @@ source-sync:
 "$(LINUX)"/virt/kvm/./*.[cSh] \
 $T/
 
-   set -e && for i in $(find $T -name '*.c'); do \
+   set -e && for i in $$(find $T -name '*.c'); do \
$(call unifdef,$$i); done
 
for i in $(hack-files); \
-- 
1.5.3


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html