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: