From a822d2d11872c10925e7f2bfa65b27e30a9700a5 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 13 Apr 2007 14:08:16 +0000 Subject: kill off internal relocations for librc.so --- src/librc.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 src/librc.h (limited to 'src/librc.h') diff --git a/src/librc.h b/src/librc.h new file mode 100644 index 00000000..66d67776 --- /dev/null +++ b/src/librc.h @@ -0,0 +1,124 @@ +/* + * librc.h + * Internal header file to setup build env for files in librc.so + * Copyright 2007 Gentoo Foundation + * Released under the GPLv2 + */ + +#ifndef _LIBRC_H_ +#define _LIBRC_H_ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__NetBSD__) || defined (__OpenBSD__) +#include +#include +#include +#include +#endif + +#include "einfo.h" +#include "rc.h" +#include "rc-misc.h" +#include "strlist.h" + +/* internal alias trickery! we dont want internal relocs! */ +#if defined(__ELF__) && defined(__GNUC__) +# define __hidden_asmname(name) __hidden_asmname1 (__USER_LABEL_PREFIX__, name) +# define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name) +# define __hidden_asmname2(prefix, name) #prefix name +# define __hidden_proto(name, internal) \ + extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \ + __attribute__ ((visibility ("hidden"))); +# define __hidden_ver(local, internal, name) \ + extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \ + extern __typeof (name) __EI_##name __attribute__((alias (__hidden_asmname1 (,#local)))) +# define librc_hidden_proto(name) __hidden_proto(name, __RC_##name) +# define librc_hidden_def(name) __hidden_ver(__RC_##name, name, name); +#else +# define librc_hidden_proto(name) +# define librc_hidden_def(name) +#endif + +librc_hidden_proto(rc_allow_plug) +librc_hidden_proto(rc_config_env) +librc_hidden_proto(rc_exists) +librc_hidden_proto(rc_filter_env) +librc_hidden_proto(rc_find_pids) +librc_hidden_proto(rc_free_deptree) +librc_hidden_proto(rc_get_config) +librc_hidden_proto(rc_get_config_entry) +librc_hidden_proto(rc_get_depends) +librc_hidden_proto(rc_get_depinfo) +librc_hidden_proto(rc_get_deptype) +librc_hidden_proto(rc_get_list) +librc_hidden_proto(rc_get_runlevel) +librc_hidden_proto(rc_get_runlevels) +librc_hidden_proto(rc_get_service_option) +librc_hidden_proto(rc_is_dir) +librc_hidden_proto(rc_is_env) +librc_hidden_proto(rc_is_exec) +librc_hidden_proto(rc_is_file) +librc_hidden_proto(rc_is_link) +librc_hidden_proto(rc_load_deptree) +librc_hidden_proto(rc_ls_dir) +librc_hidden_proto(rc_mark_service) +librc_hidden_proto(rc_order_services) +librc_hidden_proto(rc_resolve_service) +librc_hidden_proto(rc_rm_dir) +librc_hidden_proto(rc_runlevel_exists) +librc_hidden_proto(rc_runlevel_starting) +librc_hidden_proto(rc_runlevel_stopping) +librc_hidden_proto(rc_schedule_clear) +librc_hidden_proto(rc_schedule_start_service) +librc_hidden_proto(rc_service_add) +librc_hidden_proto(rc_service_daemons_crashed) +librc_hidden_proto(rc_service_delete) +librc_hidden_proto(rc_service_exists) +librc_hidden_proto(rc_service_in_runlevel) +librc_hidden_proto(rc_services_in_runlevel) +librc_hidden_proto(rc_services_in_state) +librc_hidden_proto(rc_services_scheduled) +librc_hidden_proto(rc_services_scheduled_by) +librc_hidden_proto(rc_service_started_daemon) +librc_hidden_proto(rc_service_state) +librc_hidden_proto(rc_set_runlevel) +librc_hidden_proto(rc_set_service_daemon) +librc_hidden_proto(rc_set_service_option) +librc_hidden_proto(rc_start_service) +librc_hidden_proto(rc_stop_service) +librc_hidden_proto(rc_strcatpaths) +librc_hidden_proto(rc_strlist_add) +librc_hidden_proto(rc_strlist_addsort) +librc_hidden_proto(rc_strlist_addsortc) +librc_hidden_proto(rc_strlist_addsortu) +librc_hidden_proto(rc_strlist_delete) +librc_hidden_proto(rc_strlist_free) +librc_hidden_proto(rc_strlist_reverse) +librc_hidden_proto(rc_update_deptree) +librc_hidden_proto(rc_wait_service) +librc_hidden_proto(rc_xcalloc) +librc_hidden_proto(rc_xmalloc) +librc_hidden_proto(rc_xrealloc) +librc_hidden_proto(rc_xstrdup) + +#endif -- cgit v1.2.3