Date: Wed, 21 Mar 2012 23:10:30 +0000 From: Mike Clarke <jmc-freebsd2@milibyte.co.uk> To: freebsd-questions@freebsd.org Subject: Re: Problem compiling emulators/virtualbox-ose-kmod 4.1.8_2 Message-ID: <201203212310.31281.jmc-freebsd2@milibyte.co.uk> In-Reply-To: <44pqc564oo.fsf@lowell-desk.lan> References: <201203131413.41392.jmc-freebsd2@milibyte.co.uk> <201203202256.12788.jmc-freebsd2@milibyte.co.uk> <44pqc564oo.fsf@lowell-desk.lan>
index | next in thread | previous in thread | raw e-mail
On Wednesday 21 March 2012, Lowell Gilbert wrote:
> > /data1/tmp/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-
> >4.1.10/out/freebsd.x86/
> >
> > release/bin/src/vboxdrv/r0drv/freebsd/memobj-r0drv-freebsd.c:405:
> > error: invalid type argument of '->'
> > *** Error code 1
> That line is supposed to be an assignment in between a VM_OBJECT_LOCK
> and the corresponding VM_OBJECT_UNLOCK. Can you confirm that the
> patches cause this to be the case?
Yes, that's where it is.
401 if (fContiguous)
402 {
403 Assert(enmType == RTR0MEMOBJTYPE_PHYS);
404 VM_OBJECT_LOCK(pMemFreeBSD->pObject);
405 pMemFreeBSD->Core.u.Phys.PhysBase =
VM_PAGE_TO_PHYS(vm_page_find_least(pMemFreeBSD->pObject, 0));
406 VM_OBJECT_UNLOCK(pMemFreeBSD->pObject);
407 pMemFreeBSD->Core.u.Phys.fAllocated = true;
408 }
> It is a little tricky for me to
> edit files in an i386 environment, but the next step is to track down
> the definition of PRTR0MEMOBJFREEBSD, assuming that is the
> dereference giving the error on your system, and determining whether
> it ought to have the structure entry being dereferenced.
This takes me out of my depth in my very limited experience of C but would it be
this, also in memobj-r0drv-freebsd.c:
50 /**
51 * The FreeBSD version of the memory object structure.
52 */
53 typedef struct RTR0MEMOBJFREEBSD
54 {
55 /** The core structure. */
56 RTR0MEMOBJINTERNAL Core;
57 /** Type dependent data */
58 /** The VM object associated with the allocation. */
59 vm_object_t pObject;
60 } RTR0MEMOBJFREEBSD, *PRTR0MEMOBJFREEBSD;
and then:
109 PRTR0MEMOBJFREEBSD pMemFreeBSD = (PRTR0MEMOBJFREEBSD)pMem;
[snip]
> You might want to try updating your system or trying the -legacy
> version of the port.
Version 4.1.8_1 seems to be working OK for me so I'll probably stick with that for
the time being unless a fix turns up before I upgrade to 9.0-RELEASE which I'm
planning to do shortly.
--
Mike Clarke
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203212310.31281.jmc-freebsd2>
