Date: Sat, 19 Jun 2004 18:38:54 +1000 From: Tim Robbins <tjr@freebsd.org> To: David O'Brien <obrien@freebsd.org> Cc: freebsd-amd64@freebsd.org Subject: Re: Preliminary support for running 32-bit Linux binaries Message-ID: <20040619083854.GA63694@cat.robbins.dropbear.id.au> In-Reply-To: <20040618163459.GA23934@dragon.nuxi.com> References: <20040617154353.GA54873@cat.robbins.dropbear.id.au> <20040618163459.GA23934@dragon.nuxi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 18, 2004 at 09:34:59AM -0700, David O'Brien wrote: > On Fri, Jun 18, 2004 at 01:43:53AM +1000, Tim Robbins wrote: > > I'm pleased to announce that my work on running 32-bit Linux binaries > > on FreeBSD/amd64 has come to the point where it runs almost everything I > > throw at it, including the Sun JDK, OpenOffice.org and Acrobat Reader. > > > > The patch and some brief notes on installing the Linux base system and > > a few popular applications are available at: > > http://people.freebsd.org/~tjr/linux32.html > > You've been using Slackware bits, but the project has settled on Red Hat > bits for 32-bit x86 Linux support. Can you retest with the same 32-bit > bits as in ports/emulators/linux_base/? I'll try that, but I would eventually like to see linux_base updated to a non-obsolete version of Red Hat / Fedora Core so that recent applications are more likely to work. We would need to be careful to avoid bringing in an NPTL libpthread library though. (I initially chose Slackware because it's clean, simple, obvious, and easy to install without a fully-functioning emulation environment. It's also a lot smaller to download over my poor modem.) > I feel we should install your bits into sys/amd64/linux32/ and leave > sys/amd64/linux/ for the 64-bit Linux compat bits. This module's > Makefile should live in sys/modules/linux32/ also. Agreed. I had planned to do this before committing it to CVS, as well as renaming the files in amd64/linux to linux32_foo.c. We still need a way to avoid clashes on global symbol names (e.g. we can't call both the 32-bit and 64-bit versions of the "stat" syscall linux_stat()), and I haven't come up with an elegant way of solving this. This is only an issue if we want to have both 32-bit and 64-bit Linux emulation compiled into the kernel at the same time; everything should work fine if either or both are loaded from modules. I'm leaning towards doing something like what we do in imgact_elf.c. Tim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040619083854.GA63694>