mingw status

Thiago Macieira thiago at kde.org
Mon Feb 20 20:19:09 CET 2006


Peter Kümmel wrote:
>>> But this we have to discuss with the khtml people.
>>
>> You don't have to. This will never happen.
>
>We don't have to change any kjs code.
>
>> KJS can't link to Qt.
>
>Even not in our cmake files?
>It's a KDE only solution.

No. libkjs is not supposed to link to Qt.

>> By design, this one function must be declared in another library.
>
>I don't understand.
>Currently it's declared in kjs and defined in khtml.

That's the idea. That's how it's supposed to be.

The function is declared as a constructor in the class. But it's 
implemented only by the libraries that integrate libkjs to Qt, since KJS 
doesn't link nor will link to Qt.

The workaround would be to remove the constructor completely and use a 
non-member function to convert from QString to UString. Or another class 
that derives from UString (call it VString) and has this constructor.

>The problem when compiling khtml is that some files of khtml
>include ustring.h and get the info UString::UString(const QString&)
>is somewhere in a dll, but this constructor is implemented in by khtml
>itself, so you get linker errors.

Which is only a problem on Win32. This code has existed for 5 years or 
more and this no one has ever complained.

>A other solution could be to move the khtml-ustring implementation into
> a mini-dll.
>
>Maybe I've overlooked the simples solution: Could I declare a single
> member function with a other linkage as the rest of the class?

Yes: you can declare a single member function to have linkage different 
from the rest of the class. That's what we've been doing all along in 
KJS.

It's just that the Win32 COFF PE executable format doesn't support this. 
It's an all or nothing. ELF implements it correctly, because there is 
only one symbol pool (the global one) and any symbol can be defined 
anywhere, just as if the program had been statically linked.
-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

5. Swa he géanhwearf tó timbran, and hwonne he cóm, lá! Unix cwæð "Hello, 
World". Ǽfre ǽghwilc wæs glæd and seo woruld wæs fréo.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20060220/a9443d16/attachment.pgp 


More information about the Kde-buildsystem mailing list