summaryrefslogtreecommitdiff
path: root/hurd/Versions
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/Versions')
-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
}