[systemd-commits] 5 commits - configure.ac .gitignore Makefile.am README src/compat-libs src/libsystemd src/libsystemd-id128 src/login

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Sat Jan 25 15:02:23 PST 2014


 .gitignore                                     |    1 
 Makefile.am                                    |  306 +++++++++----------------
 README                                         |    2 
 configure.ac                                   |   15 +
 src/compat-libs/.gitignore                     |    1 
 src/compat-libs/libsystemd-id128.pc.in         |   18 +
 src/compat-libs/libsystemd-id128.sym           |   21 +
 src/compat-libs/libsystemd-login.pc.in         |   18 +
 src/compat-libs/libsystemd-login.sym           |   87 +++++++
 src/compat-libs/linkwarning.h                  |   34 ++
 src/libsystemd-id128/.gitignore                |    1 
 src/libsystemd-id128/Makefile                  |    1 
 src/libsystemd-id128/libsystemd-id128.pc.in    |   18 -
 src/libsystemd-id128/libsystemd-id128.sym      |   21 -
 src/libsystemd-id128/sd-id128.c                |  234 -------------------
 src/libsystemd/libsystemd.sym                  |   68 +++++
 src/libsystemd/sd-id128/Makefile               |    1 
 src/libsystemd/sd-id128/libsystemd-id128.pc.in |   18 +
 src/libsystemd/sd-id128/sd-id128.c             |  234 +++++++++++++++++++
 src/login/.gitignore                           |    1 
 src/login/libsystemd-login.pc.in               |   18 -
 src/login/libsystemd-login.sym                 |   94 -------
 22 files changed, 639 insertions(+), 573 deletions(-)

New commits:
commit be12791331b9b64867b5aa4b13df88c1a2b7e2a1
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sat Jan 25 16:05:08 2014 -0500

    build-sys: merge libsystemd-id128 into libsystemd

diff --git a/Makefile.am b/Makefile.am
index 769d24a..37073d2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -52,7 +52,7 @@ LIBSYSTEMD_DAEMON_REVISION=10
 LIBSYSTEMD_DAEMON_AGE=0
 
 LIBSYSTEMD_ID128_CURRENT=0
-LIBSYSTEMD_ID128_REVISION=26
+LIBSYSTEMD_ID128_REVISION=27
 LIBSYSTEMD_ID128_AGE=0
 
 LIBSYSTEMD_JOURNAL_CURRENT=11
@@ -999,7 +999,6 @@ libsystemd_core_la_LIBADD = \
 	libsystemd-capability.la \
 	libsystemd-units.la \
 	libsystemd-label.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la \
@@ -1373,7 +1372,7 @@ test_strv_SOURCES = \
 
 test_strv_LDADD = \
 	libsystemd-units.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 test_path_util_SOURCES = \
@@ -1394,7 +1393,7 @@ test_install_SOURCES = \
 test_install_LDADD = \
 	libsystemd-units.la \
 	libsystemd-label.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 test_watchdog_SOURCES = \
@@ -1458,7 +1457,6 @@ systemd_analyze_SOURCES = \
 
 systemd_analyze_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -1468,7 +1466,6 @@ systemd_initctl_SOURCES = \
 
 systemd_initctl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -1482,7 +1479,6 @@ systemd_update_utmp_CFLAGS = \
 
 systemd_update_utmp_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	$(AUDIT_LIBS)
@@ -1558,7 +1554,7 @@ systemd_tmpfiles_LDADD = \
 	libsystemd-units.la \
 	libsystemd-label.la \
 	libsystemd-capability.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 rootbin_PROGRAMS += \
@@ -1611,7 +1607,7 @@ systemd_machine_id_setup_SOURCES = \
 
 systemd_machine_id_setup_LDADD = \
 	libsystemd-label.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 # ------------------------------------------------------------------------------
@@ -1634,7 +1630,6 @@ systemd_fsck_SOURCES = \
 
 systemd_fsck_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la
@@ -1714,7 +1709,7 @@ bootctl_SOURCES = \
 
 bootctl_LDADD = \
 	libsystemd-shared.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-daemon-internal.la
 
 bin_PROGRAMS += \
@@ -1735,7 +1730,7 @@ systemd_gpt_auto_generator_SOURCES = \
 
 systemd_gpt_auto_generator_LDADD = \
 	libsystemd-label.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la \
 	$(BLKID_LIBS)
@@ -1792,7 +1787,6 @@ systemd_cgroups_agent_SOURCES = \
 
 systemd_cgroups_agent_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -1806,7 +1800,6 @@ systemctl_LDADD = \
 	libsystemd-internal.la \
 	libsystemd-logs.la \
 	libsystemd-journal-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -1860,7 +1853,6 @@ systemd_nspawn_LDADD = \
 	libsystemd-label.la \
 	libsystemd-capability.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -1873,7 +1865,6 @@ systemd_run_LDADD = \
 	libsystemd-capability.la \
 	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 # ------------------------------------------------------------------------------
@@ -1883,7 +1874,6 @@ systemd_bus_proxyd_SOURCES = \
 systemd_bus_proxyd_LDADD = \
 	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 bus-proxyd-install-hook:
@@ -1980,6 +1970,7 @@ libsystemd_la_SOURCES = \
 	src/systemd/sd-rtnl.h \
 	src/systemd/sd-resolve.h \
 	src/systemd/sd-login.h \
+	src/systemd/sd-id128.h \
 	src/libsystemd/sd-bus/sd-bus.c \
 	src/libsystemd/sd-bus/bus-control.c \
 	src/libsystemd/sd-bus/bus-control.h \
@@ -2027,6 +2018,7 @@ libsystemd_la_SOURCES = \
 	src/libsystemd/sd-rtnl/rtnl-util.c \
 	src/libsystemd/sd-resolve/sd-resolve.c \
 	src/libsystemd/sd-resolve/resolve-util.h \
+	src/libsystemd/sd-id128/sd-id128.c \
 	src/login/sd-login.c \
 	src/login/login-shared.c \
 	src/login/login-shared.h
@@ -2035,7 +2027,6 @@ nodist_libsystemd_la_SOURCES = \
 	src/libsystemd/sd-bus/bus-error-mapping.c
 
 libsystemd_la_LIBADD = \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2052,6 +2043,10 @@ libsystemd_la_LDFLAGS = \
 pkgconfiglib_DATA += \
 	src/libsystemd/libsystemd.pc
 
+pkginclude_HEADERS += \
+	src/systemd/sd-login.h \
+	src/systemd/sd-id128.h
+
 EXTRA_DIST += \
 	src/libsystemd/sd-bus/bus-error-mapping.gperf \
 	src/libsystemd/sd-bus/DIFFERENCES \
@@ -2116,7 +2111,6 @@ test_bus_marshal_SOURCES = \
 
 test_bus_marshal_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2147,7 +2141,6 @@ test_bus_chat_CFLAGS = \
 
 test_bus_chat_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2156,7 +2149,6 @@ test_bus_cleanup_SOURCES = \
 
 test_bus_cleanup_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2169,7 +2161,6 @@ test_bus_server_CFLAGS = \
 
 test_bus_server_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2183,7 +2174,6 @@ test_bus_objects_CFLAGS = \
 
 test_bus_objects_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2195,7 +2185,6 @@ test_bus_error_SOURCES = \
 
 test_bus_error_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2204,7 +2193,6 @@ test_bus_gvariant_SOURCES = \
 
 test_bus_gvariant_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2222,7 +2210,6 @@ test_bus_creds_SOURCES = \
 
 test_bus_creds_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2233,7 +2220,6 @@ test_bus_match_SOURCES = \
 
 test_bus_match_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2242,7 +2228,6 @@ test_bus_kernel_SOURCES = \
 
 test_bus_kernel_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2258,7 +2243,6 @@ test_bus_kernel_bloom_SOURCES = \
 
 test_bus_kernel_bloom_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2267,7 +2251,6 @@ test_bus_kernel_benchmark_SOURCES = \
 
 test_bus_kernel_benchmark_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2283,7 +2266,6 @@ test_bus_zero_copy_SOURCES = \
 
 test_bus_zero_copy_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2306,7 +2288,6 @@ test_event_SOURCES = \
 
 test_event_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -2316,7 +2297,6 @@ test_rtnl_SOURCES = \
 test_rtnl_LDADD = \
 	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 test_resolve_SOURCES = \
@@ -2336,7 +2316,6 @@ busctl_SOURCES = \
 
 busctl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	libsystemd-dump.la \
@@ -2383,7 +2362,6 @@ test_dhcp_client_LDADD = \
 	libsystemd-dhcp.la \
 	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 tests += \
@@ -2430,7 +2408,6 @@ libudev_la_LDFLAGS = \
 
 libudev_la_LIBADD = \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 pkgconfiglib_DATA += \
@@ -2615,7 +2592,6 @@ libudev_core_la_LIBADD = \
 	libsystemd-label.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la \
 	$(BLKID_LIBS) \
 	$(KMOD_LIBS)
@@ -2987,62 +2963,17 @@ udevlibexec_PROGRAMS += \
 	mtd_probe
 
 # ------------------------------------------------------------------------------
-libsystemd_id128_la_SOURCES = \
-	src/libsystemd-id128/libsystemd-id128.sym \
-	src/libsystemd-id128/sd-id128.c
-
-libsystemd_id128_la_CFLAGS = \
-	$(AM_CFLAGS) \
-	-fvisibility=hidden
-
-libsystemd_id128_la_LDFLAGS = \
-	$(AM_LDFLAGS) \
-	-version-info $(LIBSYSTEMD_ID128_CURRENT):$(LIBSYSTEMD_ID128_REVISION):$(LIBSYSTEMD_ID128_AGE) \
-	-Wl,--version-script=$(top_srcdir)/src/libsystemd-id128/libsystemd-id128.sym
-
-libsystemd_id128_la_LIBADD = \
-	libsystemd-daemon-internal.la \
-	libsystemd-shared.la
-
-libsystemd_id128_internal_la_SOURCES = \
-	$(libsystemd_id128_la_SOURCES)
-
 test_id128_SOURCES = \
 	src/test/test-id128.c
 
 test_id128_LDADD = \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
 tests += \
 	test-id128
 
-pkginclude_HEADERS += \
-	src/systemd/sd-id128.h
-
-lib_LTLIBRARIES += \
-	libsystemd-id128.la
-
-noinst_LTLIBRARIES += \
-	libsystemd-id128-internal.la
-
-pkgconfiglib_DATA += \
-	src/libsystemd-id128/libsystemd-id128.pc
-
-# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
-libsystemd-id128-install-hook:
-	libname=libsystemd-id128.so && $(move-to-rootlibdir)
-
-libsystemd-id128-uninstall-hook:
-	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-id128.so*
-
-INSTALL_EXEC_HOOKS += libsystemd-id128-install-hook
-UNINSTALL_EXEC_HOOKS += libsystemd-id128-uninstall-hook
-
-EXTRA_DIST += \
-	src/libsystemd-id128/libsystemd-id128.pc.in
-
 # ------------------------------------------------------------------------------
 
 rootlibexec_PROGRAMS += \
@@ -3081,7 +3012,7 @@ journalctl_SOURCES = \
 
 journalctl_LDADD = \
 	libsystemd-journal-internal.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-logs.la \
 	libsystemd-shared.la
 
@@ -3211,7 +3142,7 @@ libsystemd_journal_la_LDFLAGS = \
 libsystemd_journal_la_LIBADD = \
 	libsystemd-label.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 libsystemd_journal_internal_la_SOURCES = \
@@ -3266,7 +3197,7 @@ libsystemd_journal_core_la_LIBADD = \
 	libsystemd-capability.la \
 	libsystemd-label.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 if HAVE_ACL
@@ -3417,7 +3348,6 @@ systemd_journal_gatewayd_SOURCES = \
 systemd_journal_gatewayd_LDADD = \
 	libsystemd-logs.la \
 	libsystemd-journal-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-internal.la \
 	libsystemd-shared.la \
@@ -3454,7 +3384,6 @@ systemd_socket_proxyd_LDADD = \
 	libsystemd-logs.la \
 	libsystemd-internal.la \
 	libsystemd-journal-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3477,7 +3406,7 @@ systemd_coredumpctl_SOURCES = \
 
 systemd_coredumpctl_LDADD = \
 	libsystemd-journal-internal.la \
-	libsystemd-id128-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 bin_PROGRAMS += \
@@ -3738,7 +3667,6 @@ systemd_hostnamed_SOURCES = \
 systemd_hostnamed_LDADD = \
 	libsystemd-label.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3771,7 +3699,6 @@ hostnamectl_SOURCES = \
 
 hostnamectl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3799,7 +3726,6 @@ systemd_bus_driverd_SOURCES = \
 
 systemd_bus_driverd_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3837,7 +3763,6 @@ systemd_localed_SOURCES = \
 systemd_localed_LDADD = \
 	libsystemd-label.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3879,7 +3804,6 @@ localectl_SOURCES = \
 
 localectl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3908,7 +3832,6 @@ systemd_timedated_SOURCES = \
 systemd_timedated_LDADD = \
 	libsystemd-label.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -3945,7 +3868,6 @@ timedatectl_SOURCES = \
 
 timedatectl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -4006,7 +3928,6 @@ libsystemd_machine_core_la_LIBADD = \
 	libsystemd-label.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la
 
@@ -4018,7 +3939,6 @@ machinectl_SOURCES = \
 
 machinectl_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -4084,7 +4004,6 @@ systemd_networkd_LDADD = \
 	libsystemd-daemon-internal.la \
 	libsystemd-internal.la \
 	libsystemd-dhcp.la \
-	libsystemd-id128-internal.la \
 	libsystemd-label.la \
 	libsystemd-shared.la
 
@@ -4109,7 +4028,6 @@ test_network_LDADD = \
 	libudev-internal.la \
 	libsystemd-internal.la \
 	libsystemd-dhcp.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-label.la \
 	libsystemd-shared.la
@@ -4167,7 +4085,6 @@ libsystemd_logind_core_la_LIBADD = \
 	libsystemd-label.la \
 	libsystemd-capability.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la
@@ -4201,7 +4118,6 @@ loginctl_LDADD = \
 	libsystemd-internal.la \
 	libudev-internal.la \
 	libsystemd-shared.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la
 
 rootbin_PROGRAMS += \
@@ -4219,7 +4135,6 @@ systemd_inhibit_SOURCES = \
 
 systemd_inhibit_LDADD = \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -4246,7 +4161,6 @@ test_inhibit_SOURCES = \
 test_inhibit_LDADD = \
 	libsystemd-internal.la \
 	libsystemd-daemon-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
 test_login_tables_SOURCES = \
@@ -4283,7 +4197,6 @@ pam_systemd_la_LDFLAGS = \
 pam_systemd_la_LIBADD = \
 	libsystemd-capability.la \
 	libsystemd-internal.la \
-	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la \
 	$(PAM_LIBS)
@@ -4312,9 +4225,6 @@ dist_dbuspolicy_DATA += \
 dist_pkgsysconf_DATA += \
 	src/login/logind.conf
 
-pkginclude_HEADERS += \
-	src/systemd/sd-login.h
-
 polkitpolicy_files += \
 	src/login/org.freedesktop.login1.policy
 
@@ -4364,7 +4274,6 @@ polkitpolicy_in_files += \
 
 EXTRA_DIST += \
 	src/login/logind-gperf.gperf \
-	src/compat-libs/libsystemd-login.pc.in \
 	src/login/71-seat.rules.in \
 	src/login/73-seat-late.rules.in \
 	units/systemd-logind.service.in \
@@ -4417,7 +4326,7 @@ id128_la_LDFLAGS = \
 
 id128_la_LIBADD = \
 	$(PYTHON_DEVEL_LIBS) \
-	libsystemd-id128.la
+	libsystemd.la
 
 _daemon_la_SOURCES = \
 	src/python-systemd/_daemon.c \
@@ -4459,7 +4368,7 @@ _reader_la_LDFLAGS = \
 _reader_la_LIBADD = \
 	$(PYTHON_DEVEL_LIBS) \
 	libsystemd-journal.la \
-	libsystemd-id128.la \
+	libsystemd.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -4552,30 +4461,56 @@ libsystemd_login_la_LDFLAGS = \
 libsystemd_login_la_LIBADD = \
 	libsystemd.la
 
