Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 4

Qt-interest Archive, November 2007
Build qt-x11-opensource-src-4.3.2 with Sun Studio 11 in 64 Bit Mode


Message 1 in thread


Hi,

I try to build 64 bit version of qt-x11-opensource-src-4.3.2 on Sun  
Server x2200 M2 AMD Opteron
with Sun Solaris 10 and Sun Studio 11 installed

My configure line looks like

./configure -prefix /usr/local/qt -plugindir /usr/local/qt/plugins - 
release -fast -no-qt3support -qt-zlib -qt-libpng -qt-libjpeg -qt-sql- 
mysql -plugin-sql-mysql -I/usr/local/include -L/usr/local/lib -nomake  
examples -nomake demos -platform solaris-cc-64

My mkspecs/solaris-cc-64/qmake.conf file looks like (only diffs)

QT                    += core
QMAKE_CFLAGS          = -xarch=amd64 -D_XOPEN_SOURCE=500 - 
D__EXTENSIONS__
QMAKE_LFLAGS          = -xarch=amd64

I get the following mistake after typing make

--- snip

cd src/tools/moc/ && make -f Makefile
cd src/tools/rcc/ && make -f Makefile
cd src/tools/uic/ && make -f Makefile
cd src/corelib/ && make -f Makefile
CC -c -xO4 -xarch=amd64 -I/usr/local/include -O -mt -KPIC -DQT_SHARED - 
DQT_BUILD_CORE_LIB -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS - 
DQT_44_API_QSQLQUERY_FINISH -DQT_MOC_COMPAT -DQT_NO_DEBUG - 
D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/solaris-cc-64  
-I. -I../../include -I../../include/QtCore -Iglobal -I../3rdparty/zlib  
-I.moc/release-shared -I.uic/release-shared -I/usr/sfw/include -o .obj/ 
release-shared/qglobal.o global/qglobal.cpp
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 126:  
Error: The function "q_atomic_fetch_and_add_int" must have a prototype.
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 129:  
Error: The function "q_atomic_fetch_and_add_acquire_int" must have a  
prototype.
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 132:  
Error: The function "q_atomic_fetch_and_add_release_int" must have a  
prototype.
3 Error(s) detected.
*** Error code 3
make: Fatal error: Command failed for target `.obj/release-shared/ 
qglobal.o'
Current working directory /usr/qt-x11-opensource-src-4.3.2/src/corelib
*** Error code 1
make: Fatal error: Command failed for target `sub-corelib-make_default- 
ordered'

--snap

Any ideas how to fix this ?

Thanks for any hint.

Peer

--
 [ signature omitted ] 

Message 2 in thread

Hi,

I seem to recall Solaris on AMD is currently not supported. Anyway, let's have 
a look...

> My configure line looks like
> 
> ./configure -prefix /usr/local/qt -plugindir /usr/local/qt/plugins 
> -release -fast -no-qt3support -qt-zlib -qt-libpng -qt-libjpeg 
> -qt-sql-mysql -plugin-sql-mysql -I/usr/local/include -L/usr/local/lib 
> -nomake examples -nomake demos -platform solaris-cc-64

Good.

> My mkspecs/solaris-cc-64/qmake.conf file looks like (only diffs)
> 
> QT                    += core

Why did you have to change this line?
QT			+= core gui

> QMAKE_CFLAGS          = -xarch=amd64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
> QMAKE_LFLAGS          = -xarch=amd64

Doesn't "-xarch=generic64" work for you?
It should be equivalent to "-xarch=amd64" on AMD platforms.

> I get the following mistake after typing make
> [...]
> CC -c -xO4 -xarch=amd64 -I/usr/local/include -O -mt -KPIC -DQT_SHARED 
> -DQT_BUILD_CORE_LIB -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS 
> -DQT_44_API_QSQLQUERY_FINISH -DQT_MOC_COMPAT -DQT_NO_DEBUG 
> -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/solaris-cc-64 
> -I. -I../../include -I../../include/QtCore -Iglobal -I../3rdparty/zlib 
> -I.moc/release-shared -I.uic/release-shared -I/usr/sfw/include -o 
> .obj/release-shared/qglobal.o global/qglobal.cpp
> "../../include/QtCore/../../src/corelib/thread/qatomic.h", line 126: 
> Error: The function "q_atomic_fetch_and_add_int" must have a prototype.
> [...]

