www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/08/01/22:49:18

From: fredex AT fcshome DOT stoneham DOT ma DOT us
Message-Id: <199608012350.TAA01117@fcshome.stoneham.ma.us>
Subject: Re: linux+dosemu with djgpp
To: eliz AT is DOT elta DOT co DOT il (Eli Zaretskii)
Date: Thu, 1 Aug 1996 19:50:31 -0400 (EDT)
Cc: djgpp AT delorie DOT com
In-Reply-To: <Pine.SUN.3.91.960731084010.1793K-100000@is> from "Eli Zaretskii" at Jul 31, 96 08:42:49 am

Thinking furiously, Eli Zaretskii wrote:
> 
> 
> On Tue, 30 Jul 1996 fredex AT fcshome DOT stoneham DOT ma DOT us wrote:
> 
> > I'd expect that Linux's FP emulator would handle the lack of a co-processor
> > even for DJGPP programs, but in fact neither gcc nor programs compiled
> > with it will run without that in the environment. WITH it, everything but
> > make works. I dunno what's happening.
> 
> Do you mean that other programs that use floating point (except Make) run
> on your system?  Try to write a trivial program that does some FP
> computations and see if it bombs. 
> 
Hmmmmm...
What I thought was happening wasn't as weird as what IS happening.
It's true that if, under DOSEMU, I don't set both 387=N and 
EMU387=c:\djgpp\bin\emu387.dxe that gcc won't run--it bombs with an
FP exception. 

What's also true is that (with those vars set) I can compile a program 
such as the following one:

	#include <stdio.h>
	main()
		{
		float a, b, c;

		a = 4.0;
		b = 3.0;
		c = a*b;
		}
andn run it without any crash or other messages. (do I assume it actually
performed the floating point math?? I'll check it under GDB later.)

If I add a line like printf ("%f\n", c); to the program it hangs for
longer than I care to wait. While it's hung, I can see that top shows
that dosemu is eating about 85% of the CPU. I can ^C out of the program
then the usage shown by top drops down to a much more reasoanble level.

I find this curious,... I'm told (never having looked at the sources to
verify it) that GCC and friends all use floating point math. If true,
that means that floating point works on DOSEMU on this system as long
as I've got the dos environment set up to point to emu387.dxe. Makes me
wonder why this program won't PRINT the result. I'd also sorta expect
that since the Linux kernel does FP emulation, that DOS programs would
lean on that capability without NEEDing a dos-level emulator. But then
what do I know? :-)

Fred


-- 
-------------------------------------------------------------------------------
 .----    Fred Smith    /                        Office: fred AT computrition DOT com 
( /__  ,__.   __   __ /  __   : /                                 508-663-2524 
 /    /  /   /__) /  /  /__) .+'           Home: fredex AT fcshome DOT stoneham DOT ma DOT us 
/    /  (__ (___ (__(_ (___ / :__                                 617-438-5471 
-------------------------------- Jude 1:24,25 ---------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019