Instead of using libm, the JavaScript interpreter uses it's own internal copy of fdlibm. fdlibm assumes (unless otherwise specified) that the target architecture is big endian, which leads major problems on AMD64, which is a little endian arch that fdlibm doesn't know about. Quick fix for AMD64 is attached. Other little endian architectures that fdlibm doesn't know about will probably also need to be fixed. Upstream bug: http://bugzilla.mozilla.org/show_bug.cgi?id=253241
Created attachment 103660 [details] Enlighten fdlibm regarding AMD64's endianness. This also does s/VA_COPY/va_copy/, which doesn't seem to break firefox in practice, but does break the stand-alone JS interpreter.
Our Firefox package will pull this in when upstream pushes its next release, which according to the roadmap will be soon.
The 1.0 PR1 release does not include this bug fix, and, afaik, this fix has not yet been merged upstream. The Fedora roadmap lists the FC3 final release date as Nov 1, the Mozilla roadmap lists the Firefox 1.0 release date as Oct 11. If the Firefox final release date slips past the FC3 release date, or this fix is not merged upstream in time for Firefox 1.0, then this patch will need to be applied to whatever ships in FC3.
This seems like a no-brainer to apply though Chris... can't we include it until it actually _does_ come down from upstream?
The patch attached does not compile across the board. I pinged upstream yesterday and there is something checked in now that I'll have a look at and port over to our builds.
Fixed in firefox-0.10.0-1.0PR1.1 which should be available tomorrow morning.
Was this fixed in the mozilla package as well?
Ahh, looks like it's in the 1.7.x tree.