Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Aug 2008 21:45:35 +0400
From:      Chagin Dmitry <dchagin@freebsd.org>
To:        freebsd-emulation@freebsd.org
Subject:   Re: x86_64 linuxulator patches
Message-ID:  <20080819174535.GA16788@dchagin.dialup.corbina.ru>
In-Reply-To: <20080818100541.20073jcxqbtyci80@webmail.leidinger.net>
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> <20080818100541.20073jcxqbtyci80@webmail.leidinger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 18, 2008 at 10:05:41AM +0200, Alexander Leidinger wrote:
> Quoting "Chagin Dmitry" <dchagin@freebsd.org> (from Sun, 17 Aug 2008  
> 22:17:57 +0400):
> 
> >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?
> 
> I propose:
>  - /compat/linux64 for 64bit stuff
>  - /compat/linux32 a symlink to /compat/linux
>  - /compat/linux for 32bit stuff (we can think about having)
> 
> Reasons:
>  - existing installations don't get fucked up with a partial update
>    (very big point!)
>  - we don't have to special case amd64-linux32 for LINUXBASE, we
>    just have to distinguish 32 and 64 bit (maybe with switches
>    USE_LINUX and USE_LINUX64, we have to have separate 64bit
>    ports anyway, when we want to be able to install in parallel)
> 

Thanks Alexander, Adrian, Roman! I have understood.


-- 
Have fun!
chd



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080819174535.GA16788>