Date: Fri, 07 Dec 2012 08:43:48 -0800 From: Mark Atkinson <atkin901@gmail.com> To: freebsd-current@freebsd.org Cc: kde-freebsd@freebsd.kde.org Subject: Re: problems with threads/destructors in -current with llvm/clang Message-ID: <k9t6bq$bhs$1@ger.gmane.org> In-Reply-To: <50C1F862.2010501@FreeBSD.org> References: <k9qjml$ri7$1@ger.gmane.org> <50C1E81A.1040107@FreeBSD.org> <50C1F862.2010501@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
On 12/7/2012 6:08 AM, Dimitry Andric wrote: > On 2012-12-07 13:59, Dimitry Andric wrote: >> On 2012-12-06 18:12, Mark Atkinson wrote: >>> Short backstory, I had recently upgraded my workstation to the latest >>> current which included clang as default cc now. >> ... >>> qdbus under kde segfaults in malloc with a huge recursion stack: > ... >> This is a bug in qdbus; it uses a global static QDBusConnection object, >> and the order in which global destructors are called is undefined: > ... >> The global static QDBusConnection object should be replaced by a >> singleton, as suggested here: > > Here is an alternative solution, where the QDBusConnection object is > just a local variable in main(), and passed around as a const reference. > To make the destructors work properly, I also replaced the exit() calls > in main() with return statements. > > With this patch (placed in /usr/ports/devel/dbus-qt4/files), qdbus > starts up and exits normally for me. I did not do any other rigorous > testing, though. :) Thanks for the awesome analysis. I will endeavor to figure out the bug in automoc4 that keeps it segfaulting randomly during compilation. Weirdly it segfaults reliably under portmaster, but may work just fine under just make.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?k9t6bq$bhs$1>
