[systemd-devel] [PATCH] Makefile.am: reduce linked libraries

Gustavo Sverzut Barbieri barbieri at profusion.mobi
Wed Apr 4 11:02:51 PDT 2012


On Wed, Apr 4, 2012 at 1:53 PM, Daniel Drake <dsd at laptop.org> wrote:
>
> On Wed, Apr 4, 2012 at 10:36 AM, Daniel Drake <dsd at laptop.org> wrote:
> > But with selinux included, the task is more complicated. For example,
> > label.c (part of libsystemd-basic) also uses libselinux, so we need to
> > move it out somewhere else (lets say we put it in a new library:
> > libsystemd-extra). But the label_ functions are used several places
> > inside util.c itself. Things are tangled. If I were to go down this
> > path further I think we'd end up moving a huge amount of stuff to
> > libsystemd-extra.
>
> I just realised that udevd links against libselinux, so even if we fix
> selinux-timestamp I still won't be winning on that front - and I don't
> see an easy way to keep udevd out of a dracut initramfs.
>
> However, dropping the link against libcap (which also includes
> libattr) would be nice. Here is a patch to do that.
>
>
> Now that udev is included in systemd I will use this opportunity to
> moan a little about the next dependency lover that gets included in
> the initramfs: udevadm.
>
> /usr/bin/udevadm
>        linux-gate.so.1 =>  (0xb771f000)
>        libselinux.so.1 => /lib/libselinux.so.1 (0xb76b9000)
>        libblkid.so.1 => /lib/libblkid.so.1 (0xb768f000)
>        libkmod.so.2 => /lib/libkmod.so.2 (0xb7677000)
>        librt.so.1 => /lib/librt.so.1 (0xb766e000)
>        libc.so.6 => /lib/libc.so.6 (0xb74be000)
>        libdl.so.2 => /lib/libdl.so.2 (0xb74b9000)
>        /lib/ld-linux.so.2 (0x4610a000)
>        libuuid.so.1 => /lib/libuuid.so.1 (0xb74b3000)
>        liblzma.so.5 => /lib/liblzma.so.5 (0xb748a000)
>        libz.so.1 => /lib/libz.so.1 (0xb7474000)
>        libpthread.so.0 => /lib/libpthread.so.0 (0xb7459000)
>
> Don't suppose there is any obvious reduction possible here?

I never read udevadm's code and thus I can be saying crap, but from
its 'control only' appearance I don't see why the udevadm would need
to link to all of these. For instance, udevd is doing the module
loading (kmod), not udevadm. Likely the same for every other library.

Although I don't use initramfs, I'm in favor of minimalism and the
less useless libraries we link the better. :-)

--
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: barbieri at gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202


More information about the systemd-devel mailing list