[PATCH] QT 4.4.0-snapshot-20070420 [missing q_atomic_*]

Simon Hausmann hausmann at kde.org
Sun Apr 29 10:55:57 BST 2007


On Sunday 29 April 2007 10:40:10 Brad Hards wrote:
> On Tuesday 24 April 2007 02:51, Thiago Macieira wrote:
> > Stefan Teleman wrote:
> > >The <QtDBus/QtDBus> aren't stylistic changes. They are "it doesn't
> > >compile" changes.
>
> I see this with the sun studio CC compiler on Linux too.
>
> CC -c -features=%all,extensions -instances=global -template=geninlinefuncs
> -xipo=0 -s -xregs=no%frameptr -xbuiltin=%all -xinline=%auto -xjobs=2
> -xlibmil -xustr=ascii_utf16_ushort -xlibmopt -z now -z nodefaultlib -z
> combreloc -z redlocsym -z rescan -z absexec -xldscope=symbolic
> -xalias_level=compatible -xildoff -lc -lpthread -lrt -DNDEBUG -DNO_DEBUG
> -xF=%none -xthreadvar -D__EXTENSIONS__ -DXORG -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -D_XPG4 -D_XPG4_2 -D_XPG6 -D_POSIX_PTHREAD_SEMANTICS
> -DQT_QLOCALE_NEEDS_VOLATILE -UUSE_X11R6_XIM -DQ_NO_PACKED_REFERENCE
> -DQT_THREAD_SUPPORT -DGTK_COMPILATION -UGTK_DISABLE_DEPRECATED
> -DLIBXML_THREAD_ALLOC_ENABLED -DQT_THREAD_SUPPORT -xtarget=pentium4
> -xarch=sse2 -xchip=pentium4 -xcache=8/64/4:256/128/8 -xO3 -mt -D_REENTRANT
> -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_XML_LIB
> -DQT_CORE_LIB -DQT_SHARED -I../../../../mkspecs/linux-suncc -I.
> -I../../../../include/QtCore -I../../../../include/QtCore
> -I../../../../include/QtXml -I../../../../include/QtXml
> -I../../../../include -I../../../../include/QtDBus -I.moc/release-shared
> -I.uic/release-shared -I../../../../include/QtCore
> -I../../../../include/QtCore
> -I../../../../include/QtXml -I../../../../include/QtXml
> -I../../../../include -I../../../../include/QtDBus -I.moc/release-shared
> -I.uic/release-shared -o .obj/release-shared/qdbus.o qdbus.cpp
> "../../../../include/QtCore/../../src/corelib/thread/qatomic.h", line 111:
> Warning: value hides QBasicAtomic::value.
> "../../../../include/QtCore/../../src/corelib/thread/qatomic.h", line 114:
> Warning: value hides QBasicAtomic::value.
> "../../../../include/QtCore/../../src/corelib/thread/qatomic.h", line 117:
> Warning: value hides QBasicAtomic::value.
> "qdbus.cpp", line 32: Error: Could not open include file<QtDBus>.
>
> > That shouldn't be so. Like I said in the first email, the .pro files
> > have: CONFIG += qdbus
> >
> > That means the build should have -I $QTDIR/include/QtDBus
> > (mkspecs/features/qdbus.prf contains qtAddLibrary(QtDBus) ). If that
> > doesn't happen for you, there's something else wrong. Let's fix that.
>
> It does appear to have the right options.
>
> I'm thinking it might be a compiler bug. If I just copy the content of
> QtDBus/QtDBus (i.e. the various headers like qdbusargument.h) into
> qdbus.cpp, it works. That implies that the -I line works, but not for
> <QtDBus>.
>
> If I re-order the -I entries (so that the -I../../../../include/QtDBus
> precedes  -I../../../../include) it works. I can only think that if the
> compiler finds QtDBus as a directory at any stage, it doesn't try to find
> QtDBus as a file in a later -I entry.
>
> I'll try to produce a simpler example, but would appreciate any suggestions
> that anyone can offer.

I could reproduce the exact same problem with a smaller testcase on one of our 
old Solaris boxes and I can confirm this behaviour.

While qt_functions.prf, which adds QtDBus to the include search path, does the 
right thing by prepending to INCLUDEPATH the order of evaluation /after/ 
parsing the .pro file seems to be the real culprit. We're sure as hell not 
going to change this aspect of qmake so short before the 4.3 release, so your 
suggested workaround of including QtDBus/QtDBus seems like the best option. 
I've submitted this fix.

Thiago, ok with that? :)


Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070429/577c408f/attachment.sig>


More information about the kde-core-devel mailing list