Re: Broken userspace module Makefile
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
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
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
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
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
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