NetBSD/lib/libpthread
pooka 01d7ebdd80 Fix PTHREAD_FOO_INITIALIZER for C++ by not using volatile in the relevant
pthread types in C++ builds, attempt 2.

The problem with attempt 1 was making assumptions of what the MD
__cpu_simple_lock_t (declared volatile) looks like.  To get a same type
except non-volatile, we change the MD type to __cpu_simple_lock_nv_t
and typedef __cpu_simple_lock_t as a volatile __cpu_simple_lock_nv_t.
IMO, __cpu_simple_lock_t should not be volatile at all, but changing it
now is too risky.

Fixes at least Rumprun w/ gcc 5.1/5.2.  Furthermore, the mpd application
(and possibly others) will no longer require NetBSD-specific patches.

Tested: build.sh for i386, Rumprun for x86_64 w/ gcc 5.2.

Based on the patch from Christos in lib/49989.
2015-08-27 12:30:50 +00:00
..
arch Dummy ia64 support 2015-04-17 13:14:19 +00:00
Makefile Allow for arbitrary MI scheduler implementations. 2014-12-16 20:05:54 +00:00
README
TODO ld.elf_so is reentrant. 2012-02-03 21:11:17 +00:00
affinity.3 Do not xref to itself. 2011-12-05 10:27:40 +00:00
pthread.3
pthread.c Fix previous: Can't use calloc/malloc before we complete initialization 2015-05-29 16:05:13 +00:00
pthread.h add pthread_condattr_setclock(3) 2012-11-03 03:10:50 +00:00
pthread_attr.3 Each get function "has" a set counterpart, it doesn't "contain" it. 2012-11-10 23:12:36 +00:00
pthread_attr.c Separate pthread_t from thread stack. Drop additional alignment 2012-03-02 18:06:05 +00:00
pthread_attr_get_np.3
pthread_attr_getdetachstate.3
pthread_attr_getguardsize.3
pthread_attr_getinheritsched.3 s/inherited/inherit/ 2013-05-10 21:06:14 +00:00
pthread_attr_getname_np.3
pthread_attr_getschedparam.3
pthread_attr_getscope.3
pthread_attr_getstack.3
pthread_attr_setcreatesuspend_np.3
pthread_barrier.3
pthread_barrier.c
pthread_barrierattr.3
pthread_cancel.3 typo 2014-03-12 07:32:46 +00:00
pthread_cancelstub.c - Allow libpthread to be dlopened again, by providing libc stubs to libpthread. 2013-03-21 16:49:11 +00:00
pthread_cleanup_push.3
pthread_compat.c remove compatibility code for handling CLOCK_MONOTONIC and handle it in the 2014-01-31 20:44:01 +00:00
pthread_cond.3 Use 2012-11-12 23:11:05 +00:00
pthread_cond.c remove compatibility code for handling CLOCK_MONOTONIC and handle it in the 2014-01-31 20:44:01 +00:00
pthread_condattr.3 Fix pasto. 2012-11-03 09:20:36 +00:00
pthread_create.3
pthread_curcpu_np.3 Fix typo. 2011-11-10 16:44:47 +00:00
pthread_detach.3
pthread_equal.3
pthread_exit.3
pthread_getname_np.3
pthread_getspecific.3
pthread_int.h Fix previous: Can't use calloc/malloc before we complete initialization 2015-05-29 16:05:13 +00:00
pthread_join.3
pthread_key_create.3 Bump date for previous. 2015-05-29 18:00:51 +00:00
pthread_kill.3
pthread_lock.c
pthread_makelwp.h Allow for arbitrary MI scheduler implementations. 2014-12-16 20:05:54 +00:00
pthread_makelwp_netbsd.c include correct header for "last minute just-in-case defensive addition 2014-12-17 01:49:08 +00:00
pthread_misc.c - Allow libpthread to be dlopened again, by providing libc stubs to libpthread. 2013-03-21 16:49:11 +00:00
pthread_mutex.3 Use 2012-11-12 23:11:05 +00:00
pthread_mutex.c pthread__mutex_lock_slow: fix the handling of a potential race with the 2014-02-03 15:51:01 +00:00
pthread_mutexattr.3
pthread_once.3 Refer to init_routine in the DESCRIPTION section with .Fa instead of .Fn 2012-11-12 23:28:11 +00:00
pthread_once.c - Allow libpthread to be dlopened again, by providing libc stubs to libpthread. 2013-03-21 16:49:11 +00:00
pthread_queue.h
pthread_rwlock.3 Mark up (unsupported) PTHREAD_PROCESS_SHARED with .Dv macro. 2012-11-12 23:34:50 +00:00
pthread_rwlock.c - Allow libpthread to be dlopened again, by providing libc stubs to libpthread. 2013-03-21 16:49:11 +00:00
pthread_rwlockattr.3
pthread_schedparam.3
pthread_self.3
pthread_sigmask.3
pthread_specific.c - Allow libpthread to be dlopened again, by providing libc stubs to libpthread. 2013-03-21 16:49:11 +00:00
pthread_spin.3
pthread_spin.c Add a pthread__smt_wake and add support for it on arm along with 2012-08-16 04:49:47 +00:00
pthread_suspend_np.3
pthread_testcancel.3 Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
pthread_tsd.c Revert 1.14 now that the arduous task of fixing rumphijack to allow 2015-08-25 13:46:23 +00:00
pthread_types.h Fix PTHREAD_FOO_INITIALIZER for C++ by not using volatile in the relevant 2015-08-27 12:30:50 +00:00
res_state.c
sem.c Fix error handling 2012-03-10 18:01:10 +00:00
shlib_version bump for pthread_cond_setclock 2013-04-03 15:45:21 +00:00

README

$NetBSD: README,v 1.6 2009/04/16 18:37:30 wiz Exp $

When making changes to libpthread, please ensure that libpthread_dbg
still compiles.

Due to limitations in the current pthread implementation, makecontext(3)
and sigaltstack(2) should not be used in programs which link against
libpthread (whether threads are used or not). This has been noted in the
makecontext(3), sigaltstack(2), and pthread(3) man pages.