* [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-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
* 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
* [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
* 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
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).