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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2014-01-25 18:10:08 -05:00
parent 242465b5bf
commit 53e856e16a
7 changed files with 66 additions and 11 deletions
+1
View File
@@ -0,0 +1 @@
/libsystemd-login.pc
+18
View File
@@ -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}
+87
View File
@@ -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;
+34
View File
@@ -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 ".")