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