File src/corelib/thread/qatomic.h includes <QtCore/qatomic_arch.h>. The 
missing q_atomic_fetch_and_add_int() function should be defined in 
<QtCore/qatomic_arch.h> which is actually src/corelib/arch/qatomic_arch.h.

The first interesting part is in src/corelib/arch/qatomic_arch.h. The 
QT_ARCH_* set of variables decides which architecture specific header is 
included. In your case, QT_ARCH_X86_64 should be defined and 
src/corelib/arch/qatomic_x86_64.h should eventually be included. I'm confident 
this worked, you could maybe double-check that by adding a few #error 
statements in these files and make sure they are triggered.

The second interesting part is in src/corelib/arch/qatomic_x86_64.h itself. It 
contains:
#if defined(Q_CC_GNU) || defined(Q_CC_INTEL)
[...]
#else // !Q_CC_INTEL && !Q_CC_GNU
[...]
     Q_CORE_EXPORT int q_atomic_fetch_and_add_int(...);
[...]
#endif // Q_CC_GNU || Q_CC_INTEL

At this point, I don't understand why the compiler thinks function 
q_atomic_fetch_and_add_int() is not declared. Note that whether 
q_atomic_fetch_and_add_int() and friends are defined is not important yet: 
it's a link-time issue and this is a compile-time error.

You might want to add a few #error statements here and there and see if they 
are triggered, for example just before the q_atomic_fetch_and_add_int() 
declaration. Alternatively, you might try to pre-process the file by changing 
"-c" to "-E" in the compiler command line and post the resulting file on some 
Web site (not on this mailing list as it will be quite large). This 
pre-processed file could give some clues.

--
 [ signature omitted ] 

Message 3 in thread

Am 19.11.2007 um 21:53 schrieb Dimitri:

> Hi,
>
> I seem to recall Solaris on AMD is currently not supported. Anyway,  
> let's have a look...
>
>> My configure line looks like
>> ./configure -prefix /usr/local/qt -plugindir /usr/local/qt/plugins - 
>> release -fast -no-qt3support -qt-zlib -qt-libpng -qt-libjpeg -qt- 
>> sql-mysql -plugin-sql-mysql -I/usr/local/include -L/usr/local/lib - 
>> nomake examples -nomake demos -platform solaris-cc-64
>
> Good.

:-)

>
>
>> My mkspecs/solaris-cc-64/qmake.conf file looks like (only diffs)
>> QT                    += core
>
> Why did you have to change this line?
> QT			+= core gui

I only need QtCore and some non gui features

>
>> QMAKE_CFLAGS          = -xarch=amd64 -D_XOPEN_SOURCE=500 - 
>> D__EXTENSIONS__
>> QMAKE_LFLAGS          = -xarch=amd64
>
> Doesn't "-xarch=generic64" work for you?
> It should be equivalent to "-xarch=amd64" on AMD platforms.
>

I think it's equivalent

>> I get the following mistake after typing make
>> [...]
>> CC -c -xO4 -xarch=amd64 -I/usr/local/include -O -mt -KPIC - 
>> DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_CAST_TO_ASCII - 
>> DQT_ASCII_CAST_WARNINGS -DQT_44_API_QSQLQUERY_FINISH - 
>> DQT_MOC_COMPAT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE - 
>> D_LARGEFILE_SOURCE -I../../mkspecs/solaris-cc-64 -I. -I../../ 
>> include -I../../include/QtCore -Iglobal -I../3rdparty/zlib -I.moc/ 
>> release-shared -I.uic/release-shared -I/usr/sfw/include -o .obj/ 
>> release-shared/qglobal.o global/qglobal.cpp
>> "../../include/QtCore/../../src/corelib/thread/qatomic.h", line  
>> 126: Error: The function "q_atomic_fetch_and_add_int" must have a  
>> prototype.
>> [...]
>
> File src/corelib/thread/qatomic.h includes <QtCore/qatomic_arch.h>.  
> The missing q_atomic_fetch_and_add_int() function should be defined  
> in <QtCore/qatomic_arch.h> which is actually src/corelib/arch/ 
> qatomic_arch.h.
>

