PDA

View Full Version : Qt 4.5.2 compile fails on opensolaris



andrnils
23rd September 2009, 16:43
Hello,

I'm trying to install Qt 4.5.2 on OpenSolaris snv_123 and I can't get it to compile.

I've tried wth both SunStudio 12u1 and gcc-4.3.2.

After editing mkspecs/solaris-g++/qmake.conf to point to the correct binaries and paths I issued:


./configure -prefix /opt/qt452 -opensource -fast -platform solaris-g++

which now completes successfully. After that I run
gmake -sj2 and after a while I get:


/usr/include/sys/regset.h:105:1: warning: this is the location of the previous definition
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h: In member function ‘void __gnu_cxx::_ComparableConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’:
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:529: instantiated from ‘void __gnu_cxx::_RandomAccessIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_RandomAccessIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:553: instantiated from ‘void __gnu_cxx::_Mutable_RandomAccessIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_Mutable_RandomAccessIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/stl_heap.h:162: instantiated from ‘void std::push_heap(_RAIter, _RAIter) [with _RAIter = WebCore::TimerHeapIterator]’
platform/Timer.cpp:230: instantiated from here
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:267: error: no match for ‘operator>’ in ‘((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__a > ((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__b’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:268: error: no match for ‘operator<=’ in ‘((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__a <= ((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__b’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:269: error: no match for ‘operator>=’ in ‘((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__a >= ((__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>*)this)->__gnu_cxx::_ComparableConcept<WebCore::TimerHeapIterator>::__b’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h: In member function ‘void __gnu_cxx::_ForwardIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’:
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_ForwardIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:502: instantiated from ‘void __gnu_cxx::_BidirectionalIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_BidirectionalIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:528: instantiated from ‘void __gnu_cxx::_RandomAccessIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_RandomAccessIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:553: instantiated from ‘void __gnu_cxx::_Mutable_RandomAccessIteratorConcept<_Tp>::__constraints() [with _Tp = WebCore::TimerHeapIterator]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62: instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_Mutable_RandomAccessIteratorConcept<WebCore::TimerHeapIterator>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/stl_heap.h:162: instantiated from ‘void std::push_heap(_RAIter, _RAIter) [with _RAIter = WebCore::TimerHeapIterator]’
platform/Timer.cpp:230: instantiated from here
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:483: error: invalid initialization of non-const reference of type ‘WebCore::TimerHeapElement&’ from a temporary of type ‘WebCore::TimerHeapElement’
gmake[1]: *** [.obj/release-shared/Timer.o] Error 1
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [sub-webkit-make_default-ordered] Error 2
andrnils@t61p /export/src/qt-x11-opensource-src-4.5.2 =2


I've seen others with this problem on other 'exotic' platforms. Is there a workaround?

andrnils
23rd September 2009, 19:38
As WebKit isn't necessary I tried to compile without it but that just resulted in a compilation failure later on:



/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:537: error: no match for ‘operator+’ in ‘((__gnu_cxx::_RandomAccessIteratorConcept<QList<QString>::const_iterator>*)this)->__gnu_cxx::_RandomAccessIteratorConcept<QList<QString>::const_iterator>::__n + ((__gnu_cxx::_RandomAccessIteratorConcept<QList<QString>::const_iterator>*)this)->__gnu_cxx::_RandomAccessIteratorConcept<QList<QString>::const_iterator>::__i’
../../../include/QtGui/../../src/gui/painting/qtransform.h:345: note: candidates are: QTransform operator+(const QTransform&, qreal)
../../../include/QtCore/../../src/corelib/tools/qsize.h:316: note: const QSizeF operator+(const QSizeF&, const QSizeF&)
../../../include/QtCore/../../src/corelib/tools/qsize.h:160: note: const QSize operator+(const QSize&, const QSize&)
../../../include/QtCore/../../src/corelib/tools/qpoint.h:311: note: const QPointF operator+(const QPointF&, const QPointF&)
../../../include/QtCore/../../src/corelib/tools/qpoint.h:153: note: const QPoint operator+(const QPoint&, const QPoint&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1021: note: const QString operator+(const QString&, const QByteArray&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1019: note: const QString operator+(const QByteArray&, const QString&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1017: note: const QString operator+(const QString&, char)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1015: note: const QString operator+(char, const QString&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1013: note: const QString operator+(const char*, const QString&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1011: note: const QString operator+(const QString&, const char*)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1008: note: const QString operator+(QChar, const QString&)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1006: note: const QString operator+(const QString&, QChar)
../../../include/QtCore/../../src/corelib/tools/qstring.h:1004: note: const QString operator+(const QString&, const QString&)
../../../include/QtCore/../../src/corelib/tools/qbytearray.h:545: note: const QByteArray operator+(char, const QByteArray&)
../../../include/QtCore/../../src/corelib/tools/qbytearray.h:543: note: const QByteArray operator+(const char*, const QByteArray&)
../../../include/QtCore/../../src/corelib/tools/qbytearray.h:541: note: const QByteArray operator+(const QByteArray&, char)
../../../include/QtCore/../../src/corelib/tools/qbytearray.h:539: note: const QByteArray operator+(const QByteArray&, const char*)
../../../include/QtCore/../../src/corelib/tools/qbytearray.h:537: note: const QByteArray operator+(const QByteArray&, const QByteArray&)
gmake[3]: *** [.obj/release-shared/imagescaling.o] Error 1
gmake[2]: *** [sub-imagescaling-make_default] Error 2
gmake[1]: *** [sub-qtconcurrent-make_default] Error 2
gmake[1]: *** Waiting for unfinished jobs....
BFD: securesocketclient.debug: section .picdata vma 0x806e688 overlaps previous sections
BFD: torrent.debug: section .picdata vma 0x80b12f8 overlaps previous sections
gmake: *** [sub-examples-make_default-ordered] Error 2


I guess this is a separate issue though...