Re: [PATCH] libkdeinit symbol pruning
Waldo Bastian <[email protected]>
| Newsgroups | gmane.comp.kde.devel.optimize |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday 20 July 2004 11:13, David Faure wrote: > On Monday 19 July 2004 13:04, Waldo Bastian wrote: > > On Monday 19 July 2004 02:05, David Faure wrote: > > > On Monday 19 July 2004 01:06, Karl Vogel wrote: > > > > It will break apps that link to the libkdeinit_*.so's or dlopen them > > > > and try to resolve symbols other than kdemain... but I guess if any > > > > app does that, then it's already broken by violating the kde abi, > > > > no?! > > > > > > Thinking about it, I'm not sure anyone links to a kdeinit module. > > > What people do, which is unportable, is to link to a kparts part, but > > > that's unrelated. > > > > What if an application defines a plugin API that plugins can call? (Or > > worse, if the application doesn't define an API and plugins just call > > stuff all over the place) > > You are right, this happens: with kded :/ > kded modules find symbols in the kded binary itself (so now that I have the > kdeinit symbol pruning patch applied, kwallet and kpasswdserver don't load > anymore). This always seemed dirty to me - shouldn't we have a libkded > instead? The problem is then that we need to put all of kded in libkded, otherwise we just shift the problem. And if we have all of kded in libkded, we still export all the symbols, so I don't think that's a good solution. I think it would be a better solution if kded had a way to specify that it wants to export the symbols that are part of its plugin interface. (That should be all the stuff that is defined in kdedmodule.h / implemented in kdedmodule.cpp) kded seems illustrative for programs with a plugin interface that isn't pure virtual. Cheers, Waldo - -- [email protected] | KDE Community World Summit 2004 | [email protected] [email protected] | 21-29 August, Ludwigsburg, Germany | [email protected] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQFA/PqAN4pvrENfboIRAu90AKCjmXg9TFZep2DidcB6hoNZMH92EQCfUHoy 81QexrJkcDXAMFKsu/v3mEY= =O5iF -----END PGP SIGNATURE-----