From owner-freebsd-stable Sun Feb 21 2:37:22 1999 Delivered-To: freebsd-stable@freebsd.org Received: from ceia.nordier.com (m1-48-dbn.dial-up.net [196.34.155.48]) by hub.freebsd.org (Postfix) with ESMTP id E5A931148A for ; Sun, 21 Feb 1999 02:37:13 -0800 (PST) (envelope-from rnordier@nordier.com) Received: (from rnordier@localhost) by ceia.nordier.com (8.8.7/8.6.12) id MAA01082; Sun, 21 Feb 1999 12:30:13 +0200 (SAT) From: Robert Nordier Message-Id: <199902211030.MAA01082@ceia.nordier.com> Subject: Re: MATH_EMULATE on 486SX In-Reply-To: from Marcin Cieslak at "Feb 20, 99 11:42:29 pm" To: saper@system.pl (Marcin Cieslak) Date: Sun, 21 Feb 1999 12:30:11 +0200 (SAT) Cc: stable@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL31 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Marcin Cieslak wrote: > I have reproduced the behaviour described in > <3693366C.12CBFA8E@ktinet.com.tw> (on > freebsd-questions) on 3.0-RELEASE. > > The MATH_EMULATE option is present (without it > the kernel panics right after npx0) and we get: > > npx0 on motherboard > npx0: 387 emulator > changing root device ... > > and so on. > > The system boots, but fsck, ping, X server and > some other tools abort at some point with signal 10. > However, one can log in and spawn a shell. > > A quick backtrack on fsck compiled with -g > shows that it core dumps on the line (main.c:271): > > printf("(%d frags, %d blocks, %.1f%% fragmentation)\n", > > And the last output from fsck was: > > /dev/rwd0s1e: 5355 files, 89173 used, 64610 free > > It segfaults on printf("%f") -- so the error is in the > floating point code, presumably in FP emulation. > > The same configuration (I am just removing hdd) works > on 486DX fine. This sounds like the problem fixed by the following commit: | rnordier 1998/10/21 10:10:49 PDT | | Modified files: | sys/i386/i386 math_emulate.c | Log: | Get things limping along again for the 80386 and friends. The | ELF assembler emits a redundant operand-size prefix for the | fnstsw %ax instruction, and this stops the show for 3.0-RELEASE. | | Revision Changes Path | 1.30 +5 -2 src/sys/i386/i386/math_emulate.c -- Robert Nordier To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message