ports/117350: compile error in emulators/vmware3
Yi Wang
wangyi6854 at gmail.com
Tue Apr 1 01:50:03 PDT 2008
The following reply was made to PR ports/117350; it has been noted by GNATS.
From: "Yi Wang" <wangyi6854 at gmail.com>
To: "Boris Samorodov" <bsam at ipt.ru>
Cc: bug-followup at freebsd.org, fchang at cs.ubc.ca
Subject: Re: ports/117350: compile error in emulators/vmware3
Date: Tue, 1 Apr 2008 16:23:12 +0800
On 3/4/08, Boris Samorodov <bsam at ipt.ru> wrote:
> Here is a relevant diff for the port to test:
> -----
> Index: Makefile
> ===================================================================
> RCS file: /home/pcvs/ports/emulators/vmware3/Makefile,v
> retrieving revision 1.96
> diff -u -r1.96 Makefile
> --- Makefile 25 Oct 2007 00:13:00 -0000 1.96
> +++ Makefile 4 Mar 2008 07:15:18 -0000
> @@ -105,6 +105,10 @@
> cd ${WRKSRC} && ${PATCH} < ${FILESDIR}/fbsd6-1.patch
> cd ${WRKSRC} && ${PATCH} < ${FILESDIR}/fbsd6-2.patch
> .endif
> +.if ${OSVERSION} > 700000
> + cd ${WRKSRC} && ${PATCH} < ${FILESDIR}/fbsd7-1.patch
> + cd ${WRKSRC} && ${PATCH} < ${FILESDIR}/fbsd7-2.patch
> +.endif
>
> pre-install:
> ${INSTALL_MAN} ${WRKSRC}/man/man1/vmware.1 ${MANPREFIX}/man/man1
> Index: files/fbsd7-1.patch
> ===================================================================
> RCS file: files/fbsd7-1.patch
> diff -N files/fbsd7-1.patch
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ files/fbsd7-1.patch 4 Mar 2008 07:15:18 -0000
> @@ -0,0 +1,45 @@
> +--- vmmon-only/freebsd/driver.c.orig 2008-03-04 10:05:14.000000000 +0300
> ++++ vmmon-only/freebsd/driver.c 2008-03-04 10:09:23.000000000 +0300
> +@@ -397,12 +397,12 @@
>
> + if ((error = falloc(td, &fp, &fd)) != 0)
> + return error;
> +
> +- FILEDESC_LOCK(p->p_fd);
> ++ FILEDESC_XLOCK(p->p_fd);
> + fp->f_data = data;
> + fp->f_flag = flags & FMASK;
> + fp->f_ops = &vmmon_fileops;
> + fp->f_type = DTYPE_SOCKET;
> +- FILEDESC_UNLOCK(p->p_fd);
> ++ FILEDESC_XUNLOCK(p->p_fd);
> +
> + #if __FreeBSD_version >= 501111
> + /* falloc now returns TWO references to the file, not one. */
> +@@ -1309,6 +1309,19 @@
> + return FALSE;
> + }
> +
> ++static vm_paddr_t
> ++get_avail_end(void)
> ++{
> ++ vm_paddr_t avail_end;
> ++ int i;
> ++ avail_end = phys_avail[1];
> ++ for (i = 0; phys_avail[i + 1]; i += 2) {
> ++ if (phys_avail[i + 1] > avail_end)
> ++ avail_end = phys_avail[i + 1];
> ++ }
> ++ return avail_end;
> ++}
> ++
> + /*
> + * Allocate and lock numPages of memory physically continguous addresses
> + * below 4GB.
> +@@ -1341,6 +1354,7 @@
> + VMDEBUG("vmmon_alloc_low_pages: malloc MemRange failed\n");
> + return ENOMEM;
> + }
> ++ vm_paddr_t avail_end = get_avail_end();
> + if (avail_end > ISA_DMA_BOUNCE_THRESHOLD)
> + high = trunc_page(ISA_DMA_BOUNCE_THRESHOLD);
> + else
>
> Index: files/fbsd7-2.patch
> ===================================================================
> RCS file: files/fbsd7-2.patch
> diff -N files/fbsd7-2.patch
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ files/fbsd7-2.patch 4 Mar 2008 07:15:18 -0000
> @@ -0,0 +1,18 @@
> +--- vmmon-only/include/vm_asm.h.orig 2003-07-24 01:43:38.000000000 +0400
> ++++ vmmon-only/include/vm_asm.h 2008-03-04 09:29:45.000000000 +0300
> +@@ -1020,6 +1020,7 @@
>
> + *-----------------------------------------------------------------------------
> + */
> +
> ++#if 0
> + static INLINE void
> + Div643264(uint64 dividend,
> + uint32 divisor,
> +@@ -1047,6 +1048,7 @@
> + *quotient = (uint64)hQuotient << 32 | lQuotient;
> + }
> + #endif
> ++#endif
> +
> +
> + #endif /* VM_ASM_H */
>
>
> -----
>
> WBR
>
> --
> bsam
>
The patch works fine. Thanks a lot!
BTW, when will this patch be commited to the ports tree?
--
Regards,
Wang Yi
More information about the freebsd-emulation
mailing list