Fwd: CVS: cvs.openbsd.org: src

2016-05-07 Thread Philip Guenther
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

2015-04-06 Thread Philip Guenther
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@