NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/37347 (ld.elf_so does not execute .init/.fini functions in order)
The following reply was made to PR bin/37347; it has been noted by GNATS.
From: Gary Duzan <gary%duzan.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: netbsd-bugs%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost,
christos%zoulas.com@localhost,
ad%netbsd.org@localhost
Subject: Re: bin/37347 (ld.elf_so does not execute .init/.fini functions in
order)
Date: Sun, 17 May 2009 18:55:08 -0400
I know this comment is a bit late in coming, but I've only just
discovered the relationship of my bug to this one. The December 7,
2007, change to ld.elf_so seems to have broken finance/kmymoney2.
On startup the code hits a null pointer in a QString while trying
to run the static initializers for one of kmymoney's shared libraries.
It seems the Qt folks have anticipated the problem, though, since
they have an OS-specific workaround in place. Adding NetBSD to the
workaround lets kmymoney2 start up again:
===========================================================================
--- src/tools/qstring.cpp.orig 2007-02-02 09:01:05.000000000 -0500
+++ src/tools/qstring.cpp 2009-05-17 12:20:46.000000000 -0400
@@ -1362,7 +1362,7 @@
QStringData* QString::makeSharedNull()
{
QString::shared_null = new QStringData;
-#if defined( Q_OS_MAC ) || defined(Q_OS_SOLARIS) || defined(Q_OS_HPUX) ||
defined(Q_OS_AIX)
+#if defined( Q_OS_MAC ) || defined(Q_OS_SOLARIS) || defined(Q_OS_HPUX) ||
defined(Q_OS_AIX) || defined(Q_OS_NETBSD)
QString *that = const_cast<QString *>(&QString::null);
that->d = QString::shared_null;
#endif
===========================================================================
So the question is whether the change is a bug or if the previous
behavior was wrong. Personally, I wouldn't expect the above code
to set QString::shared_null to zero as I was seeing before the
workaround.
Gary Duzan
Home |
Main Index |
Thread Index |
Old Index