From owner-freebsd-emulation@FreeBSD.ORG Sun Aug 17 18:18:49 2008 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 514731065675 for ; Sun, 17 Aug 2008 18:18:49 +0000 (UTC) (envelope-from root@dchagin.dialup.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id DC8978FC0C for ; Sun, 17 Aug 2008 18:18:48 +0000 (UTC) (envelope-from root@dchagin.dialup.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 92C7B171014 for ; Sun, 17 Aug 2008 22:18:46 +0400 (MSD) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.dialup.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 969120736 for freebsd-emulation@freebsd.org; Sun, 17 Aug 2008 22:18:46 +0400 Received: from dchagin.dialup.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.dialup.corbina.ru (8.14.2/8.14.2) with ESMTP id m7HII29b003949 for ; Sun, 17 Aug 2008 22:18:02 +0400 (MSD) (envelope-from root@dchagin.dialup.corbina.ru) Received: (from root@localhost) by dchagin.dialup.corbina.ru (8.14.2/8.14.2/Submit) id m7HIHv23003948 for freebsd-emulation@freebsd.org; Sun, 17 Aug 2008 22:17:57 +0400 (MSD) (envelope-from root) Date: Sun, 17 Aug 2008 22:17:57 +0400 From: Chagin Dmitry To: freebsd-emulation@freebsd.org Message-ID: <20080817181757.GA2940@dchagin.dialup.corbina.ru> Mail-Followup-To: freebsd-emulation@freebsd.org 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> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080810122124.GS97161@deviant.kiev.zoral.com.ua> User-Agent: Mutt/1.4.2.3i Subject: Re: x86_64 linuxulator patches X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Aug 2008 18:18:49 -0000 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. there are other opinions? thnx! -- Have fun! chd