Hello,
I'm trying to compile qt 4.3.3 (commercial version) on hpux itanium (11.23B) with aCC 06.15 but I have a trouble. I succeeded configuring the whole code and compilation of moc, rcc, uic (under src/tools). When I try to make corelib (under src/corelib) there are some compile errors about inline functions.
Here's the text.
---------------------------------
"../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h", line 222: error #2020:
identifier "q_atomic_test_and_set_acquire_int" is undefined
if (q_atomic_test_and_set_acquire_int(ptr, originalValue, originalValue + value))
^
"../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h", line 233: error #2020:
identifier "q_atomic_test_and_set_release_int" is undefined
if (q_atomic_test_and_set_release_int(ptr, originalValue, originalValue + value))
^
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 100: error #2020:
identifier "q_atomic_test_and_set_acquire_int" is undefined
{ return q_atomic_test_and_set_acquire_int(&value, expected, newval) != 0; }
^
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 103: error #2020:
identifier "q_atomic_test_and_set_release_int" is undefined
{ return q_atomic_test_and_set_release_int(&value, expected, newval) != 0; }
^
4 errors detected in the compilation of "global/qglobal.cpp".
*** Error exit code 2
"../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h", line 222: error #2020:
identifier "q_atomic_test_and_set_acquire_int" is undefined
if (q_atomic_test_and_set_acquire_int(ptr, originalValue, originalValue + value))
^
"../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h", line 233: error #2020:
identifier "q_atomic_test_and_set_release_int" is undefined
if (q_atomic_test_and_set_release_int(ptr, originalValue, originalValue + value))
^
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 100: error #2020:
identifier "q_atomic_test_and_set_acquire_int" is undefined
{ return q_atomic_test_and_set_acquire_int(&value, expected, newval) != 0; }
^
"../../include/QtCore/../../src/corelib/thread/qatomic.h", line 103: error #2020:
identifier "q_atomic_test_and_set_release_int" is undefined
{ return q_atomic_test_and_set_release_int(&value, expected, newval) != 0; }
^
4 errors detected in the compilation of "global/qglobal.cpp".
*** Error exit code 2
To copy to clipboard, switch view to plain text mode
---------------
I'm sure that these functions are defined in the same file where the errors occur. I guess there's no problem in those function calls. For example, implementation of q_atomic_test_and_set_acquire_int is :
inline q_atomic_test_and_set_acquire_int(volatile int *ptr, int expected, int newval)
{
return static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint*>(ptr), newval, expected)) == expected; }
inline q_atomic_test_and_set_acquire_int(volatile int *ptr, int expected, int newval)
{
return static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint*>(ptr), newval, expected)) == expected; }
To copy to clipboard, switch view to plain text mode
And this function is called from :
inline int q_atomic_fetch_and_add_acquire_int(volatile int *ptr, int value)
{
register int originalValue;
for( ; ; )
{
originalValue = *ptr;
if( q_atomic_test_and_set_acquire_int(ptr, originalValue, originalValue + value))
break;
}
return originalValue;
}
inline int q_atomic_fetch_and_add_acquire_int(volatile int *ptr, int value)
{
register int originalValue;
for( ; ; )
{
originalValue = *ptr;
if( q_atomic_test_and_set_acquire_int(ptr, originalValue, originalValue + value))
break;
}
return originalValue;
}
To copy to clipboard, switch view to plain text mode
I don't know how to fix these compile errors. Please give me an advice.
thanks in advance.
Intaek.
Bookmarks