Firefox 97 on POWER

Firefox 97 is out. Because printing to PostScript was useful, Mozilla has removed it (though at least right now you can still print to PDF, and you can still print to PostScript printers, just not a file). More helpfully, there are various CSS, SVG and DOM improvements.

It was previously reported that WebRTC was broken on OpenPOWER under Fx96, which looks like bug 1738445 (a replay of bug 1465274, which I upstreamed four years ago). I don't use WebRTC myself due to the way my internal network is configured, so don't consider this in any way an attestation of functionality, but I was able to build Firefox 97 unmodified with the .mozconfigs and LTO-PGO patch from Firefox 95. Although I have an old build of gn, I tested whether that was the necessary piece by pulling that line out of the configuration, and it still built — at least under gcc. I did do a test clang build (removing the compiler export lines and removing forcing linkage with bfd), and that did fail to build (with or without gn), and --disable-webrtc along with this change to NSS did allow it to compile. However, when started up with ./mach run, the clang build could browse but complained the history and places databases were corrupt and about:support was messed up. Using the same profile with a gcc build was fine. IDK.

I do need to upstream some changes to that section of NSS. Besides fixing the bad #if (I agree with the analysis it only works on gcc by happy accident), it wasn't really written for anything past POWER4 or so. In fact, we could probably just assume that any ppc64le has a 128-byte cache line and shortcut the logic entirely (AFAIK this would just be POWER8, POWER9 and Power10), and just keep the code only on big-endian to still support the PowerPC 970. Tell me the weird edge case or unusual Power CPU this would break in the comments before I get a round tuit.

I've had a bad week of work, but I'm looking forward to making more progress on the test suite and continuing the OpenPOWER JIT development over the long holiday weekend here in the USA. Remember: I don't have a life so you don't have to.


  1. It'd be rude to let your contributions go unheralded - we all deeply appreciate your hard work and expertise.

  2. Not just the 970 -- the T2080 is also BE only unless you don't want AltiVec.

    1. By "support the 970" I mean for its 32-byte dcbz option, which is unique to it. I think the T2080 is 128-byte but I need to check that.

  3. JIT-enabled Firefox rpm for Fedora users is now available from
    And thanks again, Cameron, it's much better user experience than with the non-JIT one :-)


Post a Comment

Comments are subject to moderation. Be nice.