Bug 19113
Summary: | VMware 2.0.2 modules do not compile with redhat 7.0 | ||||||
---|---|---|---|---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Need Real Name <thomass> | ||||
Component: | kernel | Assignee: | Michael K. Johnson <johnsonm> | ||||
Status: | CLOSED WONTFIX | QA Contact: | Brock Organ <borgan> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 7.0 | CC: | dr, jim.zurita | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | i386 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2000-10-17 11:23:12 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Need Real Name
2000-10-14 19:23:15 UTC
That sounds like its probably VMware's problem. Like most vendors we ship kernels with modified VM to do things like 4Gig ram. Do provide some info on the redefinitions you see though, just in case its our mess. Here's some further information about the redefinition warnings. I'm only providing information for compilation of a single .c file in the first of the three vmware modules, but I've attached the vmmon module source code to this bug report, so you can try to compile everything for yourself. I've replaced CC=gcc with CC=kgcc in the Makefile. I've compiled driver.c in the vmmon module (make driver.o). Below I've quoted the compilation command and the compiler output, using the redhat-kernel source and using a plain 2.2.16 kernel source. compilation command (make driver.o): kgcc -O2 -DMODULE -D__KERNEL__ -fno-strength-reduce -pipe -m486 -malign- loops=2 -malign-jumps=2 -malign-functions=2 -fno-omit-frame-pointer -DCPU=586 - Wall -Wstrict-prototypes -DVMWARE__FIX_IO_APIC_BASE=FIX_IO_APIC_BASE_0 - I./include -I./common -I./linux -I./export/include -I/usr/src/linux/include -c linux/driver.c ############ Compiler output with redhat-2.2.16-22 kernel source: ######### In file included from /usr/src/linux/include/linux/sched.h:20, from linux/driver.c:21: /usr/src/linux/include/linux/smp.h:77: warning: `smp_num_cpus' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:28: warning: this is the location of the previous definition /usr/src/linux/include/linux/smp.h:83: warning: `smp_call_function' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:118: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/sched.h:74, from linux/driver.c:21: /usr/src/linux/include/asm/processor.h:96: warning: `cpu_data' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:6: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/interrupt.h:51, from linux/driver.c:31: /usr/src/linux/include/asm/hardirq.h:23: warning: `synchronize_irq' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:138: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/interrupt.h:52, from linux/driver.c:31: /usr/src/linux/include/asm/softirq.h:75: warning: `synchronize_bh' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:142: warning: this is the location of the previous definition {standard input}: Assembler messages: {standard input}:9: Warning: Ignoring changed section attributes for .modinfo ######## END OF Compiler output with redhat-2.2.16-22 kernel source: ######### ############ Compiler output with plain 2.2.16 kernel source: ######### {standard input}: Assembler messages: {standard input}:9: Warning: Ignoring changed section attributes for .modinfo ######## END OF Compiler output with plain 2.2.16 kernel source: ###### Created attachment 4169 [details]
vmmon kernel module from VMware 2.0.2, Makefile modif. to use kgcc
Justed wanted to note, that I can compile the modules against the redhat 2.2.16- 22 kernel source if I enable SMP support in the kernel source. Maybe this can narrow the bug search area down. With respect to the previous comment: I forgot to mention that I also added - DSUPPORT_SMP to the command line. New discoveries: If I configure the kernel *without* CONFIG_MODVERSIONS and add the switch - DMODVERSIONS to the compilation command for the vmware module it compiles without warnings. Isn't that very strange and counter-intuitive? Another thing that I'd like to point out, is that the symbols defined in i386_ksyms.ver that are being redefined are these (manually retyped here, beware of typos): #define cpu_data _set_ver(cpu_data) #define smp_num_cpus _set_ver(smp_num_cpus) #define smp_call_function _set_ver() #define synchronize_irq _set_ver(synchronize_irq) #define synchronize_bh _set_ver(synchronize_bh) I know nothing about it, and haven't looked any further into the source, but it seems weird that something like smp_num_cpus should depend on module versioning, doesn't it? The sources come with the kernel set up for an SMP build. If you switch to non SMP you need to save the .config file, do a 'make mrproper' then put the .config back, make oldconfig and build the tree. Its a funny of the way the kernel build process works. Its a prob;lem in the 2.2.x 'official' tarballs too and very hard to cure |