| Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date | |
| All threads index page 4 | |
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 ]
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 ]
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 ]
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.
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 ]
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 ]
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 ]
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.
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 ]
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 ]
Thank you very much. Now it works, without designer, assistant and linguist. I used the latest snapshot. Peer -- [ signature omitted ]