Merge glibc-ports into ports/ directory.
[platform/upstream/glibc.git] / hurd / Versions
index 46e9279..83c8ab1 100644 (file)
@@ -1,51 +1,48 @@
+%define SHARED
+%include <shlib-compat.h>
+
 libc {
   GLIBC_2.0 {
-    # Hurd-specific variables
-    __hurd_sigthread_stack_base; __hurd_sigthread_stack_end;
-    __hurd_sigthread_variables; __hurd_threadvar_max;
-    __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
-    _hurd_device_master; _hurd_host_priv;
-
-    # Hurd-specific exported functions from <hurd.h>
-    _hurd_ports; _hurd_ports_use;
-    getcrdir; getcwdir; getauth; getproc; getcttyid;
-    setcrdir; setcwdir; setauth; setproc; setcttyid;
-    file_name_split; file_name_lookup; file_name_lookup_under;
-    file_name_path_lookup;
-    openport; fopenport; task2pid; pid2task; getdport; vpprintf;
-    hurd_thread_self; hurd_thread_cancel; hurd_check_cancel;
-    hurd_safe_memset;
-    _hurd_init; _hurd_proc_init;
-    _hurd_exec;
-    _hurd_canonicalize_directory_name_internal;
-    geteuids; seteuids;
+%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,
+    # these can be removed.
+    __getuids;
+    __hurd_file_name_lookup;
+    _hurd_proc_init; _hurd_umask;
+%endif
 
-    # XXX ought to exist on all platforms
-    getumask;
+    # 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;
 
-    # <hurd/lookup.h>
-    hurd_file_name_lookup; __hurd_file_name_lookup;
-    hurd_file_name_lookup_retry; __hurd_file_name_lookup_retry;
-    hurd_file_name_split; __hurd_file_name_split;
-    hurd_file_name_path_lookup; __hurd_file_name_path_lookup;
+    # cthreads functions with stubs in libc
+    cthread_keycreate; cthread_getspecific; cthread_setspecific;
+    __libc_getspecific;
 
-    # <hurd/signal.h>
-    _hurd_thread_sigstate; _hurd_msgport;
-    _hurd_exception2signal;
-    hurd_sig_post;
+    # weak refs to libthreads functions that libc calls iff libthreads in use
+    cthread_fork; cthread_detach;
+%endif
 
-    # <hurd/sigpreempt.h>
-    hurd_catch_signal;
-    hurd_preempt_signals;
+    # necessary for the Hurd brk implementation
+    _end;
 
-    # <hurd/port.h>
-    _hurd_port_cleanup;
+    # variables used in macros & inline functions
+    __hurd_sigthread_stack_base; __hurd_sigthread_stack_end;
+    __hurd_sigthread_variables;
+    __hurd_threadvar_max;
+    __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
 
-    # <hurd/fd.h>
-    _hurd_dtable; _hurd_dtablesize; _hurd_dtable_lock; _hurd_intern_fd;
+    # functions used in macros & inline functions
+    __hurd_errno_location;
 
-    # Internal functions referenced by libmachuser and libhurduser.
+    # 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;
@@ -58,6 +55,119 @@ 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;
+    _hurd_dtable; _hurd_dtablesize; _hurd_dtable_lock;
+    _hurd_host_priv;
+    _hurd_msgport;
+    _hurd_ports;
+
+    # "quasi-internal" functions
+    _hurd_canonicalize_directory_name_internal;
+    _hurd_critical_section_lock;
+    _hurd_critical_section_unlock;
+    _hurd_exception2signal;
+    _hurd_exec;
+    _hurd_fd_get;
+    _hurd_init;
+    _hurd_intern_fd;
+    _hurd_port_cleanup;
+    _hurd_port_free;
+    _hurd_port_get;
+    _hurd_port_locked_get;
+    _hurd_ports_use;
+    _hurd_thread_sigstate;
+
+    # functions in normal name space
+
+    # f*
+    file_name_lookup; file_name_lookup_under; file_name_path_lookup;
+    file_name_split;
+    fopenport;
+
+    # g*
+    get_privileged_ports;
+    getauth; getcrdir; getcwdir; getcttyid; getdport; getproc; getumask;
+
+    # h*
+    hurd_catch_signal;
+    hurd_check_cancel;
+    hurd_file_name_lookup; hurd_file_name_lookup_retry;
+    hurd_file_name_path_lookup; hurd_file_name_split;
+    hurd_preempt_signals;
+    hurd_safe_copyin; hurd_safe_copyout;
+    hurd_safe_memmove; hurd_safe_memset;
+    hurd_sig_post;
+    hurd_thread_cancel; hurd_thread_self;
+    hurd_unpreempt_signals;
+
+    # o*
+    openport;
+
+    # p*
+    pid2task;
+
+    # s*
+    setauth; setcrdir; setcwdir; setproc; setcttyid;
+
+    # t*
+    task2pid;
+
+    # v*
+    vpprintf;
+  }
+  GLIBC_2.1 {
+    # "quasi-internal" functions
+    _hurd_proc_init;
+
+    # g*
+    geteuids;
+
+    # 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
 }