+libsystemd_id128_la_SOURCES = \
+	libsystemd-id128.c \
+	src/compat-libs/libsystemd-id128.sym
+
+libsystemd_id128_la_CFLAGS = \
+	$(AM_CFLAGS) \
+	-fvisibility=default \
+	-imacros $(top_srcdir)/src/compat-libs/linkwarning.h
+
+libsystemd_id128_la_LDFLAGS = \
+	$(AM_LDFLAGS) \
+	-version-info $(LIBSYSTEMD_ID128_CURRENT):$(LIBSYSTEMD_ID128_REVISION):$(LIBSYSTEMD_ID128_AGE) \
+	-Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-id128.sym
+
+libsystemd_id128_la_LIBADD = \
+	libsystemd.la
+
 BUILT_SOURCES += \
-	libsystemd-login.c
+	libsystemd-login.c \
+	libsystemd-id128.c
 
-libsystemd-login.c: src/compat-libs/libsystemd-login.sym
+libsystemd-%.c: src/compat-libs/libsystemd-%.sym
 	$(generate-fake-lib)
 
 lib_LTLIBRARIES += \
-	libsystemd-login.la
+	libsystemd-login.la \
+	libsystemd-id128.la
 
 pkgconfiglib_DATA += \
-	src/compat-libs/libsystemd-login.pc
+	src/compat-libs/libsystemd-login.pc \
+	src/compat-libs/libsystemd-id128.pc
 
 # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
-libsystemd-login-install-hook:
+compat-lib-install-hook:
 	libname=libsystemd-login.so && $(move-to-rootlibdir)
+	libname=libsystemd-id128.so && $(move-to-rootlibdir)
 
-libsystemd-login-uninstall-hook:
+compat-lib-uninstall-hook:
 	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-login.so*
+	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-id128.so*
 
-INSTALL_EXEC_HOOKS += libsystemd-login-install-hook
-UNINSTALL_EXEC_HOOKS += libsystemd-login-uninstall-hook
+INSTALL_EXEC_HOOKS += compat-lib-install-hook
+UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook
 
 endif
 
+EXTRA_DIST += \
+	src/compat-libs/libsystemd-login.pc.in \
+	src/compat-libs/libsystemd-id128.pc.in
+
 # ------------------------------------------------------------------------------
 substitutions = \
        '|rootlibexecdir=$(rootlibexecdir)|' \
@@ -5002,7 +4937,7 @@ test-libsystemd-daemon-sym.c: \
 	$(generate-sym-test)
 
 test-libsystemd-id128-sym.c: \
-	src/libsystemd-id128/libsystemd-id128.sym \
+	src/compat-libs/libsystemd-id128.sym \
 	src/systemd/sd-id128.h
 	$(generate-sym-test)
 
@@ -5054,21 +4989,23 @@ test_libudev_sym_LDADD = \
 BUILT_SOURCES += \
 	$(test_libsystemd_sym_SOURCES) \
 	$(test_libsystemd_daemon_sym_SOURCES) \
-	$(test_libsystemd_id128_sym_SOURCES) \
 	$(test_libsystemd_journal_sym_SOURCES) \
-	$(test_libsystemd_login_sym_SOURCES) \
 	$(test_libudev_sym_SOURCES)
 
 tests += \
 	test-libsystemd-sym \
 	test-libsystemd-daemon-sym \
-	test-libsystemd-id128-sym \
 	test-libsystemd-journal-sym \
 	test-libudev-sym
 
 if ENABLE_COMPAT_LIBS
+BUILT_SOURCES += \
+	$(test_libsystemd_login_sym_SOURCES) \
+	$(test_libsystemd_id128_sym_SOURCES)
+
 tests += \
-	test-libsystemd-login-sym
+	test-libsystemd-login-sym \
+	test-libsystemd-id128-sym
 endif
 
 cppcheck:
diff --git a/src/compat-libs/.gitignore b/src/compat-libs/.gitignore
index 0b8d106..662c154 100644
--- a/src/compat-libs/.gitignore
+++ b/src/compat-libs/.gitignore
@@ -1 +1 @@
-/libsystemd-login.pc
+/libsystemd-*.pc
diff --git a/src/compat-libs/libsystemd-id128.pc.in b/src/compat-libs/libsystemd-id128.pc.in
new file mode 100644
index 0000000..bb65ffd
--- /dev/null
+++ b/src/compat-libs/libsystemd-id128.pc.in
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: systemd
+Description: systemd 128 Bit ID Utility Library
+URL: @PACKAGE_URL@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lsystemd-id128
+Cflags: -I${includedir}
diff --git a/src/compat-libs/libsystemd-id128.sym b/src/compat-libs/libsystemd-id128.sym
new file mode 100644
index 0000000..604c002
--- /dev/null
+++ b/src/compat-libs/libsystemd-id128.sym
@@ -0,0 +1,21 @@
+/***
+  This file is part of systemd.
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+***/
+
+/* Original symbols from systemd v38 */
+
+LIBSYSTEMD_ID128_38 {
+global:
+        sd_id128_to_string;
+        sd_id128_from_string;
+        sd_id128_randomize;
+        sd_id128_get_machine;
+        sd_id128_get_boot;
+local:
+        *;
+};
diff --git a/src/libsystemd-id128/.gitignore b/src/libsystemd-id128/.gitignore
deleted file mode 100644
index 144adf9..0000000
--- a/src/libsystemd-id128/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/libsystemd-id128.pc
diff --git a/src/libsystemd-id128/Makefile b/src/libsystemd-id128/Makefile
deleted file mode 120000
index d0b0e8e..0000000
--- a/src/libsystemd-id128/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile
\ No newline at end of file
diff --git a/src/libsystemd-id128/libsystemd-id128.pc.in b/src/libsystemd-id128/libsystemd-id128.pc.in
deleted file mode 100644
index bb65ffd..0000000
--- a/src/libsystemd-id128/libsystemd-id128.pc.in
+++ /dev/null
@@ -1,18 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: systemd
-Description: systemd 128 Bit ID Utility Library
-URL: @PACKAGE_URL@
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lsystemd-id128
-Cflags: -I${includedir}
diff --git a/src/libsystemd-id128/libsystemd-id128.sym b/src/libsystemd-id128/libsystemd-id128.sym
deleted file mode 100644
index 604c002..0000000
--- a/src/libsystemd-id128/libsystemd-id128.sym
+++ /dev/null
@@ -1,21 +0,0 @@
-/***
-  This file is part of systemd.
-
-  systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-***/
-
-/* Original symbols from systemd v38 */
-
-LIBSYSTEMD_ID128_38 {
-global:
-        sd_id128_to_string;
-        sd_id128_from_string;
-        sd_id128_randomize;
-        sd_id128_get_machine;
-        sd_id128_get_boot;
-local:
-        *;
-};
diff --git a/src/libsystemd-id128/sd-id128.c b/src/libsystemd-id128/sd-id128.c
deleted file mode 100644
index 9ee40ab..0000000
--- a/src/libsystemd-id128/sd-id128.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
-/***
-  This file is part of systemd.
-
-  Copyright 2011 Lennart Poettering
-
-  systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-
-  systemd is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with systemd; If not, see <http://www.gnu.org/licenses/>.
-***/
-
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "util.h"
-#include "macro.h"
-#include "sd-id128.h"
-
-_public_ char *sd_id128_to_string(sd_id128_t id, char s[33]) {
-        unsigned n;
-
-        assert_return(s, NULL);
-
-        for (n = 0; n < 16; n++) {
-                s[n*2] = hexchar(id.bytes[n] >> 4);
-                s[n*2+1] = hexchar(id.bytes[n] & 0xF);
-        }
-
-        s[32] = 0;
-
-        return s;
-}
-
-_public_ int sd_id128_from_string(const char s[], sd_id128_t *ret) {
-        unsigned n, i;
-        sd_id128_t t;
-        bool is_guid = false;
-
-        assert_return(s, -EINVAL);
-        assert_return(ret, -EINVAL);
-
-        for (n = 0, i = 0; n < 16;) {
-                int a, b;
-
-                if (s[i] == '-') {
-                        /* Is this a GUID? Then be nice, and skip over
-                         * the dashes */
-
-                        if (i == 8)
-                                is_guid = true;
-                        else if (i == 13 || i == 18 || i == 23) {
-                                if (!is_guid)
-                                        return -EINVAL;
-                        } else
-                                return -EINVAL;
-
-                        i++;
-                        continue;
-                }
-
-                a = unhexchar(s[i++]);
-                if (a < 0)
-                        return -EINVAL;
-
-                b = unhexchar(s[i++]);
-                if (b < 0)
-                        return -EINVAL;
-
-                t.bytes[n++] = (a << 4) | b;
-        }
-
-        if (i != (is_guid ? 36 : 32))
-                return -EINVAL;
-
-        if (s[i] != 0)
-                return -EINVAL;
-
-        *ret = t;
-        return 0;
-}
-
-static sd_id128_t make_v4_uuid(sd_id128_t id) {
-        /* Stolen from generate_random_uuid() of drivers/char/random.c
-         * in the kernel sources */
-
-        /* Set UUID version to 4 --- truly random generation */
-        id.bytes[6] = (id.bytes[6] & 0x0F) | 0x40;
-
-        /* Set the UUID variant to DCE */
-        id.bytes[8] = (id.bytes[8] & 0x3F) | 0x80;
-
-        return id;
-}
-
-_public_ int sd_id128_get_machine(sd_id128_t *ret) {
-        static thread_local sd_id128_t saved_machine_id;
-        static thread_local bool saved_machine_id_valid = false;
-        _cleanup_close_ int fd = -1;
-        char buf[33];
-        ssize_t k;
-        unsigned j;
-        sd_id128_t t;
-
-        assert_return(ret, -EINVAL);
-
-        if (saved_machine_id_valid) {
-                *ret = saved_machine_id;
-                return 0;
-        }
-
-        fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
-        if (fd < 0)
-                return -errno;
-
-        k = loop_read(fd, buf, 33, false);
-        if (k < 0)
-                return (int) k;
-
-        if (k != 33)
-                return -EIO;
-
-        if (buf[32] !='\n')
-                return -EIO;
-
-        for (j = 0; j < 16; j++) {
-                int a, b;
-
-                a = unhexchar(buf[j*2]);
-                b = unhexchar(buf[j*2+1]);
-
-                if (a < 0 || b < 0)
-                        return -EIO;
-
-                t.bytes[j] = a << 4 | b;
-        }
-
-        saved_machine_id = t;
-        saved_machine_id_valid = true;
-
-        *ret = t;
-        return 0;
-}
-
-_public_ int sd_id128_get_boot(sd_id128_t *ret) {
-        static thread_local sd_id128_t saved_boot_id;
-        static thread_local bool saved_boot_id_valid = false;
-        _cleanup_close_ int fd = -1;
-        char buf[36];
-        ssize_t k;
-        unsigned j;
-        sd_id128_t t;
-        char *p;
-
-        assert_return(ret, -EINVAL);
-
-        if (saved_boot_id_valid) {
-                *ret = saved_boot_id;
-                return 0;
-        }
-
-        fd = open("/proc/sys/kernel/random/boot_id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
-        if (fd < 0)
-                return -errno;
-
-        k = loop_read(fd, buf, 36, false);
-        if (k < 0)
-                return (int) k;
-
-        if (k != 36)
-                return -EIO;
-
-        for (j = 0, p = buf; j < 16; j++) {
-                int a, b;
-
-                if (p >= buf + k)
-                        return -EIO;
-
-                if (*p == '-')
-                        p++;
-
-                a = unhexchar(p[0]);
-                b = unhexchar(p[1]);
-
-                if (a < 0 || b < 0)
-                        return -EIO;
-
-                t.bytes[j] = a << 4 | b;
-
-                p += 2;
-        }
-
-        saved_boot_id = t;
-        saved_boot_id_valid = true;
-
-        *ret = t;
-        return 0;
-}
-
-_public_ int sd_id128_randomize(sd_id128_t *ret) {
-        _cleanup_close_ int fd = -1;
-        sd_id128_t t;
-        ssize_t k;
-
-        assert_return(ret, -EINVAL);
-
-        fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
-        if (fd < 0)
-                return -errno;
-
-        k = loop_read(fd, &t, 16, false);
-        if (k < 0)
-                return (int) k;
-
-        if (k != 16)
-                return -EIO;
-
-        /* Turn this into a valid v4 UUID, to be nice. Note that we
-         * only guarantee this for newly generated UUIDs, not for
-         * pre-existing ones.*/
-
-        *ret = make_v4_uuid(t);
-        return 0;
-}
diff --git a/src/libsystemd/libsystemd.sym b/src/libsystemd/libsystemd.sym
index 9b10604..9416f22 100644
--- a/src/libsystemd/libsystemd.sym
+++ b/src/libsystemd/libsystemd.sym
@@ -10,6 +10,13 @@
 LIBSYSTEMD_209 {
 global:
 
+        /* originally LIBSYSTEMD_ID128_38 */
+        sd_id128_to_string;
+        sd_id128_from_string;
+        sd_id128_randomize;
+        sd_id128_get_machine;
+        sd_id128_get_boot;
+
         /* originally LIBSYSTEMD_LOGIN_31 */
         sd_get_seats;
         sd_get_sessions;
diff --git a/src/libsystemd/sd-id128/Makefile b/src/libsystemd/sd-id128/Makefile
new file mode 120000
index 0000000..94aaae2
--- /dev/null
+++ b/src/libsystemd/sd-id128/Makefile
@@ -0,0 +1 @@
+../../Makefile
\ No newline at end of file
diff --git a/src/libsystemd/sd-id128/libsystemd-id128.pc.in b/src/libsystemd/sd-id128/libsystemd-id128.pc.in
new file mode 100644
index 0000000..bb65ffd
--- /dev/null
+++ b/src/libsystemd/sd-id128/libsystemd-id128.pc.in
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: systemd
+Description: systemd 128 Bit ID Utility Library
+URL: @PACKAGE_URL@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lsystemd-id128
+Cflags: -I${includedir}
diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c
new file mode 100644
index 0000000..9ee40ab
--- /dev/null
+++ b/src/libsystemd/sd-id128/sd-id128.c
@@ -0,0 +1,234 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+  This file is part of systemd.
+
+  Copyright 2011 Lennart Poettering
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "util.h"
+#include "macro.h"
+#include "sd-id128.h"
+
+_public_ char *sd_id128_to_string(sd_id128_t id, char s[33]) {
+        unsigned n;
+
+        assert_return(s, NULL);
+
+        for (n = 0; n < 16; n++) {
+                s[n*2] = hexchar(id.bytes[n] >> 4);
+                s[n*2+1] = hexchar(id.bytes[n] & 0xF);
+        }
+
+        s[32] = 0;
+
+        return s;
+}
+
+_public_ int sd_id128_from_string(const char s[], sd_id128_t *ret) {
+        unsigned n, i;
+        sd_id128_t t;
+        bool is_guid = false;
+
+        assert_return(s, -EINVAL);
+        assert_return(ret, -EINVAL);
+
+        for (n = 0, i = 0; n < 16;) {
+                int a, b;
+
+                if (s[i] == '-') {
+                        /* Is this a GUID? Then be nice, and skip over
+                         * the dashes */
+
+                        if (i == 8)
+                                is_guid = true;
+                        else if (i == 13 || i == 18 || i == 23) {
+                                if (!is_guid)
+                                        return -EINVAL;
+                        } else
+                                return -EINVAL;
+
+                        i++;
+                        continue;
+                }
+
+                a = unhexchar(s[i++]);
+                if (a < 0)
+                        return -EINVAL;
+
+                b = unhexchar(s[i++]);
+                if (b < 0)
+                        return -EINVAL;
+
+                t.bytes[n++] = (a << 4) | b;
+        }
+
+        if (i != (is_guid ? 36 : 32))
+                return -EINVAL;
+
+        if (s[i] != 0)
+                return -EINVAL;
+
+        *ret = t;
+        return 0;
+}
+
+static sd_id128_t make_v4_uuid(sd_id128_t id) {
+        /* Stolen from generate_random_uuid() of drivers/char/random.c
+         * in the kernel sources */
+
+        /* Set UUID version to 4 --- truly random generation */
+        id.bytes[6] = (id.bytes[6] & 0x0F) | 0x40;
+
+        /* Set the UUID variant to DCE */
+        id.bytes[8] = (id.bytes[8] & 0x3F) | 0x80;
+
+        return id;
+}
+
+_public_ int sd_id128_get_machine(sd_id128_t *ret) {
+        static thread_local sd_id128_t saved_machine_id;
+        static thread_local bool saved_machine_id_valid = false;
+        _cleanup_close_ int fd = -1;
+        char buf[33];
+        ssize_t k;
+        unsigned j;
+        sd_id128_t t;
+
+        assert_return(ret, -EINVAL);
+
+        if (saved_machine_id_valid) {
+                *ret = saved_machine_id;
+                return 0;
+        }
+
+        fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+        if (fd < 0)
+                return -errno;
+
+        k = loop_read(fd, buf, 33, false);
+        if (k < 0)
+                return (int) k;
+
+        if (k != 33)
+                return -EIO;
+
+        if (buf[32] !='\n')
+                return -EIO;
+
+        for (j = 0; j < 16; j++) {
+                int a, b;
+
+                a = unhexchar(buf[j*2]);
+                b = unhexchar(buf[j*2+1]);
+
+                if (a < 0 || b < 0)
+                        return -EIO;
+
+                t.bytes[j] = a << 4 | b;
+        }
+
+        saved_machine_id = t;
+        saved_machine_id_valid = true;
+
+        *ret = t;
+        return 0;
+}
+
+_public_ int sd_id128_get_boot(sd_id128_t *ret) {
+        static thread_local sd_id128_t saved_boot_id;
+        static thread_local bool saved_boot_id_valid = false;
+        _cleanup_close_ int fd = -1;
+        char buf[36];
+        ssize_t k;
+        unsigned j;
+        sd_id128_t t;
+        char *p;
+
+        assert_return(ret, -EINVAL);
+
+        if (saved_boot_id_valid) {
+                *ret = saved_boot_id;
+                return 0;
+        }
+
+        fd = open("/proc/sys/kernel/random/boot_id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+        if (fd < 0)
+                return -errno;
+
+        k = loop_read(fd, buf, 36, false);
+        if (k < 0)
+                return (int) k;
+
+        if (k != 36)
+                return -EIO;
+
+        for (j = 0, p = buf; j < 16; j++) {
+                int a, b;
+
+                if (p >= buf + k)
+                        return -EIO;
+
+                if (*p == '-')
+                        p++;
+
+                a = unhexchar(p[0]);
+                b = unhexchar(p[1]);
+
+                if (a < 0 || b < 0)
+                        return -EIO;
+
+                t.bytes[j] = a << 4 | b;
+
+                p += 2;
+        }
+
+        saved_boot_id = t;
+        saved_boot_id_valid = true;
+
+        *ret = t;
+        return 0;
+}
+
+_public_ int sd_id128_randomize(sd_id128_t *ret) {
+        _cleanup_close_ int fd = -1;
+        sd_id128_t t;
+        ssize_t k;
+
+        assert_return(ret, -EINVAL);
+
+        fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+        if (fd < 0)
+                return -errno;
+
+        k = loop_read(fd, &t, 16, false);
+        if (k < 0)
+                return (int) k;
+
+        if (k != 16)
+                return -EIO;
+
+        /* Turn this into a valid v4 UUID, to be nice. Note that we
+         * only guarantee this for newly generated UUIDs, not for
+         * pre-existing ones.*/
+
+        *ret = make_v4_uuid(t);
+        return 0;
+}

commit 53e856e16ac37fe30b8bb59153ff69aad0fa9c27
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Jan 19 08:50:02 2014 -0500

    build-sys: create "compatibility libraries" section
    
    Compat stuff is moved to src/compat-libs/.
    Warnings are issued when programs are linked with the deprecated library.

diff --git a/Makefile.am b/Makefile.am
index dcfad03..769d24a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4364,7 +4364,7 @@ polkitpolicy_in_files += \
 
 EXTRA_DIST += \
 	src/login/logind-gperf.gperf \
-	src/login/libsystemd-login.pc.in \
+	src/compat-libs/libsystemd-login.pc.in \
 	src/login/71-seat.rules.in \
 	src/login/73-seat-late.rules.in \
 	units/systemd-logind.service.in \
@@ -4527,24 +4527,27 @@ clean-python:
 	-rm -f _daemon.la id128.la _journal.la login.la _reader.la
 
 # ------------------------------------------------------------------------------
+if ENABLE_COMPAT_LIBS
+
 define generate-fake-lib
 	$(AM_V_at)$(MKDIR_P) $(dir $@)
-	$(AM_V_GEN)sed -r -n 's/^ +(sd_.*);/void new_\1(void);\n__asm__(".symver new_\1,\1 at LIBSYSTEMD_209");\nstatic void (*resolve_\1(void)) (void) {\n\treturn new_\1;\n}\nvoid \1(void) __attribute__((ifunc("resolve_\1")));\n/p' <$< >$@
+	$(AM_V_GEN)sed -r -n 's/^ +(sd_.*);/void new_\1(void);\n__asm__(".symver new_\1,\1 at LIBSYSTEMD_209");\nstatic void (*resolve_\1(void)) (void) {\n\treturn new_\1;\n}\nvoid \1(void) __attribute__((ifunc("resolve_\1")));\nobsolete_lib(\1,$(notdir $(basename $<)));\n/p' <$< >$@
 endef
 
 libsystemd_login_la_SOURCES = \
 	libsystemd-login.c \
-	src/login/libsystemd-login.sym
+	src/compat-libs/libsystemd-login.sym
 
 libsystemd_login_la_CFLAGS = \
 	$(AM_CFLAGS) \
 	-fvisibility=default \
+	-imacros $(top_srcdir)/src/compat-libs/linkwarning.h \
 	-fno-lto
 
 libsystemd_login_la_LDFLAGS = \
 	$(AM_LDFLAGS) \
 	-version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE) \
-	-Wl,--version-script=$(top_srcdir)/src/login/libsystemd-login.sym
+	-Wl,--version-script=$(top_srcdir)/src/compat-libs/libsystemd-login.sym
 
 libsystemd_login_la_LIBADD = \
 	libsystemd.la
@@ -4552,14 +4555,14 @@ libsystemd_login_la_LIBADD = \
 BUILT_SOURCES += \
 	libsystemd-login.c
 
-libsystemd-login.c: src/login/libsystemd-login.sym
+libsystemd-login.c: src/compat-libs/libsystemd-login.sym
 	$(generate-fake-lib)
 
 lib_LTLIBRARIES += \
 	libsystemd-login.la
 
 pkgconfiglib_DATA += \
-	src/login/libsystemd-login.pc
+	src/compat-libs/libsystemd-login.pc
 
 # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
 libsystemd-login-install-hook:
@@ -4571,6 +4574,8 @@ libsystemd-login-uninstall-hook:
 INSTALL_EXEC_HOOKS += libsystemd-login-install-hook
 UNINSTALL_EXEC_HOOKS += libsystemd-login-uninstall-hook
 
+endif
+
 # ------------------------------------------------------------------------------
 substitutions = \
        '|rootlibexecdir=$(rootlibexecdir)|' \
@@ -5007,7 +5012,7 @@ test-libsystemd-journal-sym.c: \
 	$(generate-sym-test)
 
 test-libsystemd-login-sym.c: \
-	src/login/libsystemd-login.sym \
+	src/compat-libs/libsystemd-login.sym \
 	src/systemd/sd-login.h
 	$(generate-sym-test)
 
@@ -5059,9 +5064,13 @@ tests += \
 	test-libsystemd-daemon-sym \
 	test-libsystemd-id128-sym \
 	test-libsystemd-journal-sym \
-	test-libsystemd-login-sym \
 	test-libudev-sym
 
+if ENABLE_COMPAT_LIBS
+tests += \
+	test-libsystemd-login-sym
+endif
+
 cppcheck:
 	cppcheck --enable=all -q $(top_srcdir)
 
diff --git a/configure.ac b/configure.ac
index 6c1ba7c..d92f1fe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -259,6 +259,17 @@ AS_IF([test "x$enable_dbus" != "xno"], [
 AM_CONDITIONAL(HAVE_DBUS, [test "$have_dbus" = "yes"])
 
 # ------------------------------------------------------------------------------
+have_compat_libs=no
+AC_ARG_ENABLE([compat_libs], AS_HELP_STRING([--enable-compat-libs],[Enable creation of compatibility libraries]),
+                [case "${enableval}" in
+                        yes) have_compat_libs=yes ;;
+                        no) have_compat_libs=no ;;
+                        *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-libs) ;;
+                esac],
+                [have_compat_libs=no])
+AM_CONDITIONAL([ENABLE_COMPAT_LIBS], [test "$have_compat_libs" = "yes"])
+
+# ------------------------------------------------------------------------------
 have_coverage=no
 AC_ARG_ENABLE(coverage, AS_HELP_STRING([--enable-coverage], [enable test coverage]))
 if test "x$enable_coverage" = "xyes" ; then
@@ -1117,6 +1128,7 @@ AC_MSG_RESULT([
         test coverage:           ${have_coverage}
         Split /usr:              ${enable_split_usr}
         SysV compatibility:      ${SYSTEM_SYSV_COMPAT}
+        compatibility libraries: ${have_compat_libs}
 
         prefix:                  ${prefix}
         rootprefix:              ${with_rootprefix}
diff --git a/src/compat-libs/.gitignore b/src/compat-libs/.gitignore
new file mode 100644
index 0000000..0b8d106
--- /dev/null
+++ b/src/compat-libs/.gitignore
@@ -0,0 +1 @@
+/libsystemd-login.pc
diff --git a/src/compat-libs/libsystemd-login.pc.in b/src/compat-libs/libsystemd-login.pc.in
new file mode 100644
index 0000000..677f6b6
--- /dev/null
+++ b/src/compat-libs/libsystemd-login.pc.in
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: systemd
+Description: systemd Login Utility Library deprecated compatibility library
+URL: @PACKAGE_URL@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lsystemd
+Cflags: -I${includedir}
diff --git a/src/compat-libs/libsystemd-login.sym b/src/compat-libs/libsystemd-login.sym
new file mode 100644
index 0000000..54aa91c
--- /dev/null
+++ b/src/compat-libs/libsystemd-login.sym
@@ -0,0 +1,87 @@
+/***
+  This file is part of systemd.
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+***/
+
+/* Original symbols from systemd v31 */
+
+LIBSYSTEMD_LOGIN_31 {
+global:
+        sd_get_seats;
+        sd_get_sessions;
+        sd_get_uids;
+        sd_login_monitor_flush;
+        sd_login_monitor_get_fd;
+        sd_login_monitor_new;
+        sd_login_monitor_unref;
+        sd_pid_get_owner_uid;
+        sd_pid_get_session;
+        sd_seat_can_multi_session;
+        sd_seat_get_active;
+        sd_seat_get_sessions;
+        sd_session_get_seat;
+        sd_session_get_uid;
+        sd_session_is_active;
+        sd_uid_get_seats;
+        sd_uid_get_sessions;
+        sd_uid_get_state;
+        sd_uid_is_on_seat;
+local:
+        *;
+};
+
+LIBSYSTEMD_LOGIN_38 {
+global:
+        sd_pid_get_unit;
+        sd_session_get_service;
+} LIBSYSTEMD_LOGIN_31;
+
+LIBSYSTEMD_LOGIN_43 {
+global:
+        sd_session_get_type;
+        sd_session_get_class;
+        sd_session_get_display;
+} LIBSYSTEMD_LOGIN_38;
+
+LIBSYSTEMD_LOGIN_186 {
+global:
+        sd_session_get_state;
+        sd_seat_can_tty;
+        sd_seat_can_graphical;
+} LIBSYSTEMD_LOGIN_43;
+
+LIBSYSTEMD_LOGIN_198 {
+global:
+        sd_session_get_tty;
+} LIBSYSTEMD_LOGIN_186;
+
+LIBSYSTEMD_LOGIN_201 {
+global:
+        sd_login_monitor_get_events;
+        sd_login_monitor_get_timeout;
+} LIBSYSTEMD_LOGIN_198;
+
+LIBSYSTEMD_LOGIN_202 {
+global:
+        sd_pid_get_user_unit;
+        sd_pid_get_machine_name;
+} LIBSYSTEMD_LOGIN_201;
+
+LIBSYSTEMD_LOGIN_203 {
+global:
+        sd_get_machine_names;
+} LIBSYSTEMD_LOGIN_202;
+
+LIBSYSTEMD_LOGIN_205 {
+global:
+        sd_pid_get_slice;
+} LIBSYSTEMD_LOGIN_203;
+
+LIBSYSTEMD_LOGIN_207 {
+global:
+        sd_session_get_vt;
+} LIBSYSTEMD_LOGIN_205;
diff --git a/src/compat-libs/linkwarning.h b/src/compat-libs/linkwarning.h
new file mode 100644
index 0000000..b6a6ac2
--- /dev/null
+++ b/src/compat-libs/linkwarning.h
@@ -0,0 +1,34 @@
+/***
+  This file is part of systemd, but is heavily based on
+  glibc's libc-symbols.h.
+
+  Copyright (C) 1995-1998,2000-2006,2008,2009 Free Software Foundation, Inc
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+
+#define __make_section_unallocated(section_string)      \
+  asm (".section " section_string "\n\t.previous");
+
+#define __sec_comment "\n#APP\n\t#"
+
+#define link_warning(symbol, msg) \
+  __make_section_unallocated (".gnu.warning." #symbol)  \
+  static const char __evoke_link_warning_##symbol[]     \
+    __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \
+    = msg
+
+#define obsolete_lib(name, lib)                         \
+  link_warning(name, #name " was moved to libsystemd. Do not use " #lib ".")
diff --git a/src/login/.gitignore b/src/login/.gitignore
index d3840c7..5c0b2ac 100644
--- a/src/login/.gitignore
+++ b/src/login/.gitignore
@@ -1,4 +1,3 @@
-/libsystemd-login.pc
 /logind-gperf.c
 /org.freedesktop.login1.policy
 /71-seat.rules
diff --git a/src/login/libsystemd-login.pc.in b/src/login/libsystemd-login.pc.in
deleted file mode 100644
index 7b2a724..0000000
--- a/src/login/libsystemd-login.pc.in
+++ /dev/null
@@ -1,18 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: systemd
-Description: systemd Login Utility Library
-URL: @PACKAGE_URL@
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lsystemd-login
-Cflags: -I${includedir}
diff --git a/src/login/libsystemd-login.sym b/src/login/libsystemd-login.sym
deleted file mode 100644
index 54aa91c..0000000
--- a/src/login/libsystemd-login.sym
+++ /dev/null
@@ -1,87 +0,0 @@
-/***
-  This file is part of systemd.
-
-  systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-***/
-
-/* Original symbols from systemd v31 */
-
-LIBSYSTEMD_LOGIN_31 {
-global:
-        sd_get_seats;
-        sd_get_sessions;
-        sd_get_uids;
-        sd_login_monitor_flush;
-        sd_login_monitor_get_fd;
-        sd_login_monitor_new;
-        sd_login_monitor_unref;
-        sd_pid_get_owner_uid;
-        sd_pid_get_session;
-        sd_seat_can_multi_session;
-        sd_seat_get_active;
-        sd_seat_get_sessions;
-        sd_session_get_seat;
-        sd_session_get_uid;
-        sd_session_is_active;
-        sd_uid_get_seats;
-        sd_uid_get_sessions;
-        sd_uid_get_state;
-        sd_uid_is_on_seat;
-local:
-        *;
-};
-
-LIBSYSTEMD_LOGIN_38 {
-global:
-        sd_pid_get_unit;
-        sd_session_get_service;
-} LIBSYSTEMD_LOGIN_31;
-
-LIBSYSTEMD_LOGIN_43 {
-global:
-        sd_session_get_type;
-        sd_session_get_class;
-        sd_session_get_display;
-} LIBSYSTEMD_LOGIN_38;
-
-LIBSYSTEMD_LOGIN_186 {
-global:
-        sd_session_get_state;
-        sd_seat_can_tty;
-        sd_seat_can_graphical;
-} LIBSYSTEMD_LOGIN_43;
-
-LIBSYSTEMD_LOGIN_198 {
-global:
-        sd_session_get_tty;
-} LIBSYSTEMD_LOGIN_186;
-
-LIBSYSTEMD_LOGIN_201 {
-global:
-        sd_login_monitor_get_events;
-        sd_login_monitor_get_timeout;
-} LIBSYSTEMD_LOGIN_198;
-
-LIBSYSTEMD_LOGIN_202 {
-global:
-        sd_pid_get_user_unit;
-        sd_pid_get_machine_name;
-} LIBSYSTEMD_LOGIN_201;
-
-LIBSYSTEMD_LOGIN_203 {
-global:
-        sd_get_machine_names;
-} LIBSYSTEMD_LOGIN_202;
-
-LIBSYSTEMD_LOGIN_205 {
-global:
-        sd_pid_get_slice;
-} LIBSYSTEMD_LOGIN_203;
-
-LIBSYSTEMD_LOGIN_207 {
-global:
-        sd_session_get_vt;
-} LIBSYSTEMD_LOGIN_205;

commit 242465b5bfcc2ea1b1d704907e7dd5f1c15d4404
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sat Jan 25 17:24:19 2014 -0500

    build-sys: disable lto for compatibility libraries
    
    https://sourceware.org/bugzilla/show_bug.cgi?id=16504

diff --git a/Makefile.am b/Makefile.am
index 53707d9..dcfad03 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4538,7 +4538,8 @@ libsystemd_login_la_SOURCES = \
 
 libsystemd_login_la_CFLAGS = \
 	$(AM_CFLAGS) \
-	-fvisibility=default
+	-fvisibility=default \
+	-fno-lto
 
 libsystemd_login_la_LDFLAGS = \
 	$(AM_LDFLAGS) \

commit 0bba8d6eb74466bc708a4453130b99b5b4e0254c
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Jan 19 00:12:20 2014 -0500

    build-sys: merge libsystemd-login into libsystemd
    
    A compatibility libsystemd-login library is created which uses
    .symver and ifunc magic proposed by Lennart to make programs linked
    to the old library name continue to work seamlessly.
    
    Unfortunately the bfd linker crashes:
      https://sourceware.org/bugzilla/show_bug.cgi?id=16467
    This will be fixed in binutils 2.25.
    
    As a work-around, gold can be used:
      LDFLAGS=-Wl,-fuse-ld=gold
    
    Unfortunately the switch to pick the linker appeared in gcc 4.8.
    
    This also doesn't work with LLVM:
      http://llvm.org/bugs/show_bug.cgi?id=11897

diff --git a/.gitignore b/.gitignore
index b706ab9..36b91b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@
 /hostnamectl
 /install-tree
 /journalctl
+/libsystemd-login.c
 /libtool
 /localectl
 /loginctl
diff --git a/Makefile.am b/Makefile.am
index 6c4f834..53707d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,7 +44,7 @@ LIBGUDEV_REVISION=3
 LIBGUDEV_AGE=1
 
 LIBSYSTEMD_LOGIN_CURRENT=9
-LIBSYSTEMD_LOGIN_REVISION=1
+LIBSYSTEMD_LOGIN_REVISION=2
 LIBSYSTEMD_LOGIN_AGE=9
 
 LIBSYSTEMD_DAEMON_CURRENT=0
@@ -1804,14 +1804,7 @@ systemctl_LDADD = \
 	libsystemd-units.la \
 	libsystemd-label.la \
 	libsystemd-internal.la \
-	libsystemd-logs.la
-
-if ENABLE_LOGIND
-systemctl_LDADD += \
-	libsystemd-login-internal.la
-endif
-
-systemctl_LDADD += \
+	libsystemd-logs.la \
 	libsystemd-journal-internal.la \
 	libsystemd-id128-internal.la \
 	libsystemd-daemon-internal.la \
@@ -1986,6 +1979,7 @@ libsystemd_la_SOURCES = \
 	src/systemd/sd-event.h \
 	src/systemd/sd-rtnl.h \
 	src/systemd/sd-resolve.h \
+	src/systemd/sd-login.h \
 	src/libsystemd/sd-bus/sd-bus.c \
 	src/libsystemd/sd-bus/bus-control.c \
 	src/libsystemd/sd-bus/bus-control.h \
@@ -2032,7 +2026,10 @@ libsystemd_la_SOURCES = \
 	src/libsystemd/sd-rtnl/rtnl-util.h \
 	src/libsystemd/sd-rtnl/rtnl-util.c \
 	src/libsystemd/sd-resolve/sd-resolve.c \
-	src/libsystemd/sd-resolve/resolve-util.h
+	src/libsystemd/sd-resolve/resolve-util.h \
+	src/login/sd-login.c \
+	src/login/login-shared.c \
+	src/login/login-shared.h
 
 nodist_libsystemd_la_SOURCES = \
 	src/libsystemd/sd-bus/bus-error-mapping.c
@@ -3272,11 +3269,6 @@ libsystemd_journal_core_la_LIBADD = \
 	libsystemd-id128-internal.la \
 	libsystemd-shared.la
 
-if ENABLE_LOGIND
-libsystemd_journal_core_la_LIBADD += \
-	libsystemd-login-internal.la
-endif
-
 if HAVE_ACL
 libsystemd_journal_core_la_LIBADD += \
 	libsystemd-acl.la
@@ -3474,12 +3466,8 @@ systemd_coredump_SOURCES = \
 systemd_coredump_LDADD = \
 	libsystemd-journal-internal.la \
 	libsystemd-label.la \
-	libsystemd-shared.la
-
-if ENABLE_LOGIND
-systemd_coredump_LDADD += \
-	libsystemd-login-internal.la
-endif
+	libsystemd-shared.la \
+	libsystemd-internal.la
 
 rootlibexec_PROGRAMS += \
 	systemd-coredump
@@ -4242,14 +4230,14 @@ test_login_SOURCES = \
 	src/login/test-login.c
 
 test_login_LDADD = \
-	libsystemd-login-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 test_login_shared_SOURCES = \
 	src/login/test-login-shared.c
 
 test_login_shared_LDADD = \
-	libsystemd-login-internal.la \
+	libsystemd-internal.la \
 	libsystemd-shared.la
 
 test_inhibit_SOURCES = \
@@ -4275,29 +4263,6 @@ tests += \
 	test-login-tables \
 	test-login-shared
 
-libsystemd_login_la_SOURCES = \
-	src/login/libsystemd-login.sym \
-	src/login/sd-login.c \
-	src/systemd/sd-login.h \
-	src/login/login-shared.c \
-	src/login/login-shared.h
-
-libsystemd_login_la_CFLAGS = \
-	$(AM_CFLAGS) \
-	-fvisibility=hidden
-
-libsystemd_login_la_LDFLAGS = \
-	$(AM_LDFLAGS) \
-	-version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE) \
-	-Wl,--version-script=$(top_srcdir)/src/login/libsystemd-login.sym
-
-libsystemd_login_la_LIBADD = \
-	libsystemd-daemon-internal.la \
-	libsystemd-shared.la
-
-libsystemd_login_internal_la_SOURCES = \
-	$(libsystemd_login_la_SOURCES)
-
 if HAVE_PAM
 pam_systemd_la_SOURCES = \
 	src/login/pam-module.c
@@ -4330,16 +4295,6 @@ dist_pamconf_DATA = \
 	src/login/systemd-user
 endif
 
-# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
-libsystemd-login-install-hook:
-	libname=libsystemd-login.so && $(move-to-rootlibdir)
-
-libsystemd-login-uninstall-hook:
-	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-login.so*
-
-INSTALL_EXEC_HOOKS += libsystemd-login-install-hook
-UNINSTALL_EXEC_HOOKS += libsystemd-login-uninstall-hook
-
 nodist_systemunit_DATA += \
 	units/systemd-logind.service \
 	units/systemd-user-sessions.service
@@ -4360,15 +4315,6 @@ dist_pkgsysconf_DATA += \
 pkginclude_HEADERS += \
 	src/systemd/sd-login.h
 
-lib_LTLIBRARIES += \
-	libsystemd-login.la
-
-noinst_LTLIBRARIES += \
-	libsystemd-login-internal.la
-
-pkgconfiglib_DATA += \
-	src/login/libsystemd-login.pc
-
 polkitpolicy_files += \
 	src/login/org.freedesktop.login1.policy
 
@@ -4536,7 +4482,7 @@ login_la_LDFLAGS = \
 login_la_LIBADD = \
 	$(PYTHON_DEVEL_LIBS) \
 	libsystemd-journal.la \
-	libsystemd-login.la \
+	libsystemd.la \
 	libsystemd-daemon-internal.la \
 	libsystemd-shared.la
 
@@ -4581,6 +4527,50 @@ clean-python:
 	-rm -f _daemon.la id128.la _journal.la login.la _reader.la
 
 # ------------------------------------------------------------------------------
+define generate-fake-lib
+	$(AM_V_at)$(MKDIR_P) $(dir $@)
+	$(AM_V_GEN)sed -r -n 's/^ +(sd_.*);/void new_\1(void);\n__asm__(".symver new_\1,\1 at LIBSYSTEMD_209");\nstatic void (*resolve_\1(void)) (void) {\n\treturn new_\1;\n}\nvoid \1(void) __attribute__((ifunc("resolve_\1")));\n/p' <$< >$@
+endef
+
+libsystemd_login_la_SOURCES = \
+	libsystemd-login.c \
+	src/login/libsystemd-login.sym
+
+libsystemd_login_la_CFLAGS = \
+	$(AM_CFLAGS) \
+	-fvisibility=default
+
+libsystemd_login_la_LDFLAGS = \
+	$(AM_LDFLAGS) \
+	-version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE) \
+	-Wl,--version-script=$(top_srcdir)/src/login/libsystemd-login.sym
+
+libsystemd_login_la_LIBADD = \
+	libsystemd.la
+
+BUILT_SOURCES += \
+	libsystemd-login.c
+
+libsystemd-login.c: src/login/libsystemd-login.sym
+	$(generate-fake-lib)
+
+lib_LTLIBRARIES += \
+	libsystemd-login.la
+
+pkgconfiglib_DATA += \
+	src/login/libsystemd-login.pc
+
+# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
+libsystemd-login-install-hook:
+	libname=libsystemd-login.so && $(move-to-rootlibdir)
+
+libsystemd-login-uninstall-hook:
+	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-login.so*
+
+INSTALL_EXEC_HOOKS += libsystemd-login-install-hook
+UNINSTALL_EXEC_HOOKS += libsystemd-login-uninstall-hook
+
+# ------------------------------------------------------------------------------
 substitutions = \
        '|rootlibexecdir=$(rootlibexecdir)|' \
        '|rootbindir=$(rootbindir)|' \
@@ -4996,7 +4986,8 @@ endef
 test-libsystemd-sym.c: \
 	src/libsystemd/libsystemd.sym \
 	src/systemd/sd-bus.h \
-	src/systemd/sd-utf8.h
+	src/systemd/sd-utf8.h \
+	src/systemd/sd-login.h
 	$(generate-sym-test)
 
 test-libsystemd-daemon-sym.c: \
diff --git a/src/libsystemd/libsystemd.sym b/src/libsystemd/libsystemd.sym
index e2e917e..9b10604 100644
--- a/src/libsystemd/libsystemd.sym
+++ b/src/libsystemd/libsystemd.sym
@@ -9,6 +9,67 @@
 
 LIBSYSTEMD_209 {
 global:
+
+        /* originally LIBSYSTEMD_LOGIN_31 */
+        sd_get_seats;
+        sd_get_sessions;
+        sd_get_uids;
+        sd_login_monitor_flush;
+        sd_login_monitor_get_fd;
+        sd_login_monitor_new;
+        sd_login_monitor_unref;
+        sd_pid_get_owner_uid;
+        sd_pid_get_session;
+        sd_seat_can_multi_session;
+        sd_seat_get_active;
+        sd_seat_get_sessions;
+        sd_session_get_seat;
+        sd_session_get_uid;
+        sd_session_is_active;
+        sd_uid_get_seats;
+        sd_uid_get_sessions;
+        sd_uid_get_state;
+        sd_uid_is_on_seat;
+
+        /* originally LIBSYSTEMD_LOGIN_38 */
+        sd_pid_get_unit;
+        sd_session_get_service;
+
+        /* originally LIBSYSTEMD_LOGIN_43 */
+        sd_session_get_type;
+        sd_session_get_class;
+        sd_session_get_display;
+
+        /* originally LIBSYSTEMD_LOGIN_186 */
+        sd_session_get_state;
+        sd_seat_can_tty;
+        sd_seat_can_graphical;
+
+        /* originally LIBSYSTEMD_LOGIN_198 */
+        sd_session_get_tty;
+
+        /* originally LIBSYSTEMD_LOGIN_201 */
+        sd_login_monitor_get_events;
+        sd_login_monitor_get_timeout;
+
+        /* originally LIBSYSTEMD_LOGIN_202 */
+        sd_pid_get_user_unit;
+        sd_pid_get_machine_name;
+
+        /* originally LIBSYSTEMD_LOGIN_203 */
+        sd_get_machine_names;
+
+        /* originally LIBSYSTEMD_LOGIN_205 */
+        sd_pid_get_slice;
+
+        /* originally LIBSYSTEMD_LOGIN_207 */
+        sd_session_get_vt;
+
+        /* new in LIBSYSTEMD_LOGIN_209 */
+        sd_session_is_remote;
+        sd_session_get_remote_user;
+        sd_session_get_remote_host;
+
         /* Same order as in sd-bus.h should be used */
 
         /* Connections */
diff --git a/src/login/libsystemd-login.sym b/src/login/libsystemd-login.sym
index 1d33982..54aa91c 100644
--- a/src/login/libsystemd-login.sym
+++ b/src/login/libsystemd-login.sym
@@ -85,10 +85,3 @@ LIBSYSTEMD_LOGIN_207 {
 global:
         sd_session_get_vt;
 } LIBSYSTEMD_LOGIN_205;
-
-LIBSYSTEMD_LOGIN_209 {
-global:
-        sd_session_is_remote;
-        sd_session_get_remote_user;
-        sd_session_get_remote_host;
-} LIBSYSTEMD_LOGIN_207;

commit 39c4ead2323b45bbe9866e0f97fd8dcfb8a0bede
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jan 21 20:38:49 2014 -0500

    build-sys: default to gold linker
    
    gold doesn't exhibit the problems with linking of compatibility
    libraries.
    
    It is also slightly faster:
    
    make clean && make -j5   bfd       gold
    
    real                   34.885s     33.707s
    user                   34.486s     32.189s
    sys                    9.929s      10.845s
    
    real                   35.128s     33.508s
    user                   34.660s     31.858s
    sys                    10.798s     10.341s
    
    real                   35.405s     33.748s
    user                   34.765s     32.384s
    sys                    11.635s     10.998s
    
    real                   35.250s     33.795s
    user                   34.704s     32.253s
    sys                    11.220s     11.469s
    
    touch src/libsystemd/sd-bus.c && make -j5
                            bfd        gold
    
    real                   10.224s      9.030s
    user                   11.664s      9.877s
    sys                    3.431s       2.878s
    
    real                   10.021s      9.165s
    user                   11.526s      9.990s
    sys                    3.061s       3.015s
    
    real                   10.233s      8.961s
    user                   11.657s      9.973s
    sys                    3.467s       2.202s
    
    real                   10.160s      9.086s
    user                   11.637s      9.950s
    sys                    3.188s       2.859s

diff --git a/README b/README
index 0548e6a..509b45f 100644
--- a/README
+++ b/README
@@ -108,6 +108,8 @@ REQUIREMENTS:
         libpython (optional)
         make, gcc, and similar tools
 
+        To sucessfully use --compat-libs, gcc >= 4.8 seems necessary.
+
         During runtime, you need the following additional
         dependencies:
 
diff --git a/configure.ac b/configure.ac
index 939ba6d..6c1ba7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,7 +175,8 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
         -Wl,--no-undefined \
         -Wl,--gc-sections \
         -Wl,-z,relro \
-        -Wl,-z,now])
+        -Wl,-z,now \
+        -Wl,-fuse-ld=gold])
 AC_SUBST([OUR_LDFLAGS], "$with_ldflags $address_sanitizer_ldflags")
 
 AC_CHECK_SIZEOF(pid_t)



More information about the systemd-commits mailing list