Fwd: CVS: cvs.openbsd.org: src
For those who don't following source-changes but build -current from source... I just committed a major ABI change; threaded binaries from before late-March will no longer work and you need to follow the instructions I just committed to the FAQ's "following -current" page! This is probably a good time to wait for a snapshot and install that. That'll give ports builds a chance to catch up too. :-) Philip Guenther -- Forwarded message -- From: Philip Guenther Date: Sat, May 7, 2016 at 12:05 PM Subject: CVS: cvs.openbsd.org: src To: source-chan...@openbsd.org CVSROOT:/cvs Module name:src Changes by: guent...@cvs.openbsd.org2016/05/07 13:05:24 Modified files: 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 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@
Fwd: CVS: cvs.openbsd.org: src
A heads up on this commit: if you're following -current and using any perl modules that pull in threaded libraries from packages, such as mysql/mariadb integration via DBD::mysql, then you may want to wait the day or so until the ports package builds have caught up with the change. The perl in base built against libpthread.19.0 cannot load the mysql.so shared object linked against libpthread.18.1 Philip Guenther -- Forwarded message -- From: Philip Guenther Date: Mon, Apr 6, 2015 at 6:27 PM Subject: CVS: cvs.openbsd.org: src To: source-chan...@cvs.openbsd.org CVSROOT:/cvs Module name:src Changes by: guent...@cvs.openbsd.org2015/04/06 19:27:07 Modified files: lib/csu: crtbegin.c crtbeginS.c lib/libc : shlib_version lib/libc/arch/alpha: SYS.h lib/libc/arch/alpha/sys: fork.S lib/libc/arch/amd64: SYS.h lib/libc/arch/amd64/sys: fork.S lib/libc/arch/arm: SYS.h lib/libc/arch/arm/sys: fork.S lib/libc/arch/hppa: SYS.h lib/libc/arch/hppa/sys: fork.S lib/libc/arch/hppa64: SYS.h lib/libc/arch/hppa64/sys: fork.S lib/libc/arch/i386: SYS.h lib/libc/arch/i386/sys: fork.S lib/libc/arch/m88k: SYS.h lib/libc/arch/m88k/sys: fork.S lib/libc/arch/mips64: SYS.h lib/libc/arch/mips64/sys: fork.S lib/libc/arch/powerpc: SYS.h lib/libc/arch/powerpc/sys: fork.S lib/libc/arch/sh: SYS.h lib/libc/arch/sh/sys: fork.S lib/libc/arch/sparc: SYS.h lib/libc/arch/sparc/sys: fork.S lib/libc/arch/sparc64: SYS.h lib/libc/arch/sparc64/sys: fork.S lib/libc/arch/vax: SYS.h lib/libc/arch/vax/sys: fork.S lib/libc/include: thread_private.h lib/libc/stdlib: atexit.c lib/libc/sys : Makefile.inc lib/libc/thread: Makefile.inc unithread_malloc_lock.c lib/librthread : rthread.c rthread_fork.c rthread_libc.c shlib_version regress/lib/csu/callbacks: Makefile regress/lib/csu/callbacks/pthread_atfork: Makefile pthread_atfork_test.c Added files: lib/libc/include: atfork.h lib/libc/sys : w_fork.c lib/libc/thread: atfork.c regress/lib/csu/callbacks/pthread_atfork: expected_child.out expected_parent.out Log message: Make pthread_atfork() track the DSO that called it like atexit() does, unregistering callbacks if the DSO is unloaded. Move the callback handling from libpthread to libc, though libpthread still overrides the inner call to handle locking and thread-library reinitialization. Major version bump for both libc and libpthread. verification that this fixes various ports ajacoutot@ asm assistance miod@; ok millert@ deraadt@