Dynamic symbol table
Luciano Montanaro
mikelima at cirulla.net
Fri Jul 16 10:35:14 CEST 2004
El 23:09, giovedì 15 luglio 2004, Karl Vogel escribió:
> Karl Vogel wrote:
>
> > I noticed that a lot of the .so files have big dynamic symbol tables, as
> > if everything is exported. Wouldn't it be better to only export the
> > symbols that are really required?!
>
> Seems like it is indeed not needed. I've changed the Makefile.am of
> some kcm modules to use a version script which only exports init_*
> and create_* symbols.
>
> ie. kdebase/kcontrol/arts/Makefile.am
>
> --- Makefile.am.orig 2004-07-15 22:57:34.848230768 +0200
> +++ Makefile.am 2004-07-15 22:26:47.000000000 +0200
> @@ -2,7 +2,7 @@
>
> kcm_arts_la_SOURCES = arts.cpp generaltab.ui hardwaretab.ui
>
> -kcm_arts_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
> +kcm_arts_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined -Wl,--version-script=export.ver
> kcm_arts_la_LIBADD = $(LIB_KIO) $(LIB_KUTILS) -lkmid
>
> INCLUDES = -I$(kde_includes)/arts $(all_includes)
>
>
> And I put an export.ver file in the arts directory. The file contents is:
>
> $ cat export.ver
> {
> global: init_*; create_*;
> local: *;
> };
>
>
> After this change the symbol table is nicely reduced to 2 symbols (down from
> 96 symbols):
>
> $ objdump -CT .libs/kcm_arts.so|grep -v UND|grep DF
> 00008bb0 g DF .text 00000254 Base init_arts
> 00009bc0 g DF .text 0000008e Base create_arts
>
> Filesize also benefits from it:
>
> After:
> $ ls -l .libs/kcm_arts.so
> -rwxrwxr-x 1 kvo kvo 395815 Jul 15 22:39 .libs/kcm_arts.so
>
> Before:
> $ ls -l .libs/kcm_arts.so
> -rwxrwxr-x 1 kvo kvo 400039 Jul 15 23:00 .libs/kcm_arts.so
>
>
> The more symbols, the more diskspace is saved ofcourse.. ie:
>
> before:
> $ ls -l .libs/kcm_kwindecoration.so
> -rwxrwxr-x 1 kvo kvo 609527 Jul 10 01:19 .libs/kcm_kwindecoration.so
>
> after:
> $ ls -l .libs/kcm_kwindecoration.so
> -rwxrwxr-x 1 kvo kvo 586391 Jul 15 23:03 .libs/kcm_kwindecoration.so
>
>
>
> KDE Startup time however isn't reduced.. still 18 seconds for a cold boot..
> while only 5 seconds for a warm start :-(
What about kcontrol startup time and browsing?
Anyway, our friends of the RULE project may be interested just in the footprint
reduction, even if it's hard-disk space only.
Luciano
More information about the Kde-optimize
mailing list