[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SIGFPE and -mieee



> Well, I use konquerer (Debian stable) only for file management, but I
> cannot remember it segfaulting; even when (rarly) using it for actual
> browsing. I don't know if mozilla uses -mieee, though.

I'm using unstable (it's okay for file browsing there to).  To get unstable to 
SIGFPE, just go to www.google.com (or, in my limited testing, any other site 
that uses cookies).

> I used gnumeric, also importing Excel spreadsheets. Again, I don't
> know if -mieee is used there, but it works fine and does not segault.

I guess this must depend on the sheet you're importing.  I didn't think my 
sheet was too unusual though (the last 1000 closing prices off the TSE).

> Ok, ogg123 sometimes segfaults, this could be related. mpg123 however,
> I've never seen to segfault.

Try using the arts sound daemon as your output device (-o arts) with mpg321.

> If you tell me, that fixing is impossible (I am not a experienced enough to
> really evaluate that) than this would be sad, and in this case -mieee should
> be made the default.

Well, I don't really know if fixing is impossible.  I do know that it is not 
necessarily as simple as SIGFPE means division by zero which means software 
bug and easy fix (re: my experience with the denormalization thing).

I'm not even sure that that 'fixing' might be the correct term in some cases.  
Assuming we are not dealing with an initialization problem, then it is faster 
(on EV6 and later architectures -- no unnecessary conditional code) and a lot 
cleaner in the code to just check the progress of a numerical calculations 
with isinf/isnan/finite at key points then to have to check the input of each 
operation.

Furthermore, if you do detect an input that would generate a SIGFPE, it might 
not actually be a fatal error.  Does it make sense to terminate the 
application?  The IEEE standard handles both non error situations (i.e. 
exp(-inf)=0+) and actual error situations (i.e. inf/inf=NaN) very naturally.

> Do you know if there is an easy way of accessing the rules files of
> all packages? If that is possible, I'd compile a list of "known to
> work" apps, so that those packages would override the -mieee. I'd post
> the list here, so anyone could add/object to entries.

The easiest ways I know of to check for -mieee are to do an apt-get source 
<package> and then an egrep -R -- -mieee <package source directory>, or to do 
an objdump -d <binary/library> | egrep trapb.

This last one checks the assembler code directly for the trapb instruction.  
It's this instruction that causes the slow down (if you compile with -mieee, 
GCC inserts trapb instructions after floating point instructions).  The (EV5 
and earlier) architectures wait at the trapb instructions until all prior 
instructions are guaranteed to not generate any exceptions.

> If you consider my machine irrelevant, because it is not the latest
> alpha generation but only a (very nice IMHO) 20164a, then yes. One of
> the reasons I chose Debian was btw. that "irrelevant" machines are
> supported and not "work by chance".

That sounds like a good reason.  :)

Later -T

-- 
 Tyson Whitehead  (-twhitehe@uwo.ca -- WSC-)
 Computer Engineer                        Dept. of Applied Mathematics,
 Graduate Student- Applied Mathematics    University of Western Ontario,
 GnuPG Key ID# 0x8A2AB5D8                 London, Ontario, Canada



Reply to: