delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/11/11/05:50:29

Message-Id: <3.0.3.32.19981111084939.006b14d0@dce03.ipt.br>
X-Sender: csrabak AT dce03 DOT ipt DOT br (Unverified)
X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.3 (32)
Date: Wed, 11 Nov 1998 08:49:39 -0200
To: djgpp AT delorie DOT com
From: Cesar Scarpini Rabak <csrabak AT ipt DOT br>
Subject: DJGPP tools and utilities SIGFPE'ng after Floating Exception
Mime-Version: 1.0
Reply-To: djgpp AT delorie DOT com

I noticed make version 3.77 and rm from fileutils 3.16 exit with a SIGFPE
just after a fortran (g77 version 0.5.23) program had aborted with a
"Floating Exception".

Below is the minimum I managed to reproduce the problem. My environment is
a Pentium 200 S with 128 Meg of RAM:

C:\_WORK\testbed>ver

Windows 95. [Version 4.00.1111]

C:\_WORK\testbed>go32-v2

go32/v2 version 2.0 built Aug 12 1996 22:27:23
Usage: go32 coff-image [args]
Rename this to go32.exe only if you need a go32 that can run v2 binaries as
 well as v1 binaries (old makefiles).  Put ahead of the old go32 in your PATH
 but do not delete your old go32 - leave it in the PATH after this one.
Set GO32_V2_DEBUG=y in the environment to get verbose output.

DPMI memory available: 92747 Kb
DPMI swap space available: 35301 Kb

The problem develops in the following pattern:

----------------------------------------------------start 
C:\_WORK\testbed>ls
C:\_WORK\testbed>ls -F --color=auto
buggy.f


C:\_WORK\testbed>make buggy
f77    buggy.f   -o buggy

C:\_WORK\testbed>rm buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>make buggy
f77    buggy.f   -o buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>rm buggy

C:\_WORK\testbed>make buggy
f77    buggy.f   -o buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>rm buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>make buggy
Exiting due to signal SIGFPE
Floating Point exception at eip=00023566, x87 status=0000
eax=00000000 ebx=00000000 ecx=0007b054 edx=00000033 esi=00076170 edi=000363ac
ebp=0007638c esp=00076170 program=C:\DJGPP\BIN\MAKE.EXE
cs: sel=00a7  base=82a63000  limit=0007ffff
ds: sel=00b7  base=82a63000  limit=0007ffff
es: sel=00b7  base=82a63000  limit=0007ffff
fs: sel=0087  base=000266f0  limit=0000ffff
gs: sel=00c7  base=00000000  limit=ffffffff
ss: sel=00b7  base=82a63000  limit=0007ffff
App stack: [000763ac..000363ac]  Exceptn stack: [00036300..000343c0]

Call frame traceback EIPs:
  0x00023566
  0x000197bd

C:\_WORK\testbed>make buggy
f77    buggy.f   -o buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>rm buggy

C:\_WORK\testbed>make buggy
f77    buggy.f   -o buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>buggy
Exiting due to signal SIGFPE
Floating Point exception at eip=0000cefe
eax=00000000 ebx=00000000 ecx=ffdba054 edx=00000033 esi=0005e8c8 edi=0001eb04
ebp=0005eae4 esp=0005e8c8 program=C:\_WORK\TESTBED\BUGGY.EXE
cs: sel=00a7  base=82b11000  limit=ffdc5fff
ds: sel=00b7  base=82b11000  limit=ffdc5fff
es: sel=00b7  base=82b11000  limit=ffdc5fff
fs: sel=0087  base=000266f0  limit=0000ffff
gs: sel=00c7  base=00000000  limit=ffffffff
ss: sel=00b7  base=82b11000  limit=ffdc5fff

Call frame traceback EIPs:
  0x0000cefe
  0x00009991

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>rm buggy

C:\_WORK\testbed>buggy
Floating Exception
Abort!

C:\_WORK\testbed>rm buggy.exe
Exiting due to signal SIGFPE
Floating Point exception at eip=0000b722
eax=00000000 ebx=00000000 ecx=ffdb6054 edx=00000033 esi=0005ac90 edi=0001aecc
ebp=0005aeac esp=0005ac90 program=C:\DJGPP\BIN\RM.EXE
cs: sel=00a7  base=82b11000  limit=ffdc5fff
ds: sel=00b7  base=82b11000  limit=ffdc5fff
es: sel=00b7  base=82b11000  limit=ffdc5fff
fs: sel=0087  base=000266f0  limit=0000ffff
gs: sel=00c7  base=00000000  limit=ffffffff
ss: sel=00b7  base=82b11000  limit=ffdc5fff

Call frame traceback EIPs:
  0x0000b722
  0x00009755

C:\_WORK\testbed>

----------------------------------------------------end

The contents of buggy.f is:

      program buggy
      print *, 'O quadrado de ', 5, ' eh ', quadrado(5)
      end program buggy 

      integer function quadrado(x)
      integer x
      quadrado=x*x
      end function quadrado

----------------------------------------------------end buggy.f

I'm not in the general list, just in the announce one, so I may be
reporting something already known, however I could not pinpoint anything in
the readmes or docs for these packages. The only info about an old make
version having problems in machines w/o math coprocessors seems not be
applicable in this case.

I could not drill down further in the testing, but can assure the ones
shown above are repeatable even if one reboots the machine, avoid using
certain applications before starting the test, etc. The SIGFPE in the 'rm'
utility seems more stochastic than with make, but as shown above it ends
happening.

Regards

Cesar

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cesar Scarpini Rabak                      E-mail: csrabak AT ipt DOT br
DME/ASC                                   Phone: 55-11-268-3522 Ext.350
IPT - Instituto de Pesquisas Tecnologicas Fax:   55-11-268-5996
Av. Prof. Almeida Prado, 532.  Sao Paulo - SP 05508-901 BRAZIL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Raw text -


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