CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2016/05/07 13:05:24
Modified files:
include : Makefile tib.h
sys/arch/powerpc/include: tcb.h
lib/libc : Makefile.inc Symbols.list shlib_version
lib/libc/arch/alpha: Makefile.inc
lib/libc/arch/alpha/sys: Ovfork.S cerror.S sigsuspend.S
lib/libc/arch/amd64: SYS.h
lib/libc/arch/amd64/sys: Ovfork.S brk.S sbrk.S sigprocmask.S
sigsuspend.S syscall.S tfork_thread.S
lib/libc/arch/arm: Makefile.inc SYS.h
lib/libc/arch/arm/sys: Ovfork.S cerror.S sigsuspend.S
lib/libc/arch/hppa: SYS.h
lib/libc/arch/hppa/sys: Ovfork.S sigsuspend.S
lib/libc/arch/hppa64: SYS.h
lib/libc/arch/hppa64/sys: Ovfork.S sigsuspend.S
lib/libc/arch/i386: SYS.h
lib/libc/arch/i386/sys: Ovfork.S brk.S sbrk.S sigprocmask.S
sigsuspend.S syscall.S tfork_thread.S
lib/libc/arch/m88k: Makefile.inc
lib/libc/arch/m88k/sys: Ovfork.S cerror.S sigsuspend.S
lib/libc/arch/mips64: Makefile.inc SYS.h
lib/libc/arch/mips64/sys: Ovfork.S cerror.S sigsuspend.S
lib/libc/arch/powerpc: Makefile.inc SYS.h
lib/libc/arch/powerpc/sys: Ovfork.S brk.S cerror.S sbrk.S
sigprocmask.S sigsuspend.S
tfork_thread.S
lib/libc/arch/sh: Makefile.inc SYS.h
lib/libc/arch/sh/sys: Ovfork.S cerror.S sigsuspend.S
lib/libc/arch/sparc: SYS.h
lib/libc/arch/sparc/sys: Ovfork.S sigsuspend.S
lib/libc/arch/sparc64: SYS.h
lib/libc/arch/sparc64/sys: Ovfork.S sigsuspend.S
lib/libc/dlfcn : Makefile.inc init.c
lib/libc/gen : errno.c getcwd.c
lib/libc/hidden: errno.h fcntl.h signal.h stdio.h time.h
unistd.h
lib/libc/hidden/sys: mman.h socket.h wait.h
lib/libc/include: namespace.h thread_private.h
lib/libc/stdio : flockfile.c local.h
lib/libc/sys : Makefile.inc pread.c preadv.c pwrite.c
pwritev.c w_fork.c
lib/libc/termios: tcdrain.c
lib/libc/thread: Makefile.inc
lib/librthread : Makefile rthread.c rthread.h rthread_attr.c
rthread_file.c rthread_fork.c
rthread_getcpuclockid.c rthread_libc.c
rthread_np.c rthread_sem.c rthread_sig.c
rthread_sync.c shlib_version
libexec/ld.so : Makefile Symbols.map library.c library_mquery.c
loader.c resolve.h
libexec/ld.so/alpha: ldasm.S syscall.h
libexec/ld.so/amd64: ldasm.S syscall.h
libexec/ld.so/arm: ldasm.S syscall.h
libexec/ld.so/hppa: ldasm.S syscall.h
libexec/ld.so/i386: ldasm.S syscall.h
libexec/ld.so/m88k: ldasm.S syscall.h
libexec/ld.so/mips64: ldasm.S syscall.h
libexec/ld.so/powerpc: ldasm.S syscall.h
libexec/ld.so/sh: ldasm.S syscall.h
libexec/ld.so/sparc: ldasm.S syscall.h
libexec/ld.so/sparc64: ldasm.S syscall.h
distrib/sets/lists/base: md.alpha md.amd64 md.armish md.armv7
md.hppa md.hppa64 md.i386 md.landisk
md.loongson md.luna88k md.macppc
md.octeon md.sgi md.socppc md.sparc
md.sparc64 md.zaurus mi
distrib/sets/lists/comp: mi
distrib/special/libstubs: Makefile
Added files:
lib/libc/dlfcn : tib.c
lib/libc/hidden: poll.h tib.h
lib/libc/hidden/sys: msg.h select.h uio.h
lib/libc/include: cancel.h
lib/libc/sys : canceled.c w_accept.c w_accept4.c w_close.c
w_closefrom.c w_connect.c w_fcntl.c w_fsync.c
w_msgrcv.c w_msgsnd.c w_msync.c w_nanosleep.c
w_open.c w_openat.c w_poll.c w_ppoll.c
w_pread.c w_preadv.c w_pselect.c w_pwrite.c
w_pwritev.c w_read.c w_readv.c w_recvfrom.c
w_recvmsg.c w_select.c w_sendmsg.c w_sendto.c
w_sigsuspend.c w_vfork.c w_wait4.c w_write.c
w_writev.c
lib/libc/thread: callbacks.c
lib/librthread : Symbols.map rthread_cb.h
libexec/ld.so : tib.c
Removed files:
lib/libc/arch/alpha/sys: fork.S
lib/libc/arch/amd64/sys: cerror.S fork.S
lib/libc/arch/arm/sys: fork.S
lib/libc/arch/hppa/sys: cerror.S fork.S
lib/libc/arch/hppa64/sys: cerror.S fork.S
lib/libc/arch/i386/sys: cerror.S fork.S
lib/libc/arch/m88k/sys: fork.S
lib/libc/arch/mips64/sys: fork.S
lib/libc/arch/powerpc/sys: fork.S
lib/libc/arch/sh/sys: fork.S
lib/libc/arch/sparc/sys: cerror.S fork.S
lib/libc/arch/sparc64/sys: cerror.S fork.S
lib/libc/thread: unithread_malloc_lock.c unithread_mutex.c
unithread_tag.c
lib/librthread : rthread_cancel.c tcb.h
lib/librthread/arch/alpha: cerror.S
lib/librthread/arch/amd64: cerror.S
lib/librthread/arch/arm: cerror.S
lib/librthread/arch/hppa: cerror.S
lib/librthread/arch/hppa64: cerror.S
lib/librthread/arch/i386: cerror.S
lib/librthread/arch/m88k: cerror.S
lib/librthread/arch/mips64: cerror.S
lib/librthread/arch/powerpc: cerror.S
lib/librthread/arch/sh: cerror.S
lib/librthread/arch/sparc: cerror.S
lib/librthread/arch/sparc64: cerror.S
Log message:
Use a Thread Information Block in both single and multi-threaded programs.
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a. This is an ABI break from 5.9-stable!
Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes. 'errno' *must* be declared via
<errno.h> now!
Clean up libpthread's symbol exports like libc.
On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.
Testing by various, particularly sthen@ and patrick@
ok kettenis@