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