[systemd-devel] Underlinking in libsystemd-login
zbyszek at in.waw.pl
Tue Mar 12 20:08:15 PDT 2013
On Mon, Mar 11, 2013 at 03:25:48PM +0100, Lennart Poettering wrote:
> On Sun, 10.03.13 11:29, Canek Peláez Valdés (caneko at gmail.com) wrote:
> > In Gentoo we are seeing the following failure with programs linking
> > agains libsystemd-login, they all fail with:
> > /usr/lib64/libsystemd-login.so: undefined reference to `sd_id128_to_string'
> > /usr/lib64/libsystemd-login.so: undefined reference to `sd_id128_get_boot'
> > /usr/lib64/libsystemd-login.so: undefined reference to `sd_id128_get_machine'
> > collect2: ld returned 1 exit status
> > or similar. More info in the bug 62085:
> > https://bugs.freedesktop.org/show_bug.cgi?id=62085
> > The following patch fixes the issue (at least with udisks,
> > gnome-session, gdm, and gnome-shell), but I'm not sure is the correct
> > solution. Asking here for guidance.
> Hmm, so the actual sources of the library itself, i.e. sd-login.c don't
> use any the sd_id128_xyz functions, and hence we shouldn't apply your
> patch. Instead, since d848b9cbfa0ba72 the id128 stuff is pulled in by
> specifier.c which is part of the convenience library
> libsystemd-shared.so. Or in other words, we currently have a nice dep
> loop in place where -shared.so and -id128.so use each other's
> functions. We might want to split out the id128 stuff from specifier.c
> again? Zbigniew?
It seems to be enough to move the specifier.[ch] stuff to
libsystemd-units. I'm pushing a fix along those lines now.
More information about the systemd-devel