From owner-freebsd-emulation@FreeBSD.ORG Sun Jul 27 09:22:12 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 D6680106566B; Sun, 27 Jul 2008 09:22:12 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (vlk.vlakno.cz [62.168.28.247]) by mx1.freebsd.org (Postfix) with ESMTP id 892558FC15; Sun, 27 Jul 2008 09:22:12 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id C818867A632; Sun, 27 Jul 2008 11:20:58 +0200 (CEST) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (vlk.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tNuflPNAxFYU; Sun, 27 Jul 2008 11:20:55 +0200 (CEST) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id AC95467292A; Sun, 27 Jul 2008 11:20:55 +0200 (CEST) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.2/8.14.2/Submit) id m6R9Kt2a064333; Sun, 27 Jul 2008 11:20:55 +0200 (CEST) (envelope-from rdivacky) Date: Sun, 27 Jul 2008 11:20:55 +0200 From: Roman Divacky To: Alexander Leidinger Message-ID: <20080727092055.GA64264@freebsd.org> References: <20080725082156.GA41887@freebsd.org> <20080725083122.GA42835@freebsd.org> <20080726083110.5d932695@deskjail> <20080727090309.GA63345@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080727090309.GA63345@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-emulation@FreeBSD.org, "Sean C. Farley" , Chagin Dmitry Subject: [PATCH]: Re: kern/122318 (CMake core dumping, chroot exiting) 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, 27 Jul 2008 09:22:12 -0000 On Sun, Jul 27, 2008 at 11:03:10AM +0200, Roman Divacky wrote: > On Sat, Jul 26, 2008 at 08:31:10AM +0200, Alexander Leidinger wrote: > > Quoting "Sean C. Farley" (Fri, 25 Jul 2008 15:36:52 > > -0500 (CDT)): > > > > > On Fri, 25 Jul 2008, Chagin Dmitry wrote: > > > > > > uname must work on all supported linuxulators > > > > > > I agree, and it does work until I start playing with the Linux version. > > > > Don't play with the linux version while linux programs are running. > > Changing the version from 2.4.x to 2.6.x and vice versa while a program > > is running is not supported at all and known to cause havoc. Roman, do > > we have the possibility to make an easy check in the sysctl handler if > > a linux program is still running and return an error from the handler? > > Did I forgot something which makes it impossible to switch when a > > program was run under 2.6 and stopped? > > I'll submit a patch that makes it impossible to switch the veresion when > programs are running... it's not hard (elf{32}_brand_inuse() for every > elf brand the linuxulator registered) here it is: Index: linux_mib.c =================================================================== --- linux_mib.c (revision 180831) +++ linux_mib.c (working copy) @@ -251,8 +251,17 @@ { struct prison *pr; struct linux_prison *lpr; + Elf32_Brandinfo **brandinfo; int use26; + for (brandinfo = &linux_brandlist[0]; *brandinfo != NULL; + ++brandinfo) + if (elf32_brand_inuse(*brandinfo)) { + printf("Cannot change osrelease while Linux binaries are running.\r\n"); + return (EBUSY); + } + + use26 = (strlen(osrelease) >= 3 && osrelease[2] == '6'); pr = linux_get_prison(td); it's a copy'n'paste from i386/linux/linux_sysvec.c so I didnt bother to test it ;) but I guess it works :) roman