Is defined there

> The first interesting part is in src/corelib/arch/qatomic_arch.h.  
> The QT_ARCH_* set of variables decides which architecture specific  
> header is included. In your case, QT_ARCH_X86_64 should be defined  
> and src/corelib/arch/qatomic_x86_64.h should eventually be included.  
> I'm confident this worked, you could maybe double-check that by  
> adding a few #error statements in these files and make sure they are  
> triggered.
>

QT_ARCH_X86_64 is defined

> The second interesting part is in src/corelib/arch/qatomic_x86_64.h  
> itself. It contains:
> #if defined(Q_CC_GNU) || defined(Q_CC_INTEL)
> [...]
> #else // !Q_CC_INTEL && !Q_CC_GNU
> [...]
>    Q_CORE_EXPORT int q_atomic_fetch_and_add_int(...);
> [...]
> #endif // Q_CC_GNU || Q_CC_INTEL
>
> At this point, I don't understand why the compiler thinks function  
> q_atomic_fetch_and_add_int() is not declared. Note that whether  
> q_atomic_fetch_and_add_int() and friends are defined is not  
> important yet: it's a link-time issue and this is a compile-time  
> error.
>
> You might want to add a few #error statements here and there and see  
> if they are triggered, for example just before the  
> q_atomic_fetch_and_add_int() declaration. Alternatively, you might  
> try to pre-process the file by changing "-c" to "-E" in the compiler  
> command line and post the resulting file on some Web site (not on  
> this mailing list as it will be quite large). This pre-processed  
> file could give some clues.
>

It seem that it doesn't reach the q_atomic_fetch_and_add_int  
declaration because #error statements are not triggered.
Q_CC_GNU is not defined and Q_CC_INTEL is not defined but Q_CC_SUN is  
defined, so i append || defined(Q_CC_SUN) on line 46 in src/corelib/ 
arch/qatomic_x86_64.h and get the following

"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
51: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
51: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
51: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
57: Warning: The variable ret has not yet been assigned a value.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
73: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
73: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
73: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
76: Error: There must be an identifier to declare.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
76: Error: "," expected instead of ">".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
79: Warning: The variable ret has not yet been assigned a value.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
85: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
85: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
85: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
91: Warning: The variable ret has not yet been assigned a value.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
97: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
97: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
97: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
103: Warning: The variable ret has not yet been assigned a value.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
108: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
108: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
108: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
124: Error: Could not open include file "BUHBAH".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
117: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
117: Error: No string in Asm statement.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
117: Error: No direct declarator preceding "(".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
118: Error: There must be an identifier to declare.
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
118: Error: "," expected instead of ">".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
128: Error: "(" expected instead of "volatile".
"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
128: Error: No string in Asm statement.


I think that wrong :-)

You can fetch the -E output from

http://www.ohneidee.de/output.txt




> --
> Dimitri
>
> --
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx  
> with "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>

Thanks.

Peer


--
 [ signature omitted ] 

Message 4 in thread

Peer Dampmann wrote:
>so i append || defined(Q_CC_SUN) on line 46 in src/corelib/
>arch/qatomic_x86_64.h and get the following
>
>"../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
>51: Error: "(" expected instead of "volatile".

As you can see for yourself above, the code isn't made for Sun's compiler. 
It's using inline assembly in the format supported by gcc and icc. To 
compile with Sun's compiler, Qt needs to compile a .s file.

That exists for i386, but not for x86_64. In other words, SunCC on x86-64 
is not currently supported by Qt.

