Posts Tagged ‘mozilla’

Firefox 29 was released in early May and contained a re-design of the user-interface called “Australis”. Unfortunately Firefox 29 crashes on startup for 32 bit powerpc users on Linux, and BSD along with most SPARC platforms.

This is because of Bug 961488 which I encountered in early January. I was able to isolate the commit that introduced this issue but figuring out why was more difficult.

It had to do with differences in the calling convention with how C structures are passed to functions. Firefox allows javascript code to call functions that are actually implemented in C++. Different plaforms use different conventions for passing data between functions if the caller and callee don’t agree on how function arguments will be passed then you have problems. The 32 bit ppc platform on Linux and the BSD platforms use a different calling convention than ppc64, AIX and ppc OSX.

The good news is that this bug is now fixed and firefox 30 should work on the powerpc. (note ppc64 builds were uneffected by this issue).

I want to thank Ginn Chen of Oracle, Gustavo Luiz Duarte of IBM for their work in coming up with the fix and Landry Breuil for shepherding the patch though the commit process.

I’ve written in the past about compiling recent versions of Firefox for the powerpc under Linux. The Firefox rapid release schedule means that a new firefox release happens almost every 6 weeks. I last wrote about firefox 16, which is now almost 4 releases old. In the past 6 months I’ve been regularly testing firefox builds on the powerpc as they make their way through the development process. I am going to summarize the state of recent firefox versions for ppc users.

(more…)

A few months ago I wrote a blog post on compiling FireFox for the powerpc on Debian Linux. I had built Firefox 9 when I was writing that post and in the intervening months, thanks to the Mozilla rapid release cycle, Firefox 16 has been released. Does Firefox 16 still build on the powerpc with Debian Squeeze?

  1. I downloaded the latest firefox source code from mozilla
  2. This time I didn’t need to apply any patches for the powerpc.
  3. When I ran ./configure followed by ‘make’ as described in my post on Firefox9 I encountered a compile error.
    syntax error in VERSION script when trying to build libraries in the subdirectories under security/nss/lib such as util (libnssutil).

The issue is that the mapfiles such as security/nss/lib/util/nssutil.def that are included in the source tree are not suitable as input files to the linker but need to be pre-processed first. The rules to process the ‘MAPFILE’ are defined in security/coreconf/Linux.mk and are invoked by a rule in security/coreconf/Rules.mk that build a proper mapfile by running the mapfile distributed in the source tree (such as nssutil.def) through sed and grep to produce a file that can be passed to the linker.

The make rule takes a mapfile $(MAPFILE_SOURCE)=nssutil.def and generates $(MAPFILE)=nssutil.def from it. If you try building firefox as I describe above it will put the output files in the same directory as the input files. This means that the sed/grep rule won’t be executed because the target (nssutil.def) is already present and isn’t older than the dependency (nssutil.def), itself.

If you instead

  1. Set the shell environment variable MOZ_OBJDIR to be a directory other than the source directory
  2. Put your configure options in the file .mozconfig, as described in the Mozilla build instructions
  3. Run make -f client.mk

firefox 16 will build successfully. The issues I encountered with the version script shouldn’t be specific to the powerpc or debian.

Firefox 9 on PowerPC

Posted: January 25, 2012 in Uncategorized
Tags: , , ,


My main desktop computer at home is a PowerPC based Mac Mini. I have been running it as a debian Linux system since I bought the machine in 2006. One of my reasons for going with PowerPC was to be different. Choice in CPU architecture is important just like choice in software.

Debian Squeeze includes Firefox (iceweasel) 3.6. The Mozilla rapid release schedule means that in the past year firefox 4, 5, 6, 7, 8 have all come and gone. Newer versions of firefox are rumored to be faster and more memory efficient. Speed and memory efficiency are important if your running a 6+ old mac mini.

I don’t want to upgrade my debian installation to something unstable. Nor could I find packaged powerpc binaries at the Debian Mozilla Team Site. This left me with compiling my own.

I am pleased to report that all I had to do was

  1. Download a source tar for Mozilla 9.0.1
  2. Manually apply the fix for Bug 703534 which involved editing one line in js/src/jscompartment.cpp to fix a compile error
  3. run ./configure
  4. run make
  5. run make install

I have heard rumors that the Mozilla team isn’t officially supporting PowerPC anymore. I am glad that firefox still builds and hope people continue to submit patches and take the time to keep Mozilla running on as many platforms as possible including Linux PowerPC.