http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #201 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
With current gcc trunk and mozilla-central trunk Firefox crashes on startup
when
build with -flto (--enable-optimize=-O3):

0x00007ffff5ce5d8f in nsCOMPtr_base::assign_with_AddRef(nsISupports*) [clone
.constprop.13162] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
(gdb) bt
#0  0x00007ffff5ce5d8f in nsCOMPtr_base::assign_with_AddRef(nsISupports*)
[clone .constprop.13162] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
#1  0x00007ffff3fe60eb in nsSocketTransport::OnSocketDetached(PRFileDesc*) ()
from /var/tmp/moz-build-dir/dist/bin/libxul.so
#2  0x00007ffff3eb74ac in
nsSocketTransportService::DetachSocket(nsSocketTransportService::SocketContext*,
nsSocketTransportService::SocketContext*) ()
   from /var/tmp/moz-build-dir/dist/bin/libxul.so
#3  0x00007ffff3fff28f in nsSocketTransportService::Run() () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#4  0x00007ffff4059c6a in nsThread::ProcessNextEvent(bool, bool*) () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#5  0x00007ffff5ce5b39 in NS_ProcessNextEvent(nsIThread*, bool) [clone
.constprop.13167] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
#6  0x00007ffff45af7a0 in
mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)
() from /var/tmp/moz-build-dir/dist/bin/libxul.so
#7  0x00007ffff3ec649d in MessageLoop::Run() () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#8  0x00007ffff3fe7a56 in nsThread::ThreadFunc(void*) () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#9  0x00007ffff7e7757c in _pt_root () from
/var/tmp/moz-build-dir/dist/bin/libnspr4.so
#10 0x00007ffff7bc41e2 in start_thread () from /lib/libpthread.so.0
#11 0x00007ffff74932ad in clone () from /lib/libc.so.6

When I build with PGO/LTO Firefox crashes later (when I close a
tab with e.g.: https://github.com/JuliaLang/julia/pull/6018 ):

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff51645ed in PL_DHashTableEnumerate(PLDHashTable*, PLDHashOperator
(*)(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*), void*) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
(gdb) bt
#0  0x00007ffff51645ed in PL_DHashTableEnumerate(PLDHashTable*, PLDHashOperator
(*)(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*), void*) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#1  0x00007ffff5754d32 in PresShell::Destroy() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#2  0x00007ffff5754831 in nsDocumentViewer::DestroyPresShell() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#3  0x00007ffff55ee5c4 in nsDocumentViewer::Hide() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#4  0x00007ffff57b72eb in nsDocShell::SetVisibility(bool) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#5  0x00007ffff5a589a4 in nsFrameLoader::Hide() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#6  0x00007ffff5a588f6 in nsHideViewer::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#7  0x00007ffff53b97de in nsContentUtils::RemoveScriptBlocker() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#8  0x00007ffff53cc954 in nsDocument::EndUpdate(unsigned int) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#9  0x00007ffff5651dd6 in mozilla::dom::XULDocument::EndUpdate(unsigned int) ()
from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#10 0x00007ffff549673b in nsINode::doRemoveChildAt(unsigned int, bool,
nsIContent*, nsAttrAndChildArray&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#11 0x00007ffff5496085 in nsXULElement::RemoveChildAt(unsigned int, bool) ()
from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#12 0x00007ffff5494df9 in nsINode::RemoveChild(nsINode&, mozilla::ErrorResult&)
() from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#13 0x00007ffff5494a00 in mozilla::dom::NodeBinding::removeChild(JSContext*,
JS::Handle<JSObject*>, nsINode*, JSJitMethodCallArgs const&) [clone
.lto_priv.13709] ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#14 0x00007ffff53b01e7 in mozilla::dom::GenericBindingMethod(JSContext*,
unsigned int, JS::Value*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#15 0x00007ffff5262744 in js::Invoke(JSContext*, JS::CallArgs,
js::MaybeConstruct) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#16 0x00007ffff524a14c in Interpret(JSContext*, js::RunState&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#17 0x00007ffff5249801 in js::RunScript(JSContext*, js::RunState&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#18 0x00007ffff52627ec in js::Invoke(JSContext*, JS::CallArgs,
js::MaybeConstruct) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#19 0x00007ffff52a574c in js::Invoke(JSContext*, JS::Value const&, JS::Value
const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#20 0x00007ffff55c553d in nsJSEventListener::HandleEvent(nsIDOMEvent*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#21 0x00007ffff5869106 in
nsXBLPrototypeHandler::ExecuteHandler(mozilla::dom::EventTarget*, nsIDOMEvent*)
() from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#22 0x00007ffff5868554 in nsXBLEventHandler::HandleEvent(nsIDOMEvent*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#23 0x00007ffff5402b6c in
nsEventListenerManager::HandleEventInternal(nsPresContext*,
mozilla::WidgetEvent*, nsIDOMEvent**, mozilla::dom::EventTarget*,
nsEventStatus*) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#24 0x00007ffff53c38b2 in
nsEventTargetChainItem::HandleEventTargetChain(nsTArray<nsEventTargetChainItem>&,
nsEventChainPostVisitor&, nsDispatchingCallback*, ELMCreationDetector&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#25 0x00007ffff53c1fe7 in nsEventDispatcher::Dispatch(nsISupports*,
nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*,
nsDispatchingCallback*, nsCOMArray<mozilla::dom::EventTarget>*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#26 0x00007ffff5a686c5 in
nsTransitionManager::FlushTransitions(mozilla::css::CommonAnimationManager::FlushFlags)
()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#27 0x00007ffff563309f in nsRefreshDriver::Tick(long, mozilla::TimeStamp) ()
from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#28 0x00007ffff56325ac in mozilla::RefreshDriverTimer::TimerTick(nsITimer*,
void*) () from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#29 0x00007ffff54a32f7 in nsTimerEvent::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#30 0x00007ffff5166651 in nsThread::ProcessNextEvent(bool, bool*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#31 0x00007ffff5627914 in
mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#32 0x00007ffff5146183 in MessageLoop::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#33 0x00007ffff562770a in nsBaseAppShell::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#34 0x00007ffff56276be in nsAppStartup::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#35 0x00007ffff5136f58 in XRE_main () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#36 0x000000000040aa58 in do_main(int, char**, nsIFile*) [clone .lto_priv.18]
()
#37 0x000000000040a285 in main ()

A "vanilla" build without PGO or LTO runs fine.

Reply via email to