diff mbox

[v2] kvm-kmod: x86: Drop duplicate external-module-compat objects

Message ID 4A1A412E.2090106@web.de (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Kiszka May 25, 2009, 6:56 a.m. UTC
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(-)

Comments

Avi Kivity May 25, 2009, 9:36 a.m. UTC | #1
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.
diff mbox

Patch

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