Re: Dynamic symbol table

Luciano Montanaro <[email protected]>
Newsgroups gmane.comp.kde.devel.optimize
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.