Em Terça-feira 20 Outubro 2009, às 20:43:48, ext Paul Floyd escreveu:
> Hi
> 
> On the web page http://qt.nokia.com/developer/qt-4.6-preview it says
> 
> "Extended support for UNIX platforms, including Solaris 10, HP-UX and
> AIX 6."
> 
> There's this little bit in the changes-4.6.0
> 
>     Platforms affected by this change:
>       * solaris-cc-* with the default (Cstd) C++ STL library
>         recommendation: use -library=stlport4
>         See Sun Studio's documentation for the effects of this option
> 
> but no actual explanation as to how to go about using stlport4.

Hi Paul

You need to pass the "-library=stlport4" option to your compiler. You can do 
that by setting CXXFLAGS and LDFLAGS before running configure:

CXXFLAGS=-library=stlport4 LDFLAGS=-library=stlport4 ./configure ....

If you're building 64-bit, remember that CXXFLAGS overrides the mkspec, so you 
need to add the appropriate -xarch= option or -m64. E.g.:

CXXFLAGS="-library=stlport4 -m64" LDFLAGS="-library=stlport4 -m64" ./configure 

Or, another possibility, is to edit your mkspecs/*/qmake.conf file and add the 
option there.

> Looking at the configure script, the only diff I can see is that more
> modules are disabled when building with obsolete compilers (true for
> Solaris, HP aCC and AIX xLC from what I see). Not exactly what I'd call
> "extended support".

The change is in config.tests/unix/stl. See change 
f120b5e4b63cbc30874fa21947b75d352f18d7df. It basically amounts to these 
changes:

+    DummyIterator<int> it1, it2;
+    int n = std::distance(it1, it2);
+    std::advance(it1, 3);

The Cstd STL supplied with Sun Studio cannot compile std::distance and 
std::advance properly (it requires an extra argument). I added the stricter 
testing because Qt Concurrent needs these two functions.

What's more, WebKit's WTF is wholly unusable with Cstd. But it works with 
stlport4.

> The configure script does not handle the latest Sun Studio (12 Update 1,
> aka CC 5.10).
> 
> PCH support ......... no
> MMX/3DNOW/SSE/SSE2..  no/no/no/no
> -> still no effort made for these with solaris-cc
> 
> mkspecs/solaris-cc/qmake.conf doesn't seem to have changed and is quite
> outdated. For the build described below, I've edited it to use stlport4
> amongst other changes.
> 
> 
> "../JavaScriptCore/wtf/Vector.h", line 48: Error, usererror: #error
> WTF_ALIGN macros need alignment control..

Hmm... This was fixed in the src/3rdparty/javascriptcore/wtf/Vector.h file, but 
not in src/3rdparty/webkit/wtf/Vector.h.

The changes are being upstreamed to webkit, so they should land there soon. 
See also https://bugs.webkit.org/show_bug.cgi?id=24932.

> (Compilation failure due to the use of non-standard extensions. Don't
> tell me "compiler not supported because it isn't non-standard enough").

Interestingly, I think Sun CC supports the extension. But I'm not sure about 
the other two compilers we need to support (IBM xlC and HP aCC), so I kept the 
Vector workaround for all compilers. The Solaris machines build a lot more 
often than the AIX and HP-UX machines in the office, so we can catch the issue 
sooner.

In contrast to Sun CC, xlC 7 is a worse compiler. It has a lot more issues 
with compilation requiring workarounds. aCC 6 is a good compiler, but I didn't 
have much experience with WebKit on it. But both of those come with a 
*standard* STL, which Sun CC doesn't.

> (that one's a Sun CC defect afaik, problem with template instantiation)
[snip]
> (again maybe a Sun CC template problem)
> 
> ./config.status -nomake examples

All of those issues are either fixed or worked around (in the case of Sun CC 
defects) in the patches in the WebKit bug tracker above. Unfortunately, they 
tend to bit-rot. I last updated them in July/August.

The JavaScriptCore patches are all merged in to src/3rdparty/javascriptcore 
and are being taken care of. The patches to WebKit and WebCore need attention.

A couple of months ago, I managed to compile and link QtWebKit in debug mode 
with CC 5.9 on a Solaris 10 machine. I could even browse the web without a 
problem.

-- 
Thiago Macieira - thiago.macieira (AT) nokia.com
  Senior Product Manager - Nokia, Qt Development Frameworks
     Sandakerveien 116, NO-0402 Oslo, Norway

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

Reply via email to