CVSROOT: /cvs Module name: src Changes by: guent...@cvs.openbsd.org 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@