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

Reply via email to