+%define SHARED
+%include <shlib-compat.h>
+
libc {
GLIBC_2.0 {
+%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
# These few symbols are here only for binary compatibility
# with the pre-versioning libc.so.0.2 ABI. Their replacements
# are in the GLIBC_2.1 version set. When the soname changes,
__getuids;
__hurd_file_name_lookup;
_hurd_proc_init; _hurd_umask;
+%endif
+
+ # These go into a different version set if GLIBC_2.0 compatibility
+ # is not required. See below.
+%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+ # variables used for detecting cthreads
+ _cthread_exit_routine; _cthread_init_routine;
+
+ # cthreads functions with stubs in libc
+ cthread_keycreate; cthread_getspecific; cthread_setspecific;
+ __libc_getspecific;
+
+ # weak refs to libthreads functions that libc calls iff libthreads in use
+ cthread_fork; cthread_detach;
+%endif
# necessary for the Hurd brk implementation
_end;
# functions used in libmachuser and libhurduser
_S_catch_exception_raise;
+ _S_catch_exception_raise_state;
+ _S_catch_exception_raise_state_identity;
_S_msg_add_auth; _S_msg_del_auth;
_S_msg_describe_ports;
_S_msg_get_dtable; _S_msg_set_dtable;
_S_msg_get_init_ports; _S_msg_set_init_ports;
_S_msg_proc_newids; _S_msg_report_wait;
_S_msg_sig_post; _S_msg_sig_post_untraced;
- _hurd_intr_rpc_mach_msg; _hurdsig_fault_catch_exception_raise;
+ _hurd_intr_rpc_mach_msg;
+ _hurdsig_fault_catch_exception_raise;
+ _hurdsig_fault_catch_exception_raise_state;
+ _hurdsig_fault_catch_exception_raise_state_identity;
# "quasi-internal" variables
_hurd_device_master;
hurd_safe_memmove; hurd_safe_memset;
hurd_sig_post;
hurd_thread_cancel; hurd_thread_self;
- hurd_unpreemt_signals;
+ hurd_unpreempt_signals;
# o*
openport;
# s*
seteuids;
}
+ GLIBC_2.1.3 {
+ # d*
+ directory_name_split;
+
+ # h*
+ hurd_directory_name_split;
+ }
+ GLIBC_2.2.5 {
+ # These always existed as inlines but the real functions were not exported.
+ __hurd_fail;
+ _hurd_self_sigstate;
+
+ # Same for these "quasi-internal" functions
+ _hurd_port_init;
+ _hurd_port_set;
+
+ # internal symbols used by other libraries (e.g. librt)
+ _hurd_raise_signal;
+ _hurdsig_interrupt_timeout;
+ _hurdsig_fault_preemptor; _hurdsig_fault_env;
+ }
+ GLIBC_2.2.6 {
+ # functions used in macros & inline functions
+ __errno_location;
+ }
+
+%if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+ HURD_CTHREADS_0.3 {
+ # weak refs to libthreads functions that libc calls iff libthreads in use
+ cthread_fork; cthread_detach;
+
+ # variables used for detecting cthreads
+ _cthread_exit_routine; _cthread_init_routine;
+
+ # cthreads functions with stubs in libc
+ cthread_keycreate; cthread_getspecific; cthread_setspecific;
+ __libc_getspecific;
+ }
+%endif
}