Paul Floyd wrote:
> Here's a rough list of the files I changed in building Qt: > find . -name "*~" > ./src/corelib/thread/thread.pri~ > ./src/3rdparty/webkit/JavaScriptCore/kjs/math_object.cpp~ > ./src/3rdparty/webkit/JavaScriptCore/kjs/date_object.cpp~ > ./src/3rdparty/webkit/JavaScriptCore/kjs/operations.cpp~ > ./src/3rdparty/webkit/JavaScriptCore/kjs/collector.cpp~ > ./src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h~ > ./src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.h~ > ./src/3rdparty/webkit/JavaScriptCore/API/JSBase.h~ > ./src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h~ > ./src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.h~ > ./src/3rdparty/webkit/WebCore/dom/QualifiedName.cpp~ > ./src/3rdparty/webkit/WebCore/ksvg2/svg/SVGPathElement.cpp~ > ./src/3rdparty/webkit/WebCore/ksvg2/svg/SVGPolyElement.cpp~ > ./src/3rdparty/webkit/WebCore/css/CSSSelector.cpp~ > ./src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp~ > ./src/3rdparty/webkit/WebCore/xml/XPathValue.cpp~ > ./src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp~ > ./src/3rdparty/webkit/WebCore/editing/markup.cpp~ > ./src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp~ > ./src/3rdparty/webkit/WebCore/html/HTMLParser.cpp~ > ./mkspecs/solaris-cc/qmake.conf~ > > (I probably edited a few files with vi, so no ~ traces). They're all in > webkit apart from the thread profile include file. > > I expect that _XOPEN_SOURCE will fix one problem with munmap. > There's one other resolution problem, which could be a Studio problem, > and a few that are operator+ ambiguities between String and QString > (easily fixed by explicitly creating String instances). > > Most of the remaining errors are GCC (and perhaps other compilers) > nonstandard code: use of "__inline" and using C99 features in C++ > [including "<stdbool.h>", use of mathematical macros like isfinite] those functions (isfinite(3M), signbit(3M), fpclassify(3M)) are not legal in C++. These are C99. > > The use of stdbool.h is probably the only one that might be dangerous > (since sizeof(C++ bool) is different to sizeof(C99 _Bool)). Yup this is bad. On Solaris, /usr/include/stdbool.h contains the following: #if defined(_STDC_C99) #undef bool #undef true #undef false /* [ ... ] */ #else /* _STDC_C99 */ #error "Use of <stdbool.h> is valid only in a c99 compilation environment." #endif /* _STDC_C99 */ and _STDC_C99 should never be defined in C++ (until C++ accepts C99). So, this is guaranteed to fail compile. -D_XOPEN_SOURCE=600 is also illegal in C++. -D_XOPEN_SOURCE=500 is legal in C++. > I don't really know what the relationship is between Trolltech/Qt and > KDE/WebKit. If TT doesn't own (or hasn't forked) WebKit, then I can see > that they are going to have problems supporting it. It's probably going to take some time before WebKit proper and TT synchronize with all the compilers TT supports. Ade has checked in patches for 4.4.0 RC1 at cvsdude. Please give us a couple of more days and we'll check in patches for 4.4.0 "official", and all these problems should disappear. You also need -DFLT_EVAL_METHOD=1 -D__FLT_EVAL_METHOD__=1 for CLucene. Otherwise, the default is to typedef float_t to long double, and that is overkill. CLucene also needs some mutex patches which aren't in the TT version. Stay tuned. --Stefan -- Stefan Teleman Sun Microsystems, Inc. Stefan.Teleman at Sun.COM
