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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem

Reply via email to