There is a compiler bug in VS2015 that results in SSE instructions being emitted when they shouldn't be. Since Firefox still needs to remain compatible with ancient hardware that doesn't support SSE, this is causing crashes on Firefox built with VS2015 (see bug 1265615).
The good news is glandium found a pretty minimal reproduce case and reported the bug to Microsoft. The bad news is the issue still reproduces in the latest pre-release version of the Visual C++ toolchain. The worse news is we'll have to revert to building Firefox 48 (current Aurora) and 49 (current central) with VS2013. Bugs 1270664 and 1270714 track. Aurora will likely land soon. Central might take a few days, as I believe VS2013 is a bit broken on central at the moment. This is really a bummer because a lot of you have taken the time to upgrade to VS2015 and we got some really nice PGO build time wins out of the transition (Windows PGO builds were just as fast as Linux PGO builds in automation). But, stability is stability. I'll try to stand up automation to ensure central remains buildable with VS2015. This will add extra work and strain on automation and likely make writing C++ that remains compatible with multiple Visual Studio versions slightly harder. This is unfortunate, but I think necessary since people will want to use VS2015 for development. FWIW, the crashes we've seen so far are from incorrectly emitted movss instructions. This instruction is part of the original SSE instruction set, which was initially unveiled by Intel on the Pentium 3 in 1999 and later by AMD on the Duron and Athlon XP in 2000-2001. I'm not sure why we still need Firefox to run on processors manufactured in the 90s. By comparison, Chrome has required SSE2 (Intel support since Pentium 4 in 2001 and AMD support since Opteron and Athlon 64 in 2003) since Chrome 35, which was released in mid 2014 (https://bugs.chromium.org/p/chromium/issues/detail?id=348761). Since we've dropped support for OS X <10.9 and are talking about dropping Windows XP support, I'd urge us to consider dropping support for processors without SSE instructions as well. I believe our continued insistence to support these ancient platforms hinders our developer productivity and sacrifices product quality by not allowing us to take advantage of modern technologies. I believe this puts us at a competitive disadvantage compared to other browser vendors. </soapbox_mini_rant>
_______________________________________________ dev-builds mailing list dev-builds@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-builds