Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

compiling QT 4.6 on altix problem

Rich_F_1
Beginner
155 Views

Hello

I'm trying to compile QT 4.6 on an altix and running into a problem with templates.

I filed a bug report with QT QTBUG-7356 There was a similar bug using the

g++ complier on an alpha QTBUG-5955

Wondering if anyone else has been able to compile QT 4.6 on an altix or if they

have any insight on how to resolve issue or if this requires a compiler upgrade.

/usr/local/qt-qt/bin/moc -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-icc -I. -I../../include -I../../include/QtCore -I.rcc/debug-static -Iglobal -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/debug-static kernel/qobject.h -o .moc/debug-static/moc_qobject.cpp
icpc -c -wd654,1572 -I/usr/include/mysql -I/usr/local/include -g -D_REENTRANT -fPIC -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-icc -I. -I../../include -I../../include/QtCore -I.rcc/debug-static -Iglobal -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/debug-static -o .obj/debug-static/qobject.o kernel/qobject.cpp
kernel/qobject.cpp(3294): warning #187: use of "=" where "==" may have been intended
} while (signal_index >= 0 && (signal_index = -1)); //start over for -1 (all signal)
^

../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h(208): error: argument of type "QMutexPool *volatile *" is incompatible with parameter of type "void *volatile *"
return (T *)_InterlockedExchangePointer(&_q_value, newValue);
^
detected during instantiation of "T *QBasicAtomicPointer::fetchAndStoreAcquire(T *) [with T=QMutexPool]"

compilation aborted for kernel/qobject.cpp (code 2)
gmake[1]: *** [.obj/debug-static/qobject.o] Error 2
gmake[1]: Leaving directory `/usr/local/qt-qt/src/corelib'
gmake: *** [sub-corelib-make_default-ordered] Error 2
local/qt-qt>

local/qt-qt> uname -a
Linux ******altix 2.6.5-7.244-sn2 #1 SMP Mon Dec 12 18:32:25 UTC 2005 ia64 ia64 ia64 GNU/Linux
local/qt-qt> icpc -V
Intel C++ Itanium Compiler for Itanium-based applications
Version 9.0 Build 20050430 Package ID: l_cc_p_9.0.020
Copyright (C) 1985-2005 Intel Corporation. All rights reserved.

0 Kudos
2 Replies
Yuan_C_Intel
Employee
155 Views

../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h(208): error: argument of type "QMutexPool *volatile *" is incompatible with parameter of type "void *volatile *"
return (T *)_InterlockedExchangePointer(&_q_value, newValue);
^
detected during instantiation of "T *QBasicAtomicPointer::fetchAndStoreAcquire(T *) [with T=QMutexPool]"

Hi, Rich

You cantry this walk-around:

In file: "src/corelib/arch/qatomic_ia64.h", line 208, modify as following:

[bash]    return (T *)_InterlockedExchangePointer((void * volatile *)&_q_value, newValue);
[/bash]

You can find thedefinition of intrinsic "_InterlockedExchangePointer" in "ia64intrin.h"

[bash]void * _InterlockedExchangePointer(void * volatile *Destination, void *Exchange);[/bash]

Thanks.

Rich_F_1
Beginner
155 Views

Thank You Yolanda

Your work around allowed the compile to continue.

I've updated the bug report to let Trolltech know.

Reply