fatal error if KDE compiles with hidden visibility but Q_DECL_EXPORT is defined to nothing

Christian Ehrlicher Ch.Ehrlicher at gmx.de
Thu Jun 21 17:30:44 CEST 2007


Thiago Macieira schrieb:
> Christian Ehrlicher said:
>>> and while this works on Win32, it breaks on linux because Q_DECL_EXPORT
>>> doesn't evaluate to default-visibility (don't know the gcc command for
>>> that) but to nothing. At least on a "default-built" qt-copy.
>>>
>> It's not the fault of Q_DECL_EXPORT but Q_DECL_IMPORT which is defined to
>> nothing on linux.
> 
> That's not a problem on ELF/x86, but I do wonder how it compiles at all
> under 64-bit.
> 
> Symbols marked "hidden" tell the compiler it can generate shorter calls,
> instead of emitting a relocation to a full 64-bit jump. On x86-64, that
> would be a 32-bit RIP-relative call; on Itanium, it would probably be a
> one of the weird lengths, like 21- or 25-bit jump.
> 
> (Itanium can encode short immediates in a single 41-bit instruction, but a
> full 64-bit displacement requires three instructions, 128 bits)
> 
It's working because tt uses the export macro in a slightly different 
way then we do. Q_DECL_IMPORT is never used on linux.

Christian

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20070621/ac0be2a7/attachment.pgp 


More information about the Kde-buildsystem mailing list