summary refs log tree commit diff
path: root/hurd
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2000-03-30 19:26:35 +0000
committerRoland McGrath <roland@gnu.org>2000-03-30 19:26:35 +0000
commit693ef46bb12bd665f0eea874dde42fc433b41f44 (patch)
treecb14d5110db6c28fe447eefd6419017653b26fc9 /hurd
parent841288ec5363f5bcb68b18d9f0707e8ed4c1501f (diff)
downloadglibc-693ef46bb12bd665f0eea874dde42fc433b41f44.tar.gz
glibc-693ef46bb12bd665f0eea874dde42fc433b41f44.tar.xz
glibc-693ef46bb12bd665f0eea874dde42fc433b41f44.zip
2000-03-30 Roland McGrath <roland@baalperazim.frob.com>
	* mach/Versions (libc: GLIBC_2.0)
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)]: Conditionalize
	__vm_allocate on this.
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)]: Conditionalize
	mutex- and spinlock-related symbols on this.
	[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
	New version set.  Lock-related symbols go here instead in this case.
	* sysdeps/mach/hurd/Versions (libc: GLIBC_2.0): Remove
	_cthread_exit_routine, _cthread_init_routine, cthread_keycreate,
	cthread_getspecific, cthread_setspecific, __libc_getspecific.
	* hurd/Versions
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: GLIBC_2.0):
	Put them here instead.
	[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
	New version set.  Those cthreads symbols go here instead in this case.
	* Versions.def (libc) [USE_IN_LIBIO]: Add HURD_CTHREADS_0.3 version.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/Versions34
1 files changed, 33 insertions, 1 deletions
diff --git a/hurd/Versions b/hurd/Versions
index a81bc551b2..6166e99b2b 100644
--- a/hurd/Versions
+++ b/hurd/Versions
@@ -1,5 +1,9 @@
+%define PIC
+%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,18 @@ 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;
+%endif
 
     # necessary for the Hurd brk implementation
     _end;
@@ -80,7 +96,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;
@@ -108,8 +124,10 @@ libc {
     seteuids;
   }
   GLIBC_2.1.3 {
+%if SHLIB_COMPAT (libc, GLIBC_2_1_3, HURD_CTHREADS_0_3)
     # c*
     cthread_fork; cthread_detach;
+%endif
 
     # d*
     directory_name_split;
@@ -117,4 +135,18 @@ libc {
     # h*
     hurd_directory_name_split;
   }
+
+%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
 }