.
[kopensolaris-gnu/glibc.git] / hurd / Versions
index 5dcdc35..83c8ab1 100644 (file)
@@ -1,5 +1,9 @@
+%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,
@@ -7,6 +11,21 @@ libc {
     __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;
@@ -22,6 +41,8 @@ libc {
 
     # 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;
@@ -34,7 +55,10 @@ libc {
     _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;
@@ -80,7 +104,7 @@ libc {
     hurd_safe_memmove; hurd_safe_memset;
     hurd_sig_post;
     hurd_thread_cancel; hurd_thread_self;
-    hurd_unpreemt_signals;
+    hurd_unpreempt_signals;
 
     # o*
     openport;
@@ -114,4 +138,36 @@ libc {
     # 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
 }