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.
This commit is contained in:
Roland McGrath 2000-03-30 19:26:35 +00:00
parent 841288ec53
commit 693ef46bb1
4 changed files with 53 additions and 9 deletions

View File

@ -9,6 +9,9 @@ libc {
GLIBC_2.1.3
GLIBC_2.1.4
GLIBC_2.2
%ifdef USE_IN_LIBIO
HURD_CTHREADS_0.3
%endif
}
libcrypt {
GLIBC_2.0

View File

@ -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
}

View File

@ -1,9 +1,14 @@
%define PIC
%include <shlib-compat.h>
libc {
GLIBC_2.0 {
%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
# This symbol is here only for binary compatibility with the
# pre-versioning libc.so.0.2 ABI. When the soname changes,
# it can be removed.
__vm_allocate;
%endif
# variables used in Mach-specific macros
__mach_task_self_;
@ -11,10 +16,12 @@ libc {
# functions used in inline functions and macros
__mach_port_deallocate; __mach_thread_self;
%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
__mutex_init; __mutex_lock; __mutex_lock_solid; __mutex_trylock;
__mutex_unlock; __mutex_unlock_solid;
__spin_lock; __spin_lock_init; __spin_lock_solid; __spin_try_lock;
__spin_unlock;
%endif
# functions used by RPC stubs
__mach_msg;
@ -55,4 +62,13 @@ libc {
task_create; task_set_special_port; task_suspend; task_terminate;
thread_depress_abort; thread_switch;
}
%if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
HURD_CTHREADS_0.3 {
__mutex_init; __mutex_lock; __mutex_lock_solid; __mutex_trylock;
__mutex_unlock; __mutex_unlock_solid;
__spin_lock; __spin_lock_init; __spin_lock_solid; __spin_try_lock;
__spin_unlock;
}
%endif
}

View File

@ -1,12 +1,5 @@
libc {
GLIBC_2.0 {
# 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;
# functions with a weak definition in the dynamic linker
__getcwd; __mmap;
}