I guess you know the address to request that feature :-)

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 5 in thread

Thiago Macieira wrote:
> Peer Dampmann wrote:
>> so i append || defined(Q_CC_SUN) on line 46 in src/corelib/
>> arch/qatomic_x86_64.h and get the following
>>
>> "../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h", line  
>> 51: Error: "(" expected instead of "volatile".
> 
> As you can see for yourself above, the code isn't made for Sun's compiler. 
> It's using inline assembly in the format supported by gcc and icc. To 
> compile with Sun's compiler, Qt needs to compile a .s file.
> 
> That exists for i386, but not for x86_64. In other words, SunCC on x86-64 
> is not currently supported by Qt.

IIRC, I fixed it when doing the QAtomicInt and QAtomicPointer changes. If 
you're up for it, you could try a 4.4 snapshot and see if it gets any further.

-- 
 [ signature omitted ] 

Message 6 in thread

Hi,

> It seem that it doesn't reach the q_atomic_fetch_and_add_int declaration 
> because #error statements are not triggered.
> Q_CC_GNU is not defined and Q_CC_INTEL is not defined but Q_CC_SUN is 
> defined, so i append || defined(Q_CC_SUN) on line 46 in 

Don't do that in Qt 4.3. This will trigger inline code that was written for 
GNU and Intel compilers. Sun's compiler won't understand it.

The q_atomic_fetch_and_add_int() declaration that should be picked up is this one:

#else // !Q_CC_INTEL && !Q_CC_GNU
[...]
     Q_CORE_EXPORT int q_atomic_fetch_and_add_int(...);
[...]
#endif // Q_CC_GNU || Q_CC_INTEL

First you need picking up this declaration at compile-time. Make sure this 
works. Then you'll be missing the definition at link-time. Indeed the 
following file is incomplete in Qt 4.3:
	src/corelib/arch/x86_64/qatomic_sun.s
As suggested by Brad, get the complete file from the Qt 4.4 snapshots.

--
 [ signature omitted ] 

Message 7 in thread

Hi,

Now I tried snapshot 4.4

I feel a return statement is missing in file src/3rdparty/clucene/src/ 
CLucene/store/FSDirectory.h  line 251.
I've inserted a retuen statement, that was working.

But now another error occured

