Details
-
Bug
-
Resolution: Moved
-
P2: Important
-
None
-
4.7.1
-
None
-
SLED11.1 using the official LSB 4.0 packages from the linux foundation
Description
When building Qt with the linux-lsb-g++ mkspec, it uncovers this problem (after you've worked around a few other LSB-specific issues). The 3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h header file directly includes the ext/atomicity.h header for certain GCC versions, but the atomicity.h header is internal to GCC and shouldn't be included directly. For an LSB build, this results in a compiler error because certain internal GCC symbols are not defined when atomicity.h is included in this way. Part of a build log follows:
In file included from ../3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h:80,
from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h:28,
from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashMap.h:24,
from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashCountedSet.h:26,
from ../3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h:27,
from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSCell.h:26,
from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSAPIValueWrapper.h:28,
from ../3rdparty/javascriptcore/JavaScriptCore/API/APICast.h:29,
from ../3rdparty/javascriptcore/JavaScriptCore/API/JSBase.cpp:30:
/usr/include/c++/4.3/ext/atomicity.h:42: error: expected constructor, destructor, or type conversion before '(' token
/usr/include/c++/4.3/ext/atomicity.h: In function '_Atomic_word __exchange_and_add_dispatch(_Atomic_word*, int)':
/usr/include/c++/4.3/ext/atomicity.h:84: error: '__exchange_and_add' was not declared in this scope