problem to (re)build Vmware3 on a recent current

Marco Trentini mark at remotelab.org
Tue Feb 15 11:16:00 PST 2005


On a recent current,

FreeBSD 6.0-CURRENT #0: Mon Feb 14 23:38:25 CET 2005     root at einstein.lab:/usr/obj/usr/src/sys/EINSTEIN

if I (re)build Vmware3 port I get this:

<error>

...

cc -O -pipe  -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/include -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/common -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/export/include -I/sys -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/../vmnet-only/freebsd/ -DCDEV_MAJOR_=200 -DDDB -DVMX86_DEBUG -DSMP -DAPIC_IO -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I-  -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/include -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/common -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/export/include -I/sys -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/../vmnet-only/freebsd/ -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include -finline-limit=8000 -fno-common  -mno-align-long-strings -mpreferred-stack-boundary=2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -std=c99 -c /usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/driver.c
cc -O -pipe  -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/include -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/common -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/export/include -I/sys -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/../vmnet-only/freebsd/ -DCDEV_MAJOR_=200 -DDDB -DVMX86_DEBUG -DSMP -DAPIC_IO -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I-  -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/include -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/common -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/export/include -I/sys -I/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/../vmnet-only/freebsd/ -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include -finline-limit=8000 -fno-common  -mno-align-long-strings -mpreferred-stack-boundary=2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -std=c99 -c /usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c: In function `HostIF_InitFP':
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c:322: warning: comparison is always true due to limited range of data type
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c:322: warning: comparison is always true due to limited range of data type
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c:946:2: #warning XXX SMP support is BROKEN and module will not load.
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c:980:2: #warning XXX SMP support is BROKEN and module will not load.
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c: In function `KernelAddr_Get':
/usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only/freebsd/hostif.c:1078: warning: return makes integer from pointer without a cast
*** Error code 1

Stop in /usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only.
*** Error code 1

Stop in /usr/ports/emulators/vmware3/work/vmware-distrib/vmmon-only.
*** Error code 1

Stop in /usr/ports/emulators/vmware3/work/vmware-distrib.
*** Error code 1

Stop in /usr/ports/emulators/vmware3.
*** Error code 1

Stop in /usr/ports/emulators/vmware3.
</error>

I tried to hack the code without success:

vm_offset_t
KernelAddr_Get(KernelAddr *ka, caddr_t addr)
{ 
        vm_offset_t paddr;
        int rc;
 
        if (ka->map!=NULL) {
                Warning("KernelAddr already allocated\n");
        }
        rc = vm_fault_quick(addr, VM_PROT_READ|VM_PROT_WRITE);
        if (rc<0) { /* page don't present in map */
                Warning("KernelAddr_Get!!! Addr %p not present\n", addr);   
                return NULL;
^^^^^^
1078
------
        }
        paddr = vtophys(addr);

For this one the code

return (vm_offset_t)NULL 

seems to solve the 1078's error.

void
HostIF_InitFP(VMDriver *vm)
{
        int mask = (1<<(0xd-0x8));
        uint8 val = inb(0xA1);
  
        /* VnS Why used so ugly hack ? */
#ifdef VMX86_DEVEL
        Log("HostIF_InitFP PIC1=0x%x  %s\n",
                val,
                ((val & mask) ? "Already Masked" : "To mask"));
#endif
 
        if (!(val & mask)) {
                val = val | mask;
                outb(val,0xA1);
^^^^^^^^
322
--------
        }
}

For this one I don't know.

Any hints?

P.S. I remember I had built this port on the current of
(about) one month ago. What happened ever after? Maybe
something about gcc?



-- 
Marco Trentini                mark at remotelab.org
http://www.remotelab.org/


More information about the freebsd-ports mailing list