aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--src/Makefile14
-rw-r--r--src/einfo.map35
-rw-r--r--src/rc.map73
4 files changed, 119 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a3de9966..25bc21bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
03 Oct 2007; Roy Marples <uberlord@gentoo.org>:
+ librc.so and libeinfo.so now have symbol versions.
Default to tunctl so we can create the device as a specific
user, #194588 thanks to Jaco Kroon.
diff --git a/src/Makefile b/src/Makefile
index 2c246381..cab62f69 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -108,14 +108,20 @@ all: .depend $(TARGET)
$(LIBEINFOOBJS):
$(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c $<
-$(LIBEINFOSO): $(LIBEINFOOBJS)
- $(CC) $(LDFLAGS) -fPIC -shared -Wl,-soname,$(LIBEINFOSO) -o $(LIBEINFOSO) $(LIBEINFOOBJS) $(LDLIBS) $(LDLIBS_LIBEINFO)
+$(LIBEINFOSO): einfo.map $(LIBEINFOOBJS)
+ $(CC) $(LDFLAGS) -fPIC -shared \
+ -Wl,-soname,$(LIBEINFOSO) \
+ -Wl,-version-script einfo.map \
+ -o $(LIBEINFOSO) $(LIBEINFOOBJS) $(LDLIBS) $(LDLIBS_LIBEINFO)
ln -sf $(LIBEINFOSO) libeinfo.so
$(LIBRCOBJS):
$(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c $<
-$(LIBRCSO): $(LIBRCOBJS)
- $(CC) $(LDFLAGS) -fPIC -shared -Wl,-soname,$(LIBRCSO) -o $(LIBRCSO) $(LIBRCOBJS) $(LDLIBS) $(LDLIBS_LIBRC)
+$(LIBRCSO): rc.map $(LIBRCOBJS)
+ $(CC) $(LDFLAGS) -fPIC -shared \
+ -Wl,-soname,$(LIBRCSO) \
+ -Wl,-version-script rc.map \
+ -o $(LIBRCSO) $(LIBRCOBJS) $(LDLIBS) $(LDLIBS_LIBRC)
ln -sf $(LIBRCSO) librc.so
$(RCOBJS):
diff --git a/src/einfo.map b/src/einfo.map
new file mode 100644
index 00000000..428a8954
--- /dev/null
+++ b/src/einfo.map
@@ -0,0 +1,35 @@
+EINFO_1.0 {
+global:
+ ecolor;
+ elog;
+ einfon;
+ ewarnn;
+ eerrorn;
+ einfo;
+ ewarn;
+ ewarnx;
+ eerror;
+ eerrorx;
+ einfovn;
+ ewarnvn;
+ ebeginvn;
+ eendvn;
+ ewendvn;
+ einfov;
+ ewarnv;
+ ebeginv;
+ ebegin;
+ eend;
+ ewend;
+ ebracket;
+ eendv;
+ ewendv;
+ eindent;
+ eoutdent;
+ eindentv;
+ eoutdentv;
+ eprefix;
+
+local:
+ *;
+};
diff --git a/src/rc.map b/src/rc.map
new file mode 100644
index 00000000..633714ea
--- /dev/null
+++ b/src/rc.map
@@ -0,0 +1,73 @@
+RC_1.0 {
+global:
+ rc_config_list;
+ rc_config_load;
+ rc_config_value;
+ rc_deptree_depends;
+ rc_deptree_depinfo;
+ rc_deptree_deptype;
+ rc_deptree_free;
+ rc_deptree_load;
+ rc_deptree_order_services;
+ rc_deptree_update;
+ rc_deptree_update_needed;
+ rc_env_bool;
+ rc_env_config;
+ rc_env_filter;
+ rc_environ_fd;
+ rc_exists;
+ rc_find_pids;
+ rc_is_dir;
+ rc_is_exec;
+ rc_is_file;
+ rc_is_link;
+ rc_ls_dir;
+ rc_rm_dir;
+ rc_runlevel_exists;
+ rc_runlevel_get;
+ rc_runlevel_list;
+ rc_runlevel_set;
+ rc_runlevel_starting;
+ rc_runlevel_stopping;
+ rc_service_add;
+ rc_service_daemons_crashed;
+ rc_service_daemon_set;
+ rc_service_delete;
+ rc_service_description;
+ rc_service_exists;
+ rc_service_in_runlevel;
+ rc_service_mark;
+ rc_service_options;
+ rc_service_plugable;
+ rc_service_resolve;
+ rc_service_schedule_clear;
+ rc_service_schedule_start;
+ rc_service_start;
+ rc_service_stop;
+ rc_service_wait;
+ rc_services_in_runlevel;
+ rc_services_in_state;
+ rc_services_scheduled;
+ rc_services_scheduled_by;
+ rc_service_started_daemon;
+ rc_service_state;
+ rc_service_value_get;
+ rc_service_value_set;
+ rc_strcatpaths;
+ rc_strlist_add;
+ rc_strlist_addu;
+ rc_strlist_addsort;
+ rc_strlist_addsortc;
+ rc_strlist_addsortu;
+ rc_strlist_delete;
+ rc_strlist_free;
+ rc_strlist_join;
+ rc_strlist_reverse;
+ rc_waitpid;
+ rc_xmalloc;
+ rc_xrealloc;
+ rc_xstrdup;
+
+local:
+ *;
+};