Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Aug 2008 10:05:41 +0200
From:      "Alexander Leidinger" <Alexander@Leidinger.net>
To:        "Chagin Dmitry" <dchagin@freebsd.org>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: x86_64 linuxulator patches
Message-ID:  <20080818100541.20073jcxqbtyci80@webmail.leidinger.net>
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
Quoting "Chagin Dmitry" <dchagin@freebsd.org> (from Sun, 17 Aug 2008 =20
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!=3D        /sbin/sysctl -n compat.linux.platform =20
>> 2>/dev/null
>> > > >
>> > > > .if ${LINUX_PLATFORM}x =3D=3D "x"
>> > > > IGNORE=3D                 linuxulator is not (kld)loaded
>> > > > .elif ${LINUX_PLATFORM} =3D=3D "i386"
>> > > > LINUX_RPM_ARCH=3D         i386
>> > > > .elif ${LINUX_PLATFORM} =3D=3D "x86_64"
>> > > > LINUX_RPM_ARCH=3D         x86_64
>> > > > SFX=3D                    64
>> > > > .else
>> > > > IGNORE=3D                 ${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/li=
nux
>> > > ABI emulators are mutually exclusive. Is this right ? I think it woul=
d
>> > > 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 wi=
th
>> 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)

Bye,
Alexander.

--=20
If God wanted us to be brave, why did he give us legs?
=09=09-- Marvin Kitman

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID =3D B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID =3D 72077137



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