From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I8aCK-0002yq-Vn for qemu-devel@nongnu.org; Wed, 11 Jul 2007 07:17:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I8aCI-0002yS-TP for qemu-devel@nongnu.org; Wed, 11 Jul 2007 07:17:32 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I8aCI-0002yP-Pk for qemu-devel@nongnu.org; Wed, 11 Jul 2007 07:17:30 -0400 Received: from wr-out-0506.google.com ([64.233.184.231]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1I8aCI-0007tz-Bc for qemu-devel@nongnu.org; Wed, 11 Jul 2007 07:17:30 -0400 Received: by wr-out-0506.google.com with SMTP id 71so1694794wri for ; Wed, 11 Jul 2007 04:17:29 -0700 (PDT) Message-ID: Date: Wed, 11 Jul 2007 14:17:28 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] ANN: DetaolB v0.4 is released In-Reply-To: <200707101542.25709.rob@landley.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <46d6db660706291658n4e267e6aoe6adee31524187a2@mail.gmail.com> <200707101334.57862.rob@landley.net> <200707101542.25709.rob@landley.net> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Rob Landley Cc: uClibc , qemu-devel@nongnu.org, detaolb-devel@lists.sourceforge.net On 7/10/07, Rob Landley wrote: > On Tuesday 10 July 2007 14:30:38 Blue Swirl wrote: > > > The sparc platform has a problem that if I boot with init as a "hello > > > world" program everything behaves as expected (there are two in the image > > > for testing purposes, /tools/bin/hello-dynamic and > > > /tools/bin/hello-static). But if you boot with init=/tools/bin/bash it > > > hangs. And so do the busybox shells. > > > > I think there is a problem with the dynamic loader, I get a bus error > > when running the programs on real Sparc. > > Huh. That's odd because hello-dynamic is using the dynamic loader. (That's > why there's a hello-dynamic and a hello-static.) > > It's entirely possibly that qemu and real sparc hardware are behaving > differently, but I'm not seeing this bus error under qemu. (I haven't got > real sparc hardware, so I can only debug against qemu...) Right. Debugging the problem I found out that in Qemu, 64-bit loads and stores to unaligned addresses do not trigger any traps as they should. I'll commit a fix soon. The problem is in uClibc ldso, there is this kind of store. Running the program on qemu-sparc reveals another problem, probably because of these definitions in ldso/ldso/sparc/dl-sysdep.h: /* 4096 bytes alignment */ /* ...but 8192 is required for mmap() on sparc64 kernel */ #define PAGE_ALIGN 0xffffe000 #define ADDR_ALIGN 0x1fff #define OFFS_ALIGN 0x7fffe000 On Sparc32 the correct page alignment is still 4096. Because of these definitions, some code apparently tries to clear a 8k page, but only 4k of memory is mapped.