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.
2000-03-30 19:26:35 +00:00
|
|
|
%define PIC
|
|
|
|
%include <shlib-compat.h>
|
|
|
|
|
1998-07-02 22:51:40 +00:00
|
|
|
libc {
|
|
|
|
GLIBC_2.0 {
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
1998-12-04 13:47:40 +00:00
|
|
|
# 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;
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
%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
|
1998-12-04 13:47:40 +00:00
|
|
|
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
# necessary for the Hurd brk implementation
|
|
|
|
_end;
|
|
|
|
|
|
|
|
# variables used in macros & inline functions
|
1998-07-02 22:51:40 +00:00
|
|
|
__hurd_sigthread_stack_base; __hurd_sigthread_stack_end;
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
__hurd_sigthread_variables;
|
|
|
|
__hurd_threadvar_max;
|
1998-07-02 22:51:40 +00:00
|
|
|
__hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
|
1998-10-24 01:36:01 +00:00
|
|
|
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
# functions used in macros & inline functions
|
|
|
|
__hurd_errno_location;
|
1998-06-02 12:58:14 +00:00
|
|
|
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
# functions used in libmachuser and libhurduser
|
1998-07-02 22:51:40 +00:00
|
|
|
_S_catch_exception_raise;
|
|
|
|
_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;
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
|
|
|
|
# "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;
|
1998-12-03 23:55:13 +00:00
|
|
|
getauth; getcrdir; getcwdir; getcttyid; getdport; getproc; getumask;
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
|
|
|
|
# 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;
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
hurd_unpreempt_signals;
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
|
|
|
|
# o*
|
|
|
|
openport;
|
|
|
|
|
|
|
|
# p*
|
|
|
|
pid2task;
|
|
|
|
|
|
|
|
# s*
|
1998-12-03 23:55:13 +00:00
|
|
|
setauth; setcrdir; setcwdir; setproc; setcttyid;
|
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
1998-11-30 18:45:57 +00:00
|
|
|
|
|
|
|
# t*
|
|
|
|
task2pid;
|
|
|
|
|
|
|
|
# v*
|
|
|
|
vpprintf;
|
1998-07-02 22:51:40 +00:00
|
|
|
}
|
1998-12-03 23:55:13 +00:00
|
|
|
GLIBC_2.1 {
|
1998-12-04 13:47:40 +00:00
|
|
|
# "quasi-internal" functions
|
|
|
|
_hurd_proc_init;
|
|
|
|
|
1998-12-03 23:55:13 +00:00
|
|
|
# g*
|
|
|
|
geteuids;
|
|
|
|
|
|
|
|
# s*
|
|
|
|
seteuids;
|
|
|
|
}
|
1999-11-13 23:52:38 +00:00
|
|
|
GLIBC_2.1.3 {
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
%if SHLIB_COMPAT (libc, GLIBC_2_1_3, HURD_CTHREADS_0_3)
|
1999-11-18 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurdsig_init): If __hurd_threadvar_stack_mask is
nonzero, use cthread_fork to create the signal thread.
* hurd/msgportdemux.c (_hurd_msgport_receive): Initialize
_hurd_msgport_thread here (to self).
* sysdeps/mach/hurd/fork.c (__fork): When __hurd_sigthread_stack_end
is zero, instead compute child signal thread's starting SP from parent
signal thread's current SP and the threadvar_stack variables.
* hurd/Versions (GLIBC_2.1.3): Add cthread_fork, cthread_detach.
These are now referenced weakly by _hurdsig_init.
* hurd/report-wait.c (_S_msg_report_wait): Fix typo:
&_hurd_itimer_thread not &_hurd_msgport_thread.
1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
without HURD_DPORT_USE to clean up warnings.
* hurd/dtable.c (get_dtable_port): Likewise.
* hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
(install_ctty): Do the changing of the cttyid port cell here, inside
the critical section while we holding the dtable lock.
(_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
the port cell and calling rectty_dtable.
(_hurd_locked_install_cttyid): New function, split out of install_ctty.
(install_ctty): Use it inside a critical section, with the lock held.
* sysdeps/mach/hurd/setsid.c (__setsid): Use
_hurd_locked_install_cttyid to effect the cttyid and dtable changes
after proc_setsid, having held the dtable lock throughout.
* hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
cttyid port for null and bail out early if so. The dtable lock
serializes us after any cttyid change and its associated dtable update.
1999-12-03 05:01:23 +00:00
|
|
|
# c*
|
|
|
|
cthread_fork; cthread_detach;
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
%endif
|
1999-11-18 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurdsig_init): If __hurd_threadvar_stack_mask is
nonzero, use cthread_fork to create the signal thread.
* hurd/msgportdemux.c (_hurd_msgport_receive): Initialize
_hurd_msgport_thread here (to self).
* sysdeps/mach/hurd/fork.c (__fork): When __hurd_sigthread_stack_end
is zero, instead compute child signal thread's starting SP from parent
signal thread's current SP and the threadvar_stack variables.
* hurd/Versions (GLIBC_2.1.3): Add cthread_fork, cthread_detach.
These are now referenced weakly by _hurdsig_init.
* hurd/report-wait.c (_S_msg_report_wait): Fix typo:
&_hurd_itimer_thread not &_hurd_msgport_thread.
1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
without HURD_DPORT_USE to clean up warnings.
* hurd/dtable.c (get_dtable_port): Likewise.
* hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
(install_ctty): Do the changing of the cttyid port cell here, inside
the critical section while we holding the dtable lock.
(_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
the port cell and calling rectty_dtable.
(_hurd_locked_install_cttyid): New function, split out of install_ctty.
(install_ctty): Use it inside a critical section, with the lock held.
* sysdeps/mach/hurd/setsid.c (__setsid): Use
_hurd_locked_install_cttyid to effect the cttyid and dtable changes
after proc_setsid, having held the dtable lock throughout.
* hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
cttyid port for null and bail out early if so. The dtable lock
serializes us after any cttyid change and its associated dtable update.
1999-12-03 05:01:23 +00:00
|
|
|
|
1999-11-13 23:52:38 +00:00
|
|
|
# d*
|
|
|
|
directory_name_split;
|
|
|
|
|
|
|
|
# h*
|
|
|
|
hurd_directory_name_split;
|
|
|
|
}
|
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.
2000-03-30 19:26:35 +00:00
|
|
|
|
|
|
|
%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
|
1998-07-02 22:51:40 +00:00
|
|
|
}
|