dbus-daemon link process ...

10function 10function at ifrance.com
Fri Nov 3 01:42:59 PST 2006

Hello dbus users and gurus !

I was just asking myself why the 'dbus-daemon' is not dynamically linked with 'libdbus' low-level library as shown : 

$ldd dbus-daemon
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x4001c000)
        libc.so.6 => /lib/tls/libc.so.6 (0x4003c000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

The link process is done as follows on my platform :
gcc -g -O2 -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wfloat-equal -Wsign-compare -Wdeclaration-after-statement -fno-common -fPIC -o dbus-daemon activation.o bus.o config-parser.o connection.o desktop-file.o dir-watch-dnotify.o dispatch.o driver.o expirelist.o policy.o selinux.o services.o signals.o test.o utils.o config-loader-expat.o main.o  /usr/lib/libexpat.so ../dbus/.libs/libdbus-convenience.a

It seems that "libdbus-convenience.a" contains all exported symbols of libdbus + some internal ones (_dbus_... ) that are usefull for the daemon and this static link replace the dynamic one with libdbus. 
Well, ok that works and it's not a big deal on common platforms …but it becomes a bit annoying if you plan to port DBUS to an embedded device because of the disk space loss due to (duplicate) size of dbus-daemon + libdbus ...  

For giving an idea, i have done a quick build of a "minimalistic" DBUS environment (no asserts,no checks,no options , stripped …)
dbus-daemon is about 650Kb
libdbus is about 255Kb
libexpat is about 160Kb

==> All of this takes about 1Mb which is quite a lot for an embedded device.

What do you think of linking dynamically the dbus-daemon with libdbus ? May be this will help DBUS to play in the embedded field … ;o)

On the other hand, may be you have ideas on how to reduce build size … Please let me know . 

 Hope this helps. Thanks for all your good work.

Today's piece of secure software is the subject of tomorrow's Bugtraq posting

iFRANCE, exprimez-vous !

More information about the dbus mailing list