Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

compiling QT 4.6 on altix problem

Rich_F_1
New Contributor I
385 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
385 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.

0 Kudos
Rich_F_1
New Contributor I
385 Views

Thank You Yolanda

Your work around allowed the compile to continue.

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

0 Kudos
Reply