make
cd src/tools/moc/ && make -f Makefile
cd src/tools/rcc/ && make -f Makefile
cd src/tools/uic/ && make -f Makefile
cd src/corelib/ && make -f Makefile
cd src/xml/ && make -f Makefile
cd src/gui/ && make -f Makefile
cd src/sql/ && make -f Makefile
cd src/network/ && make -f Makefile
cd src/svg/ && make -f Makefile
cd src/script/ && make -f Makefile
cd src/xmlpatterns/ && make -f Makefile
cd src/plugins/ && make -f Makefile
cd accessible/ && make -f Makefile
cd widgets/ && make -f Makefile
cd imageformats/ && make -f Makefile
cd jpeg/ && make -f Makefile
cd gif/ && make -f Makefile
cd mng/ && make -f Makefile
cd svg/ && make -f Makefile
cd tiff/ && make -f Makefile
cd sqldrivers/ && make -f Makefile
cd mysql/ && make -f Makefile
cd sqlite/ && make -f Makefile
cd iconengines/ && make -f Makefile
cd svgiconengine/ && make -f Makefile
cd script/ && make -f Makefile
cd qtcore/ && make -f Makefile
cd qtgui/ && make -f Makefile
cd qtxml/ && make -f Makefile
cd inputmethods/ && make -f Makefile
cd imsw-multi/ && make -f Makefile
cd tools/ && make -f Makefile
cd assistant/ && make -f Makefile
cd lib/fulltextsearch/ && make -f Makefile
CC -c -xO4 -m64 -I/usr/local/include -O -w -mt -KPIC -D_BUILD_FOR_QT_ - 
DLUCENE_DISABLE_MEMTRACKING -DQHELP_LIB -DQT_NO_DEBUG -DQT_CORE_LIB - 
D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_SHARED -I../../../../ 
mkspecs/solaris-cc-64 -I. -I../../../../include/QtCore -I../../../../ 
include/QtCore -I../../../../include -I. -I.. -I../../../../src/ 
3rdparty/clucene/src/CLucene -I../../../../src/3rdparty/clucene/src - 
I../../../../src/3rdparty/clucene/src/CLucene/analysis -I../../../../ 
src/3rdparty/clucene/src/CLucene/analysis/standard -I../../../../src/ 
3rdparty/clucene/src/CLucene/config -I../../../../src/3rdparty/clucene/ 
src/CLucene/debug -I../../../../src/3rdparty/clucene/src/CLucene/ 
document -I../../../../src/3rdparty/clucene/src/CLucene/index - 
I../../../../src/3rdparty/clucene/src/CLucene/queryParser - 
I../../../../src/3rdparty/clucene/src/CLucene/search -I../../../../src/ 
3rdparty/clucene/src/CLucene/store -I../../../../src/3rdparty/clucene/ 
src/CLucene/util -I.moc/release-shared -I.uic/release-shared -I/usr/ 
sfw/include -o .obj/release-shared/SegmentReader.o ../../../../src/ 
3rdparty/clucene/src/CLucene/index/SegmentReader.cpp
"../../../../src/3rdparty/clucene/src/CLucene/util/ThreadLocal.h",  
line 98: Error: Could not find a match for std::multimap<unsigned,  
lucene::util::ThreadLocalBase*, std::less<unsigned>,  
std::allocator<std::pair<const unsigned,  
lucene::util::ThreadLocalBase*>>>::insert(std::pair<unsigned,  
lucene::util::ThreadLocalBase*>) needed in  
lucene::util::ThreadLocal<lucene::index::TermVectorsReader*,  
lucene 
::util 
::Deletor::Object<lucene::index::TermVectorsReader>>::ThreadLocal().
"../../../../src/3rdparty/clucene/src/CLucene/index/ 
SegmentReader.cpp", line 74:     Where: While instantiating  
"lucene::util::ThreadLocal<lucene::index::TermVectorsReader*,  
lucene 
::util 
::Deletor::Object<lucene::index::TermVectorsReader>>::ThreadLocal()".
"../../../../src/3rdparty/clucene/src/CLucene/index/ 
SegmentReader.cpp", line 74:     Where: Instantiated from non-template  
code.
1 Error(s) detected.
*** Error code 1
make: Fatal error: Command failed for target `.obj/release-shared/ 
SegmentReader.o'
Current working directory /usr/qt-x11-opensource-src-4.4.0- 
snapshot-20071120/tools/assistant/lib/fulltextsearch
*** Error code 1
make: Fatal error: Command failed for target `sub-lib-fulltextsearch- 
make_default-ordered'
Current working directory /usr/qt-x11-opensource-src-4.4.0- 
snapshot-20071120/tools/assistant
*** Error code 1
make: Fatal error: Command failed for target `sub-assistant- 
make_default-ordered'
Current working directory /usr/qt-x11-opensource-src-4.4.0- 
snapshot-20071120/tools
*** Error code 1
make: Fatal error: Command failed for target `sub-tools-make_default- 
ordered'

Thanks for any hint.

Peer

Am 20.11.2007 um 09:17 schrieb Dimitri:

> Hi,
>
>> It seem that it doesn't reach the q_atomic_fetch_and_add_int  
>> declaration because #error statements are not triggered.
>> Q_CC_GNU is not defined and Q_CC_INTEL is not defined but Q_CC_SUN  
>> is defined, so i append || defined(Q_CC_SUN) on line 46 in
>
> Don't do that in Qt 4.3. This will trigger inline code that was  
> written for GNU and Intel compilers. Sun's compiler won't understand  
> it.
>
> The q_atomic_fetch_and_add_int() declaration that should be picked  
> up is this one:
>
> #else // !Q_CC_INTEL && !Q_CC_GNU
> [...]
>    Q_CORE_EXPORT int q_atomic_fetch_and_add_int(...);
> [...]
> #endif // Q_CC_GNU || Q_CC_INTEL
>
> First you need picking up this declaration at compile-time. Make  
> sure this works. Then you'll be missing the definition at link-time.  
> Indeed the following file is incomplete in Qt 4.3:
> 	src/corelib/arch/x86_64/qatomic_sun.s
> As suggested by Brad, get the complete file from the Qt 4.4 snapshots.
>
> --
> Dimitri
>
> --
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx  
> with "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>

