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>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?k9t6bq$bhs$1>