Mail Archives: djgpp/1998/11/11/05:50:29
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 -