[Webkit-unassigned] [Bug 93849] New: [Qt] QNX build fails due to ctype usage in system headers

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 13 08:07:02 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=93849

           Summary: [Qt] QNX build fails due to ctype usage in system
                    headers
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: milian.wolff at kdab.com
            Blocks: 74040


Building QtWebKit for QNX fails because some system headers use ctype and trigger the compile error introduced by WTF/wtf/DisallowCType.h.

This header is included in multiple places (Source/WebKit2/config.h, Source/WTF/config.h,Source/JavaScriptCore/config.h, Source/WebKit/mac/WebKitPrefix.h, Source/WebCore/config.h).

Some of these includes are guarded, i.e.:

Source/WebCore/config.h
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
// Also generates errors on wx on Windows, presumably because these functions
// are used from wx headers. On GTK+ for Mac many GTK+ files include <libintl.h>
// or <glib/gi18n-lib.h>, which in turn include <xlocale/_ctype.h> which uses
// isacii(). 
#if !PLATFORM(QT) && !PLATFORM(WX) && !PLATFORM(CHROMIUM) && !(OS(DARWIN) && PLATFORM(GTK)) && !OS(QNX) && !defined(_LIBCPP_VERSION)
#include <wtf/DisallowCType.h>
#endif

Source/JavaScriptCore/config.h
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
// Also generates errors on wx on Windows and QNX, because these functions
// are used from wx and QNX headers. 
#if !PLATFORM(QT) && !PLATFORM(WX) && !OS(QNX)
#include <wtf/DisallowCType.h>
#endif

Source/WTF/config.h
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
// Also generates errors on wx on Windows and QNX, because these functions
// are used from wx and QNX headers. 
#if !PLATFORM(QT) && !PLATFORM(WX) && !OS(QNX)
#include <wtf/DisallowCType.h>
#endif

I'd say these checks should go into DisallowCType.h directly to prevent futher issues like this:

make[2]: Entering directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release/Source/WebKit2'
qcc -Vgcc_ntoarmv7le -lang-c++ -c -fstack-protector -fstack-protector-all -Wno-psabi -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -D_REENTRANT -DQ_OS_BLACKBERRY -DENABLE_3D_RENDERING=0 -DENABLE_WEBGL=0 -DWTF_USE_ICU_UNICODE=1 -DHAVE_QRAWFONT=1 -DHAVE_FONTCONFIG=1 -DENABLE_XSLT=1 -DWTF_USE_ZLIB=1 -DWTF_USE_TILED_BACKING_STORE=1 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1 -DPLUGIN_ARCHITECTURE_UNSUPPORTED=1 -DHAVE_QSTYLE=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_ACCELERATED_2D_CANVAS=0 -DENABLE_ANIMATION_API=0 -DENABLE_BATTERY_STATUS=0 -DENABLE_BLOB=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSP_NEXT=0 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_GRID_LAYOUT=0 -DENABLE_CSS_IMAGE_ORIENTATION=0 -DENABLE_CSS_IMAGE_RESOLUTION=0 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHADERS=0 -DENABLE_CSS_VARIABLES=0 -DENABLE_CSS3_FLEXBOX=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATAGRID=0 -DENABLE_DATALIST_ELEMENT=1 -DENABLE_DATA_TRANSFER_ITEMS=0 -DENABLE_DETA
-I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/webaudio -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/webdatabase -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/websockets -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/accessibility -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bindings -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bindings/generic -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/css -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/dom -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/dom/default -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/editing -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/fileapi -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/history -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html
In file included from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocale:12,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xiosbase:7,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/streambuf:7,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocnum:10,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/ios:7,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/ostream:7,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/istream:7,
                 from /home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/string:7,
                 from /home/milian/projects/qt5/install-playbook/include/QtCore/qstring.h:50,
                 from /home/milian/projects/qt5/install-playbook/include/QtCore/qobject.h:48,
                 from /home/milian/projects/qt5/install-playbook/include/QtCore/qiodevice.h:46,
                 from /home/milian/projects/qt5/install-playbook/include/QtCore/qdatastream.h:46,
                 from /home/milian/projects/qt5/install-playbook/include/QtCore/QDataStream:1,
                 from /home/milian/projects/qt5/qtwebkit/Source/WTF/wtf/Vector.h:35,
                 from /home/milian/projects/qt5/qtwebkit/Source/WTF/wtf/Deque.h:37,
                 from /home/milian/projects/qt5/qtwebkit/Source/WebKit2/Platform/CoreIPC/ArgumentDecoder.h:31,
                 from /home/milian/projects/qt5/qtwebkit/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h:29,
                 from /home/milian/projects/qt5/qtwebkit/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.cpp:27:
/home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocinfo: In function 'int std::_Tolower(int, const std::_Ctypevec*)':
/home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocinfo:173: error: 'tolower_WTF_Please_use_ASCIICType_instead_of_ctype_see_comment_in_ASCIICType_h' is not a member of 'std'
/home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocinfo: In function 'int std::_Toupper(int, const std::_Ctypevec*)':
/home/milian/bbndk-2.0.1/target/qnx6/usr/include/cpp/xlocinfo:179: error: 'toupper_WTF_Please_use_ASCIICType_instead_of_ctype_see_comment_in_ASCIICType_h' is not a member of 'std'
cc: /home/milian/bbndk-2.0.1/host/linux/x86/usr/lib/gcc/arm-unknown-nto-qnx6.5.0eabi/4.4.2/cc1plus error 1
make[2]: *** [obj/release/Platform/CoreIPC/ArgumentCoders.o] Error 1
make[2]: Leaving directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release/Source/WebKit2'
make[1]: *** [sub-Target-pri-make_first-ordered] Error 2
make[1]: Leaving directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release/Source/WebKit2'
make: *** [sub-Source-WebKit2-WebKit2-pro-make_first-ordered] Error 2
makeobj[0]: Leaving directory `/home/milian/projects/qt5/build-playbook/qtwebkit/Release'

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list