* [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects @ 2009-05-22 20:04 Jan Kiszka 2009-05-23 1:36 ` Chris Wright 2009-05-24 8:15 ` Avi Kivity 0 siblings, 2 replies; 9+ messages in thread From: Jan Kiszka @ 2009-05-22 20:04 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel [-- Attachment #1: Type: text/plain, Size: 627 bytes --] This redundancy breaks subtly when building against recent OpenSUSE kernels. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> --- x86/Kbuild | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x86/Kbuild b/x86/Kbuild index e304c79..ade87fc 100644 --- a/x86/Kbuild +++ b/x86/Kbuild @@ -13,7 +13,7 @@ endif ifeq ($(CONFIG_IOMMU_API),y) kvm-objs += iommu.o endif -kvm-intel-objs := vmx.o vmx-debug.o ../external-module-compat.o -kvm-amd-objs := svm.o ../external-module-compat.o +kvm-intel-objs := vmx.o vmx-debug.o +kvm-amd-objs := svm.o CFLAGS_kvm_main.o = -DKVM_MAIN [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-22 20:04 [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects Jan Kiszka @ 2009-05-23 1:36 ` Chris Wright 2009-05-23 11:55 ` Jan Kiszka 2009-05-24 8:15 ` Avi Kivity 1 sibling, 1 reply; 9+ messages in thread From: Chris Wright @ 2009-05-23 1:36 UTC (permalink / raw) To: Jan Kiszka; +Cc: Avi Kivity, kvm-devel * Jan Kiszka (jan.kiszka@web.de) wrote: > This redundancy breaks subtly when building against recent OpenSUSE > kernels. What breaks? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-23 1:36 ` Chris Wright @ 2009-05-23 11:55 ` Jan Kiszka 2009-05-24 8:17 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2009-05-23 11:55 UTC (permalink / raw) To: Chris Wright; +Cc: Avi Kivity, kvm-devel [-- Attachment #1: Type: text/plain, Size: 1898 bytes --] Chris Wright wrote: > * Jan Kiszka (jan.kiszka@web.de) wrote: >> This redundancy breaks subtly when building against recent OpenSUSE >> kernels. > > What breaks? When building external-module-compat.c, linux/scripts/basic/hash somehow gets called with a multi-word modname. It complains via its usage, and gcc then tries to compile files it derives from that output: gcc -Wp,-MD,/data/kvm-kmod/x86/../.external-module-compat.o.d -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.3/include -D__KERNEL__ -I/data/kvm-kmod/include -Iinclude -Iinclude2 -I/lib/modules/2.6.27.21-0.1-default/source/include -Iarch/x86/include -I/data/kvm-kmod/include-compat -include include/linux/autoconf.h -include /data/kvm-kmod/x86/external-module-compat.h -I/data/kvm-kmod/x86 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -I/usr/src/linux-2.6.27.21-0.1/include/asm-x86/mach-default -Iinclude/asm-x86/mach-default -fno-stack-protector -fomit-frame-pointer -fasynchronous-unwind-tables -g -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv -DMODULE -D"KBUILD_STR( s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(external_module_compat)" -D"DEBUG_HASH=Usage: ./scripts/basic/hash <djb2|r5> <modname>" -D"DEBUG_HASH2=Usage: ./scripts/basic/hash <djb2|r5> <modname>" -c -o /data/kvm-kmod/x86/../.tmp_external-module-compat.o /data/kvm-kmod/x86/../external-module-compat.c gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden gcc: <modname>: Datei oder Verzeichnis nicht gefunden gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden gcc: <modname>: Datei oder Verzeichnis nicht gefunden Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-23 11:55 ` Jan Kiszka @ 2009-05-24 8:17 ` Avi Kivity 2009-05-25 6:49 ` Jan Kiszka 0 siblings, 1 reply; 9+ messages in thread From: Avi Kivity @ 2009-05-24 8:17 UTC (permalink / raw) To: Jan Kiszka; +Cc: Chris Wright, kvm-devel Jan Kiszka wrote: > Chris Wright wrote: > >> * Jan Kiszka (jan.kiszka@web.de) wrote: >> >>> This redundancy breaks subtly when building against recent OpenSUSE >>> kernels. >>> >> What breaks? >> > > When building external-module-compat.c, linux/scripts/basic/hash somehow > gets called with a multi-word modname. It complains via its usage, and > gcc then tries to compile files it derives from that output: > > gcc -Wp,-MD,/data/kvm-kmod/x86/../.external-module-compat.o.d -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.3/include -D__KERNEL__ -I/data/kvm-kmod/include -Iinclude -Iinclude2 -I/lib/modules/2.6.27.21-0.1-default/source/include -Iarch/x86/include -I/data/kvm-kmod/include-compat -include include/linux/autoconf.h -include /data/kvm-kmod/x86/external-module-compat.h -I/data/kvm-kmod/x86 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -I/usr/src/linux-2.6.27.21-0.1/include/asm-x86/mach- default -Iinclude/asm-x86/mach-default -fno-stack-protector -fomit-frame-pointer -fasynchronous-unwind-tables -g -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv -DMODULE -D"KBUILD_STR( > s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(external_module_compat)" -D"DEBUG_HASH=Usage: ./scripts/basic/hash <djb2|r5> <modname>" -D"DEBUG_HASH2=Usage: ./scripts/basic/hash <djb2|r5> <modname>" -c -o /data/kvm-kmod/x86/../.tmp_external-module-compat.o /data/kvm-kmod/x86/../external-module-compat.c > gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden > gcc: <modname>: Datei oder Verzeichnis nicht gefunden > gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden > gcc: <modname>: Datei oder Verzeichnis nicht gefunden > > Can you show the call to hash? It's more interesting than the aftermath of its failure. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-24 8:17 ` Avi Kivity @ 2009-05-25 6:49 ` Jan Kiszka 2009-05-25 9:40 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2009-05-25 6:49 UTC (permalink / raw) To: Avi Kivity; +Cc: Chris Wright, kvm-devel [-- Attachment #1: Type: text/plain, Size: 2357 bytes --] Avi Kivity wrote: > Jan Kiszka wrote: >> Chris Wright wrote: >> >>> * Jan Kiszka (jan.kiszka@web.de) wrote: >>> >>>> This redundancy breaks subtly when building against recent OpenSUSE >>>> kernels. >>>> >>> What breaks? >>> >> >> When building external-module-compat.c, linux/scripts/basic/hash somehow >> gets called with a multi-word modname. It complains via its usage, and >> gcc then tries to compile files it derives from that output: >> >> gcc -Wp,-MD,/data/kvm-kmod/x86/../.external-module-compat.o.d >> -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.3/include >> -D__KERNEL__ -I/data/kvm-kmod/include -Iinclude -Iinclude2 >> -I/lib/modules/2.6.27.21-0.1-default/source/include >> -Iarch/x86/include -I/data/kvm-kmod/include-compat -include >> include/linux/autoconf.h -include >> /data/kvm-kmod/x86/external-module-compat.h -I/data/kvm-kmod/x86 >> -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing >> -fno-common -Werror-implicit-function-declaration -Os -m64 >> -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time >> -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 >> -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -mno-sse >> -mno-mmx -mno-sse2 -mno-3dnow >> -I/usr/src/linux-2.6.27.21-0.1/include/asm-x86/mach-default >> -Iinclude/asm-x86/mach-default -fno-stack-protector >> -fomit-frame-pointer -fasynchronous-unwind-tables -g >> -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv -DMODULE >> -D"KBUILD_STR( >> s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(external_module_compat)" >> -D"DEBUG_HASH=Usage: ./scripts/basic/hash <djb2|r5> <modname>" >> -D"DEBUG_HASH2=Usage: ./scripts/basic/hash <djb2|r5> <modname>" -c -o >> /data/kvm-kmod/x86/../.tmp_external-module-compat.o >> /data/kvm-kmod/x86/../external-module-compat.c >> gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden >> gcc: <modname>: Datei oder Verzeichnis nicht gefunden >> gcc: <djb2|r5>: Datei oder Verzeichnis nicht gefunden >> gcc: <modname>: Datei oder Verzeichnis nicht gefunden >> >> > > Can you show the call to hash? It's more interesting than the aftermath > of its failure. > strace said eg.: execve("./scripts/basic/hash", ["./scripts/basic/hash", "djb2", "/data/kvm-kmod/x86/..kvm", "kvm-amd", "kvm-intel"], ... Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-25 6:49 ` Jan Kiszka @ 2009-05-25 9:40 ` Avi Kivity 0 siblings, 0 replies; 9+ messages in thread From: Avi Kivity @ 2009-05-25 9:40 UTC (permalink / raw) To: Jan Kiszka; +Cc: Chris Wright, kvm-devel Jan Kiszka wrote: >> Can you show the call to hash? It's more interesting than the aftermath >> of its failure. >> >> > > strace said eg.: > > execve("./scripts/basic/hash", ["./scripts/basic/hash", "djb2", > "/data/kvm-kmod/x86/..kvm", "kvm-amd", "kvm-intel"], ... > Tried to look what's going on. Never again. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-22 20:04 [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects Jan Kiszka 2009-05-23 1:36 ` Chris Wright @ 2009-05-24 8:15 ` Avi Kivity 2009-05-25 6:56 ` [PATCH v2] " Jan Kiszka 1 sibling, 1 reply; 9+ messages in thread From: Avi Kivity @ 2009-05-24 8:15 UTC (permalink / raw) To: Jan Kiszka; +Cc: kvm-devel Jan Kiszka wrote: > This redundancy breaks subtly when building against recent OpenSUSE > kernels. > > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> > --- > > x86/Kbuild | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/x86/Kbuild b/x86/Kbuild > index e304c79..ade87fc 100644 > --- a/x86/Kbuild > +++ b/x86/Kbuild > @@ -13,7 +13,7 @@ endif > ifeq ($(CONFIG_IOMMU_API),y) > kvm-objs += iommu.o > endif > -kvm-intel-objs := vmx.o vmx-debug.o ../external-module-compat.o > -kvm-amd-objs := svm.o ../external-module-compat.o > +kvm-intel-objs := vmx.o vmx-debug.o > +kvm-amd-objs := svm.o > > IIRC, for really old kernels, some symbols are defined in external-module-compat.c and needed by kvm-$arch.ko. So we'll have to export those symbols if we drop the double link (which is a good idea regardless of the build problem). -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-24 8:15 ` Avi Kivity @ 2009-05-25 6:56 ` Jan Kiszka 2009-05-25 9:36 ` Avi Kivity 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2009-05-25 6:56 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel [-- Attachment #1: Type: text/plain, Size: 3018 bytes --] Avi Kivity wrote: > Jan Kiszka wrote: >> This redundancy breaks subtly when building against recent OpenSUSE >> kernels. >> >> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> >> --- >> >> x86/Kbuild | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/x86/Kbuild b/x86/Kbuild >> index e304c79..ade87fc 100644 >> --- a/x86/Kbuild >> +++ b/x86/Kbuild >> @@ -13,7 +13,7 @@ endif >> ifeq ($(CONFIG_IOMMU_API),y) >> kvm-objs += iommu.o >> endif >> -kvm-intel-objs := vmx.o vmx-debug.o ../external-module-compat.o >> -kvm-amd-objs := svm.o ../external-module-compat.o >> +kvm-intel-objs := vmx.o vmx-debug.o >> +kvm-amd-objs := svm.o >> >> > > IIRC, for really old kernels, some symbols are defined in > external-module-compat.c and needed by kvm-$arch.ko. So we'll have to > export those symbols if we drop the double link (which is a good idea > regardless of the build problem). > Checked against 2.6.18 (2.6.16 doesn't build build with my gcc-4.3 and x86/x86_emulate.o sends my gcc-3.3 into some stack overflow): We only need to export kvm_smp_call_function_single. More patches to fix various old kernel build breakages are now also in my queue... ------------> This redundancy breaks subtly when building against recent OpenSUSE kernels. Somehow scripts/basic/hash gets called with multiple modname arguments, causing it to fail and produce invalid output. Changes in v2: - export kvm_smp_call_function_single required by vendor module Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> --- external-module-compat.c | 3 +++ x86/Kbuild | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/external-module-compat.c b/external-module-compat.c index f6013f3..6b69127 100644 --- a/external-module-compat.c +++ b/external-module-compat.c @@ -46,6 +46,7 @@ int kvm_smp_call_function_single(int cpu, void (*func)(void *info), put_cpu(); return r; } +EXPORT_SYMBOL_GPL(kvm_smp_call_function_single); #define smp_call_function_single kvm_smp_call_function_single @@ -75,6 +76,7 @@ int kvm_smp_call_function_single(int cpu, void (*func)(void *info), put_cpu(); return r; } +EXPORT_SYMBOL_GPL(kvm_smp_call_function_single); #define smp_call_function_single kvm_smp_call_function_single @@ -104,6 +106,7 @@ int kvm_smp_call_function_single(int cpu, void (*func)(void *info), } #endif /* !CONFIG_SMP */ +EXPORT_SYMBOL_GPL(kvm_smp_call_function_single); #define smp_call_function_single kvm_smp_call_function_single diff --git a/x86/Kbuild b/x86/Kbuild index e304c79..ade87fc 100644 --- a/x86/Kbuild +++ b/x86/Kbuild @@ -13,7 +13,7 @@ endif ifeq ($(CONFIG_IOMMU_API),y) kvm-objs += iommu.o endif -kvm-intel-objs := vmx.o vmx-debug.o ../external-module-compat.o -kvm-amd-objs := svm.o ../external-module-compat.o +kvm-intel-objs := vmx.o vmx-debug.o +kvm-amd-objs := svm.o CFLAGS_kvm_main.o = -DKVM_MAIN [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2] kvm-kmod: x86: Drop duplicate external-module-compat objects 2009-05-25 6:56 ` [PATCH v2] " Jan Kiszka @ 2009-05-25 9:36 ` Avi Kivity 0 siblings, 0 replies; 9+ messages in thread From: Avi Kivity @ 2009-05-25 9:36 UTC (permalink / raw) To: Jan Kiszka; +Cc: kvm-devel Jan Kiszka wrote: > Checked against 2.6.18 (2.6.16 doesn't build build with my gcc-4.3 and > x86/x86_emulate.o sends my gcc-3.3 into some stack overflow): We only > need to export kvm_smp_call_function_single. > > More patches to fix various old kernel build breakages are now also in > my queue... > > ------------> > > This redundancy breaks subtly when building against recent OpenSUSE > kernels. Somehow scripts/basic/hash gets called with multiple modname > arguments, causing it to fail and produce invalid output. > > Changes in v2: > - export kvm_smp_call_function_single required by vendor module > Applied, thanks. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-05-25 9:41 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-05-22 20:04 [PATCH] kvm-kmod: x86: Drop duplicate external-module-compat objects Jan Kiszka 2009-05-23 1:36 ` Chris Wright 2009-05-23 11:55 ` Jan Kiszka 2009-05-24 8:17 ` Avi Kivity 2009-05-25 6:49 ` Jan Kiszka 2009-05-25 9:40 ` Avi Kivity 2009-05-24 8:15 ` Avi Kivity 2009-05-25 6:56 ` [PATCH v2] " Jan Kiszka 2009-05-25 9:36 ` Avi Kivity
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).