Mit freundlichen Grüssen

MySysAdmin.DE
Peer Dampmann

--
 [ signature omitted ] 

Message 8 in thread

Em Tuesday 20 November 2007 15:13:05 Peer Dampmann escreveu:
> I feel a return statement is missing in file src/3rdparty/clucene/src/
> CLucene/store/FSDirectory.h  line 251.
> I've inserted a retuen statement, that was working.
>
> But now another error occured

This is a new feature in Qt 4.4 that has just been integrated. We're still 
fixing all our supported compilers and will contribute the patches to the 
CLucene project.

You can ignore the tools/assistant build for the moment. But if you got that 
far, it means QtCore compiled with the 64-bit atomic instructions.

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 9 in thread

On Tuesday 20 November 2007 15:13:05 Peer Dampmann wrote:
> But now another error occured
> [...]
> cd lib/fulltextsearch/ && make -f Makefile
> CC -c -xO4 -m64 [...] -o .obj/release-shared/SegmentReader.o ../../../../src/ 
> 3rdparty/clucene/src/CLucene/index/SegmentReader.cpp
> "../../../../src/3rdparty/clucene/src/CLucene/util/ThreadLocal.h",  
> line 98: Error: Could not find a match for std::multimap<unsigned,  
> lucene::util::ThreadLocalBase*, std::less<unsigned>,  
> std::allocator<std::pair<const unsigned,  
> lucene::util::ThreadLocalBase*>>>::insert(std::pair<unsigned,  
> lucene::util::ThreadLocalBase*>) needed in  
> lucene::util::ThreadLocal<lucene::index::TermVectorsReader*,  
> lucene 
> ::util 
> ::Deletor::Object<lucene::index::TermVectorsReader>>::ThreadLocal().
> "../../../../src/3rdparty/clucene/src/CLucene/index/ 
> SegmentReader.cpp", line 74:     Where: While instantiating  
> "lucene::util::ThreadLocal<lucene::index::TermVectorsReader*,  
> lucene 
> ::util 
> ::Deletor::Object<lucene::index::TermVectorsReader>>::ThreadLocal()".
> "../../../../src/3rdparty/clucene/src/CLucene/index/ 
> SegmentReader.cpp", line 74:     Where: Instantiated from non-template  
> code.
> [...]
> 
> Thanks for any hint.

Looks like the   

   template <class U, class V> std::pair(const std::pair<U,V>& p)
      : first(p.first), second(p.second)
    {}

constructor is not accessible, presumably because "something" decided 
that member templates are not available or should not be used.

You should be able to work around it for the time being by using

  threadLocals.insert( pair<const _LUCENE_THREADID_TYPE, ThreadLocalBase*>(id, this) );

instead of 

  threadLocals.insert( pair<_LUCENE_THREADID_TYPE, ThreadLocalBase*>(id, this) );

in ThreadLocal.h line 98. There seems to be a similar problem in 
line 137 in the same file btw.

Regards,
Andre'

--
 [ signature omitted ] 

Message 10 in thread

Hi,

I just tried the same procedure with Sun Studio 12.
I  only replaced -xarch=generic64 with -m64 in mkspecs/solaris-cc-64/ 
qmake.conf

The same error occurs.

Peer

Am 19.11.2007 um 21:53 schrieb Dimitri:

