Since I've updated Firefox to 3.6.2, I've been getting a lot of segfaults. These segfaults seem random but they always happen when I try to open multiple pages in tabs in very short time. When I try to load only one page at a time, it seems to work fine. Reproducible: Always
Created attachment 228107 [details] Backtrace after segfault Here's the best backtrace I could get. It seems the problem is somewhere between xulrunner and cairo. Rebuilding these packages with debug use flag doesn't add any more verbosity to the backtrace.
Created attachment 228109 [details] emerge --info output
Can you try to emerge it with CFLAGS="-O2 -march=prescott -pipe" only? if you still have segfaults, please reopen the bug. Thank you for your report. I resolve the bug as TEST-REQUEST.
++and any dependencies
Removing optimization options seems to help, I'll do more testing later today. I assume I should report this to GCC maintainers.
(In reply to comment #5) > Removing optimization options seems to help, I'll do more testing later today. > I assume I should report this to GCC maintainers. > I'm not a gcc expert, but most of such problems are caused by ricing cflags, like you did. Firefox code is tricky, overoptimization may cause such issues. If you can test, and eliminate the problem to the flag, or mix of flags that cause the problem, and this happens only to this specific version of firefox, maybe you can reopen the bug and we will assign it to the proper maintainters, and they can decide if they will filter that flags inside the ebuilds, or not.
(In reply to comment #6) > I'm not a gcc expert, but most of such problems are caused by ricing cflags, > like you did. Firefox code is tricky, overoptimization may cause such issues. I do have some experience with compiler internals (not GCC though) and there are basically 2 possibilities: 1) The optimizations I used are buggy and need to be fixed because they generate incorrect instructions. 2) Firefox sources break some language restriction (eg. do something that should never ever be done according to language standard) and GCC *correctly* optimizes out something important. "Tricky" code usually means the latter, so I'll take a closer look on weekend and file a better bugreport to the right place.