Re: A cheap performance optimization



Matthias Clasen wrote:

One of the compiler people here at RedHat complained to me that most of
Gnome is linked with --export-dynamic, which really bloats both the size
and the load times (although prelink may alleviate that a bit). The ld
documentation contains exact details about when --export-dynamic is
needed, but it is never needed for libraries, and in most cases, it is
not needed for apps either.
It is also worth noting that --export-dynamic breaks libtool's -export-symbols and -export-symbols-regex options, causing all symbols in a library to be exported.

Currently, most of Gnome gets --export-dynamic from gmodule-2.0.pc,
which is required by many libraries. Fortunately, with GLib 2.6, fixing
this is as easy as requiring gmodule-no-export-2.0.pc instead of
gmodule-2.0.pc. For completeness, I just added gmodule-export-2.0.pc as
well.

It would be a nice goal for Gnome 2.10 to replace all uses of
gmodule-2.0.pc by either gmodule-no-export-2.0.pc or gmodule-
export-2.0.pc (I guess the latter will be rarely needed).
I'm not sure how much use the gmodule-no-export-2.0.pc file will be for applications using GTK, since gmodule-2.0 is a dependency of gtk+-2.0.pc (so "pkg-config --libs gtk+-2.0" includes --export-dynamic).

Neither prepending or appending "gmodule-no-export-2.0" to the pkg-config module list changes this, and having no-export variants for every pkg-config file sitting on top of gmodule doesn't seem like a very robust solution.

James.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]