> Hi,
>
> I seem to recall Solaris on AMD is currently not supported. Anyway,  
> let's have a look...
>
>> My configure line looks like
>> ./configure -prefix /usr/local/qt -plugindir /usr/local/qt/plugins - 
>> release -fast -no-qt3support -qt-zlib -qt-libpng -qt-libjpeg -qt- 
>> sql-mysql -plugin-sql-mysql -I/usr/local/include -L/usr/local/lib - 
>> nomake examples -nomake demos -platform solaris-cc-64
>
> Good.
>
>> My mkspecs/solaris-cc-64/qmake.conf file looks like (only diffs)
>> QT                    += core
>
> Why did you have to change this line?
> QT			+= core gui
>
>> QMAKE_CFLAGS          = -xarch=amd64 -D_XOPEN_SOURCE=500 - 
>> D__EXTENSIONS__
>> QMAKE_LFLAGS          = -xarch=amd64
>
> Doesn't "-xarch=generic64" work for you?
> It should be equivalent to "-xarch=amd64" on AMD platforms.
>
>> I get the following mistake after typing make
>> [...]
>> CC -c -xO4 -xarch=amd64 -I/usr/local/include -O -mt -KPIC - 
>> DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_CAST_TO_ASCII - 
>> DQT_ASCII_CAST_WARNINGS -DQT_44_API_QSQLQUERY_FINISH - 
>> DQT_MOC_COMPAT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE - 
>> D_LARGEFILE_SOURCE -I../../mkspecs/solaris-cc-64 -I. -I../../ 
>> include -I../../include/QtCore -Iglobal -I../3rdparty/zlib -I.moc/ 
>> release-shared -I.uic/release-shared -I/usr/sfw/include -o .obj/ 
>> release-shared/qglobal.o global/qglobal.cpp
>> "../../include/QtCore/../../src/corelib/thread/qatomic.h", line  
>> 126: Error: The function "q_atomic_fetch_and_add_int" must have a  
>> prototype.
>> [...]
>
> File src/corelib/thread/qatomic.h includes <QtCore/qatomic_arch.h>.  
> The missing q_atomic_fetch_and_add_int() function should be defined  
> in <QtCore/qatomic_arch.h> which is actually src/corelib/arch/ 
> qatomic_arch.h.
>
> The first interesting part is in src/corelib/arch/qatomic_arch.h.  
> The QT_ARCH_* set of variables decides which architecture specific  
> header is included. In your case, QT_ARCH_X86_64 should be defined  
> and src/corelib/arch/qatomic_x86_64.h should eventually be included.  
> I'm confident this worked, you could maybe double-check that by  
> adding a few #error statements in these files and make sure they are  
> triggered.
>
> The second interesting part is in src/corelib/arch/qatomic_x86_64.h  
> itself. It contains:
> #if defined(Q_CC_GNU) || defined(Q_CC_INTEL)
> [...]
> #else // !Q_CC_INTEL && !Q_CC_GNU
> [...]
>    Q_CORE_EXPORT int q_atomic_fetch_and_add_int(...);
> [...]
> #endif // Q_CC_GNU || Q_CC_INTEL
>
> At this point, I don't understand why the compiler thinks function  
> q_atomic_fetch_and_add_int() is not declared. Note that whether  
> q_atomic_fetch_and_add_int() and friends are defined is not  
> important yet: it's a link-time issue and this is a compile-time  
> error.
>
> You might want to add a few #error statements here and there and see  
> if they are triggered, for example just before the  
> q_atomic_fetch_and_add_int() declaration. Alternatively, you might  
> try to pre-process the file by changing "-c" to "-E" in the compiler  
> command line and post the resulting file on some Web site (not on  
> this mailing list as it will be quite large). This pre-processed  
> file could give some clues.
>
> --
> Dimitri
>
> --
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx  
> with "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>

Mit freundlichen Grüssen

MySysAdmin.DE
Peer Dampmann

--
 [ signature omitted ] 

Message 11 in thread

Thank you very much.
Now it works, without designer, assistant and linguist.

I used the latest snapshot.

Peer



--
 [ signature omitted ]