kdeinit (was: Summary from Buildsystem BoF at Desktop Summit)
Thiago Macieira
thiago at kde.org
Tue Aug 16 18:42:11 UTC 2011
On Tuesday, 16 de August de 2011 19:36:17 Alexander Neundorf wrote:
> The idea here was not to get rid of this mechanism completely.
> If I understood correctly, with a PIE executable it is possible to dlopen
> the executable and call a symbol from it.
> This would make it possible to simply create regular-looking, standalone
> executables instead of the combination of plugin+tiny executable, and at
> the same time keep the kdeinit instance around, which would then not
> dlopen the plugin, but dlopen the PIE executable, and call the symbol from
> the PIE executable instead of from the plugin, this way providing the same
> benefits as we have now.
Ah, that makes a lot more sense. It's also closer to what the Harmattan
booster does: it dlopens the actual binaries, not a kdenit module.
However, it's still not perfectly correct: the issue is the difference between
-fPIE and -fPIC. In a PIE, the compiler and linker *know* that this ELF module
is the first open loaded, so they may take assumptions to that effect. In PIC,
that isn't the case.
So we're using an option that is specifically intended for stuff that is NOT
dlopened.
In practice, I don't know what optimisations may be attempted that would be
problematic. It might just work, as Harmattan can show.
Also: we need to be sure that prelinkers do prelink PIE, despite the article
that Laszlo linked to.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20110816/a1c6607c/attachment.sig>
More information about the Kde-buildsystem
mailing list