Firefox for MIPS N32 ABI

Finally, I could announce that it is working (tm).
I just submitted the patches (together with O32 ABI patch) to upstream.
https://bugzilla.mozilla.org/show_bug.cgi?id=482759

This is a big step forward for MIPS N32 GNU/Linux desktop.

One thing to note though: It (the N32 one) would encounter bus error on a few websites, e.g. www.sina.com.cn. I will try to find out why later when I have time.

For those who are into long stories, please read on:

I finally sorted out the font size problem, independently. It turned out that the problem is caused by strict aliasing issue in NSPR (NetScape Portable Runtime). Specifically, when parsing css file, in order to get the font size, PR_strtod() will be used to convert string to floating point value. But because of the strict aliasing issue, certain code in PR_strtod will be optimized out if -fstrict-aliasing is turned on, which is just the case if -O2 is used. And as a result, the floating point value would be wrong, e.g. "1.5" will be converted to 15.0, "0.67" will become 67.0. At first, I thought it was a bug in gcc 4.4 (not released yet, but supports -march=loongson2f), since this problem does not exist if I used gcc 4.3. So I filed a gcc bug [1]. However, as Jakub Jelinek stated, this is actually a bug in NSPR [2].

PS: flameeyes just reminded me that this is not a problem of NSPR its own [3]. He is trying to find out all the packages that have used this dtoa.c. The list is not finished yet. But there is one thing for sure, there will be quite a few.

[1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39418
[2] https://bugzilla.redhat.com/show_bug.cgi?id=487844
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=518927

Comments

Anonymous said…
Support~
jjmmma said…
恭喜啊!
Anonymous said…
Thanks for getting these patches in;
one of my little-endian MIPS32 targets just finished emerging firefox-3.5.3;
although a bit sluggish it displays my favorite sites quite well.

Popular posts from this blog

The diff between the original SEC complaint against Ripple and the amended one

Rippled thread cpu usage

Send $SGB (Songbird) to another wallet using a script