Date: Sun, 17 Aug 2008 21:06:06 +0200 From: Roman Divacky <rdivacky@freebsd.org> To: freebsd-emulation@freebsd.org Subject: Re: x86_64 linuxulator patches Message-ID: <20080817190606.GA67621@freebsd.org> In-Reply-To: <20080817181757.GA2940@dchagin.dialup.corbina.ru> References: <20080810072013.GA15196@dchagin.dialup.corbina.ru> <20080810115406.GR97161@deviant.kiev.zoral.com.ua> <20080810120424.GA15768@dchagin.dialup.corbina.ru> <20080810122124.GS97161@deviant.kiev.zoral.com.ua> <20080817181757.GA2940@dchagin.dialup.corbina.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 17, 2008 at 10:17:57PM +0400, Chagin Dmitry wrote: > On Sun, Aug 10, 2008 at 03:21:24PM +0300, Kostik Belousov wrote: > > On Sun, Aug 10, 2008 at 04:04:24PM +0400, Chagin Dmitry wrote: > > > On Sun, Aug 10, 2008 at 02:54:06PM +0300, Kostik Belousov wrote: > > > > On Sun, Aug 10, 2008 at 11:20:13AM +0400, Chagin Dmitry wrote: > > > > > Hi, as promised, I place x86_64 linuxulator patches. > > > > > > > > > > here the basic patch: > > > > > http://78.107.232.239/linuxulator64-current.patch > > > > > > > > > > here recvmsg && sendmsg patch (not tested with really applications): > > > > > http://78.107.232.239/send-recv-msg.patch > > > > > > > > > > here master repository: > > > > > git://78.107.232.239/linuxulator > > > > > > > > > > and ports used for testing (and only for testing): > > > > > git://78.107.232.239/linux_base-f8 > > > > > git://78.107.232.239/linux_devel-f8 > > > > > git://78.107.232.239/linux_kdump-1.6 > > > > > > > > > > by default on amd64 builds i386 linuxulator, for build x86_64 use > > > > > cd sys/modules/linux > > > > > make -D COMPAT_LINUX64 > > > > > > > > > > for correct recognition of what linuxulator version is used > > > > > added new sysctl compat.linux.platform > > > > > for example use in ports Makefile's: > > > > > > > > > > LINUX_PLATFORM!= /sbin/sysctl -n compat.linux.platform 2>/dev/null > > > > > > > > > > .if ${LINUX_PLATFORM}x == "x" > > > > > IGNORE= linuxulator is not (kld)loaded > > > > > .elif ${LINUX_PLATFORM} == "i386" > > > > > LINUX_RPM_ARCH= i386 > > > > > .elif ${LINUX_PLATFORM} == "x86_64" > > > > > LINUX_RPM_ARCH= x86_64 > > > > > SFX= 64 > > > > > .else > > > > > IGNORE= ${LINUX_PLATFORM} is not supported > > > > > .endif > > > > > > > > > > I shal glad to remarks, proposals and results of testing. > > > > > thnx > > > > > > > > Reading your email, I got an impression that i386/linux and x86_64/linux > > > > ABI emulators are mutually exclusive. Is this right ? I think it would > > > > be most useful to be able to have them both in one kernel. > > > > > > yes, it so. if there are ports working only on i386 it's necessary > > > to do it. I don't know such ports :( > > > > Whether there is a _port_ that has no amd64 counterpart for i386 one is > > irrelevant there. The Linux ABI emulation is supposed to work not only with > > a software installed from port, but with most binaries. > > > > If emulating both ia32 and x86_64 simultaneously is technically feasible > > (and I believe it is), then both should be available. i386->amd64 is > > not the replacement step, this is an backward-compatible upgrade. > > Something few the interested participants of discussion :) > problem in that I am not familiar with a ports infrastructure... > > in my opinion the best decision for amd64 looks so. > we use two modules. linux.ko for x86_64 and linux32.ko for ia32, > option COMPAT_LINUX for x86_64 and COMPAT_LINUX32 for ia32. > and two linux_base directories: /compat/linux for x86_64 > and /compat/linux32 for ia32. I generally agree with that but the problem is that this breaks POLA... :(
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080817190606.GA67621>