FW: VMWare Tools for FreeBSD
Alexander Sack
pisymbol at gmail.com
Tue Mar 18 19:24:57 UTC 2008
Comments below:
On Tue, Mar 18, 2008 at 12:13 PM, Gelsema, P (Patrick)
<gelsemap at superhero.nl> wrote:
> On Tue, March 18, 2008 23:36, Alexander Sack wrote:
> > I believe the issue is that MNT_NODEV which should be defined in
> > /usr/include/sys/mount.h was deprecated and removed from FreeBSD:
> >
> > http://ftp.cz.freebsd.org/pub/FreeBSD-cvs/gnats/conf/79715
> >
> > At line 42 in hgfsmounter.c, add
> >
> > # define MNT_NODEV 0
> >
> > Then rebuild. SHould work fine now.
> >
> > I configured my build environment via the README with ./configure
> > LDFLAGS="/usr/local/lib" etc.
> >
> Done
>
> #./configure LDFLAGS="/usr/local/lib" --without-x
> #make
> #make install
>
> That all goes ok
> But when I run #make modules I get an error
>
> wolverine# make modules
> make -C modules
> make -C "freebsd/vmmemctl"
> make -C "freebsd/vmxnet"
> cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99
> -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param
> inline-unit-growth=100 --param large-function-growth=1000 -fno-common
> -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow
> -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Wall -Wredundant-decls
> -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
> -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c
> if_vxn.c
> if_vxn.c: In function 'vxn_attach':
> if_vxn.c:302: warning: passing argument 4 of 'bus_setup_intr' from
> incompatible pointer type
> if_vxn.c:302: warning: passing argument 5 of 'bus_setup_intr' from
> incompatible pointer type
> if_vxn.c:302: error: too few arguments to function 'bus_setup_intr'
> if_vxn.c:378: error: 'struct arpcom' has no member named '_ac_enaddr'
> if_vxn.c:385: error: 'struct arpcom' has no member named '_ac_enaddr'
> *** Error code 1
>
> Stop in /tmp/open-vm-tools-2008.03.03-79993/modules/freebsd/vmxnet.
> *** Error code 1
>
> Any ideas?
bus_setup_intr() kernel API seems to have either changed or handled
differently in 7.0. I believe you can add a NULL after the flags
(INTR_MPSAFE) which tells BSD to use the standard interrupt handler
instead of a top-level handler.
_ac_enaddr is because arpcom as defined in net/if_arp.h no longer
exists. Typically the protocol bits are stuffed in if_l2com (layer
2).
I made the macro in net_compat.h
#define VXN_SC2ENADDR(softc) (IF_LLADDR(VXN_SC2IFP(softc))
and then removed the "&" from both references in if_vxn.c as this
macro already returns a pointer to char.
That got me past this problem. Btw, this isn't an official port since
I didn't really rectify the net_compat.h stuff (I suppose you could
make the 600000 to 700055, etc.).
I'm still getting some further issues with vnodeops and vfsops with
some modules (I believe vops_lcok should be vops_lock1) but I don't
know about the other problem.
-aps
--
"What lies behind us and what lies in front of us is of little concern
to what lies within us." -Ralph Waldo Emerson
More information about the freebsd-questions
mailing list