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
signature.asc
Description: This is a digitally signed message part.
