Date: Wed, 15 Dec 2004 10:59:26 -0800 From: Sean McNeil <sean@mcneil.com> To: Ruslan Ermilov <ru@FreeBSD.org> Cc: "Tim J. Robbins" <tjr@FreeBSD.org> Subject: Re: ports/emulators/linux_base on amd64 Message-ID: <1103137166.76745.9.camel@server.mcneil.com> In-Reply-To: <20041215102625.GM25967@ip.net.ua> References: <20041214182153.GA80721@ip.net.ua> <1103049246.21655.3.camel@server.mcneil.com> <20041214215415.GB29362@ip.net.ua> <1103062382.46568.1.camel@server.mcneil.com> <1103066141.2041.4.camel@server.mcneil.com> <20041215102625.GM25967@ip.net.ua>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On Wed, 2004-12-15 at 12:26 +0200, Ruslan Ermilov wrote: > The reason for this is as follows: > > hammer# grep -C3 TJR /sys/compat/linux/linux_socket.c > struct iovec *iov; > int error; > > /* XXXTJR sendmsg is broken on amd64 */ > > error = copyin(args, &linux_args, sizeof(linux_args)); > if (error) > -- > struct cmsghdr *cmsg; > int error; > > /* XXXTJR recvmsg is broken on amd64 */ > > if ((error = copyin(args, &linux_args, sizeof(linux_args)))) > return (error); Is there any additional work being done with linux emulation on amd64? There is something odd here that puzzles me. There are changes to convert 32-bit pointers over to 64-bit as it does the copyin. For sendmsg/recvmsg, these have a msghdr structure that can get a little complicated (especially mgs_control which is protocol dependent). But I'm not sure why this is done at all. Why convert the 32-bit pointers in the linux emulation? Why not have the linux emulation as it should be - independent of architecture sizes - and have it build on top of 64-bit or compat_ia32 for 32-bit? This would go a very long way in getting linux64 working under FreeBSD, wouldn't it? Cheers, Sean [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (FreeBSD) iD8DBQBBwImOyQsGN30uGE4RAmSYAJ9PhpNyXus+bst0ltnKu7s2vtZKywCeOrNh uxfKSvemfLK+22gGcVw+dJ8= =QdJ9 -----END PGP SIGNATURE-----home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1103137166.76745.9.camel>
