Hello Viktor, On Wed, Aug 10, 2016 at 01:44:33AM +0200, Jean-Philippe MENGUAL wrote: > > from my point of view (I am not a developer) it looks like this is the > > same bug as 833532 (and the merged bugs). I suggest you to set > > "javascript.options.baselinejit" to "false" in about:config. If this > > fixes your problem, this is an indicator that your bug is the same as > > 833532. I think you have to set this option in safe mode because for me > > icedove crashes when I try to open about:config with version > > 1:45.2.0-2+b1. Or you downgrade to an older version of icedove, set the > > option and then upgrade again to test it. > > ok I experience exactly what you say. To toogle the option, I need safe > mode, otherwise Icedove crashes. The option makes the segfault > disappear. What is this switch for? Useful?
it's o.k. to suppose a possible workaround, but it would be better to explain what this switch is doing. There will be one day a new version provided by the repository and the workaround is probably not needed an longer. So the user has to do the rollback of this change on his own. A quick search on that setting shows that there are three options that work mostly together. javascript.options.ion = true|[false] javascript.options.baselinejit = true|[false] javascript.options.asmjs = true|[false] The default is true for all these options. If they set to false the JS engine is working more strict and is disabling interaction between some JS files that are running. This makes the whole processes slower, but, this doesn't solve the origin of the problem. The base for the segfaults are some optimizations done by the gcc-6 compiler, the GCC-5 isn't doing that (yet). The source is generating some checks that are always true and the compiler is detecting this and is correctly optimizing out the functions or the variables because they normaly not needed from a technical point. But of course the functions are used somewhere. It may be that you never need this function/variable, on one day there there is one extension that triggers one of this not available variable/function and vòila, there is the segfault. That simple and that difficult is the problem. The problem is not the compiler, he is doing his job correctly. The real problem are the checks inside the source that are done some kind of wrong because the check is producing every time the same result that is correctly detected by the compiler. Regards Carsten

