mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
dc33bef307
This gets rid of a lot of kludge and gets closer to other ports. * hurd/Makefile (headers): Remove threadvar.h. (inline-headers): Remove threadvar.h. * hurd/Versions (GLIBC_2.0: Remove __hurd_sigthread_stack_base, __hurd_sigthread_stack_end, __hurd_sigthread_variables, __hurd_threadvar_max, __hurd_errno_location. (HURD_CTHREADS_0.3): Add pthread_getattr_np, pthread_attr_getstack. * hurd/hurd/signal.h: Do not include <hurd/threadvar.h>. (_hurd_self_sigstate): Use THREAD_SELF to get _hurd_sigstate. (_HURD_SIGNAL_H_EXTERN_INLINE): Use THREAD_SELF to get _hurd_sigstate, unless TLS is not initialized yet, in which case we do not need a critical section yet anyway. * hurd/hurd/threadvar.h: Include <tls.h>, do not include <machine-sp.h>. (__hurd_sigthread_variables, __hurd_threadvar_max): Remove variables declarations. (__hurd_threadvar_index): Remove enum. (_HURD_THREADVAR_H_EXTERN_INLINE): Remove macro. (__hurd_threadvar_location_from_sp,__hurd_threadvar_location): Remove inlines. (__hurd_reply_port0): New variable declaration. (__hurd_local_reply_port): New macro. * hurd/hurdsig.c (__hurd_sigthread_variables): Remove variable. (interrupted_reply_port_location): Add thread_t parameter. Use it with THREAD_TCB to access thread-local variables. (_hurdsig_abort_rpcs): Pass ss->thread to interrupted_reply_port_location. (_hurd_internal_post_signal): Likewise. (_hurdsig_init): Use presence of cthread_fork instead of __hurd_threadvar_stack_mask to start signal thread by hand. Remove signal thread threadvar initialization. * hurd/hurdstartup.c: Do not include <hurd/threadvar.h> * hurd/sigunwind.c: Include <hurd/threadvar.h> (_hurdsig_longjmp_from_handler): Use __hurd_local_reply_port instead of threadvar. * sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE): Add __libc_lock_self0. (ld.GLIBC_2.0): Remove __hurd_sigthread_stack_base, __hurd_sigthread_stack_end, __hurd_sigthread_variables. (ld.GLIBC_PRIVATE): Add __libc_lock_self0. * sysdeps/mach/hurd/cthreads.c: Add __libc_lock_self0. * sysdeps/mach/hurd/dl-sysdep.c (errno, __hurd_sigthread_stack_base, __hurd_sigthread_stack_end, __hurd_sigthread_variables, threadvars, __hurd_threadvar_stack_offset, __hurd_threadvar_stack_mask): Do not define variables. * sysdeps/mach/hurd/errno-loc.c: Do not include <errno.h> and <hurd/threadvar.h>. [IS_IN(rtld)] (rtld_errno): New variable. [IS_IN(rtld)] (__errno_location): New weak function. [!IS_IN(rtld)]: Include "../../../csu/errno-loc.c". * sysdeps/mach/hurd/errno.c: Remove file. * sysdeps/mach/hurd/fork.c: Include <hurd/threadvar.h> (__fork): Remove THREADVAR_SPACE macro and its use. * sysdeps/mach/hurd/i386/init-first.c (__hurd_threadvar_max): Remove variable. (init): Do not initialize threadvar. * sysdeps/mach/hurd/i386/libc.abilist (__hurd_threadvar_max): Remove symbol. * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use __hurd_local_reply_port instead of threadvar. * sysdeps/mach/hurd/i386/tls.h (tcbhead_t): Add reply_port and _hurd_sigstate fields. (HURD_DESC_TLS, __LIBC_NO_TLS, THREAD_TCB): New macro. * sysdeps/mach/hurd/i386/trampoline.c: Remove outdated comment. * sysdeps/mach/hurd/libc-lock.h: Do not include <hurd/threadvar.h>. (__libc_lock_owner_self): Use &__libc_lock_self0 and THREAD_SELF instead of threadvar. * sysdeps/mach/hurd/libc-tsd.h: Remove file. * sysdeps/mach/hurd/mig-reply.c (GETPORT, reply_port): Remove macros. (use_threadvar, global_reply_port): Remove variables. (__hurd_reply_port0): New variable. (__mig_get_reply_port): Use __hurd_local_reply_port and __hurd_reply_port0 instead of threadvar. (__mig_dealloc_reply_port): Likewise. (__mig_init): Do not initialize threadvar. * sysdeps/mach/hurd/profil.c: Fix comment.
153 lines
3.9 KiB
Plaintext
153 lines
3.9 KiB
Plaintext
libc {
|
|
GLIBC_2.0 {
|
|
# necessary for the Hurd brk implementation
|
|
_end;
|
|
|
|
# variables used in macros & inline functions
|
|
__hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
|
|
|
|
# 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;
|
|
_S_msg_get_env_variable; _S_msg_set_env_variable;
|
|
_S_msg_get_environment; _S_msg_set_environment;
|
|
_S_msg_get_fd; _S_msg_set_fd;
|
|
_S_msg_get_init_int; _S_msg_set_init_int;
|
|
_S_msg_get_init_ints; _S_msg_set_init_ints;
|
|
_S_msg_get_init_port; _S_msg_set_init_port;
|
|
_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;
|
|
_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;
|
|
}
|
|
GLIBC_2.26 {
|
|
# "quasi-internal" functions
|
|
_hurd_exec_paths;
|
|
}
|
|
GLIBC_2.27 {
|
|
# These always existed as inlines but the real functions were not exported.
|
|
_hurd_fd_error_signal; _hurd_fd_error;
|
|
__hurd_dfail; __hurd_sockfail;
|
|
_hurd_port_locked_set;
|
|
__hurd_threadvar_location_from_sp;
|
|
__hurd_threadvar_location;
|
|
_hurd_userlink_link; _hurd_userlink_unlink; _hurd_userlink_clear;
|
|
}
|
|
|
|
HURD_CTHREADS_0.3 {
|
|
# weak refs to libthreads functions that libc calls iff libthreads in use
|
|
cthread_fork; cthread_detach;
|
|
pthread_getattr_np; pthread_attr_getstack;
|
|
|
|
# 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;
|
|
}
|
|
}
|