Home | History | Annotate | Download | only in libpthread
History log of /src/lib/libpthread/shlib_version
RevisionDateAuthorComments
 1.26  05-May-2026  yamt libpthread: explain why pthread__allqueue has been kept

a bit history:

- libpthread_dbg has been removed from base in 2017.

- pkgsrc/devel/libpthread_dbg has been removed from pkgsrc in 2020.
the commit message of the removal was calling it "Legacy library out
of sync with NetBSD libpthread and without any users".
 1.25  01-May-2026  wiz libpthread: add pthread_main_np(3)

Bump minor version of the shared library.

As proposed on current-users.
 1.24  29-Nov-2025  riastradh libpthread: Touch comment in shlib_version for recent LDADD.

This provokes relinking libpthread.so with the new arguments, without
needing manual intervention to follow a note in UPDATING.

PR lib/59784: dlopening and dlclosing libpthread is broken
 1.23  27-Oct-2025  christos revert previous; needs more discussion/testing.
 1.22  26-Oct-2025  christos Make pthread_setname_np variadic for compatibility with FreeBSD and GLIBC.
Bump.
 1.21  19-Oct-2025  riastradh libc, libpthread: Bump for pthread stub additions.

New symbols were added a couple weeks ago but I forgot to bump the
shlib minors.

PR lib/59685: libcrypto should not depend on libpthread
 1.20  31-Mar-2025  riastradh branches: 1.20.2;
libpthread(3): Add missing cancellation points.

- accept4
- tcdrain

XXX Should our nonstandard alias paccept(2) also be a cancellation
point?

PR lib/59240: POSIX.1-2024: cancellation point audit
 1.19  24-Apr-2019  kamil branches: 1.19.2; 1.19.10; 1.19.12;
Bump the libpthread(3) minor number to 4

Added C11 Threading library support.
 1.18  09-Sep-2018  maya Add a todo item for a future major bump (rename many symbols)
 1.17  23-Apr-2016  christos branches: 1.17.14; 1.17.16;
bump
 1.16  03-Apr-2013  christos bump for pthread_cond_setclock
 1.15  08-Mar-2012  joerg branches: 1.15.2;
Implement sem_timedwait.
 1.14  11-Jan-2009  christos branches: 1.14.8; 1.14.10;
merge christos-time_t
 1.13  28-Dec-2008  ad branches: 1.13.2;
Some things to do on major bump.
 1.12  24-Dec-2007  ad - Fix pthread_rwlock_trywrlock() which was broken.

- Add new functions: pthread_mutex_held_np, mutex_owner_np, rwlock_held_np,
rwlock_wrheld_np, rwlock_rdheld_np. These match the kernel's locking
primitives and can be used when porting kernel code to userspace.

- Always create LWPs detached. Do join/exit sync mostly in userland. When
looped on a dual core box this seems ~30% quicker than using lwp_wait().
Reduce number of lock acquire/release ops during thread exit.
 1.11  27-Nov-2007  ad Bump libc/libpthread minor for thr_curcpu()/pthread_curcpu_np().
 1.10  13-Nov-2007  ad Crank libpthread to 0.8. It now uses _lwp_ctl(), and it's handy to keep
0.7 hanging around for old kernels.
 1.9  09-Feb-2007  ad branches: 1.9.6;
Bump libpthread & libpthread_dbg minor versions so that an old SA copy
gets kept in the file system. Requested by pavel.
 1.8  18-Mar-2005  kleink Interpose cancellation points in pollts() and pselect(), bringing us
to libc.so.12.127 and libpthread.so.0.6.
 1.7  21-May-2004  christos branches: 1.7.2;
bump the version of this too.
 1.6  02-Jan-2004  cl - libc.so.12.109 and libpthread.so.0.4
- add ssize_t stackinfo_offset argument to sa_register syscall
- remove sa_unblockyield syscall
- make __sigprocmask14 syscall weak
- in pthread__sa_start: catch up with 4-argument sa_register syscall
 1.5  18-Nov-2003  thorpej Bump libc to 12.107 and libpthread to 0.3 for fsync_range(2).
 1.4  26-Feb-2003  thorpej Add support for naming a thread, using an API compatible with Tru64 Unix:
* pthread_attr_getname_np()
* pthread_attr_setname_np()
* pthread_getname_np()
* pthread_setname_np()

In addition to being query'able by the application (for log messages, etc.),
it is intended that these names can show up in the debugger.

Reviewed by nathanw.
 1.3  20-Jan-2003  christos add support for p1003.1b semaphores. From FreeBSD
 1.2  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1  05-Mar-2001  nathanw branches: 1.1.2;
file shlib_version was initially added on branch nathanw_sa.
 1.1.2.1  05-Mar-2001  nathanw The beginnings of a scheduler activations-based pthread library.
 1.7.2.1  20-Mar-2005  tron Pull up revision 1.8 (requested by kleink in ticket #27):
Interpose cancellation points in pollts() and pselect(), bringing us
to libc.so.12.127 and libpthread.so.0.6.
 1.9.6.1  09-Jan-2008  matt sync with HEAD
 1.13.2.2  28-Dec-2008  ad Some things to do on major bump.
 1.13.2.1  28-Dec-2008  ad file shlib_version was added on branch christos-time_t on 2008-12-28 11:01:59 +0000
 1.14.10.1  20-Apr-2013  bouyer Pull up following revision(s) (requested by christos in ticket #863) via patch:
distrib/sets/lists/base/ad.mips64eb: patch
distrib/sets/lists/base/ad.mips64el: patch
distrib/sets/lists/base/md.amd64: patch
distrib/sets/lists/base/md.sparc64: patch
distrib/sets/lists/base/shl.mi: patch
distrib/sets/lists/comp/ad.mips64eb: patch
distrib/sets/lists/comp/ad.mips64el: patch
distrib/sets/lists/comp/md.amd64: patch
distrib/sets/lists/comp/md.sparc64: patch
distrib/sets/lists/comp/shl.mi: patch
lib/libpthread/shlib_version: patch
bump libpthread minor for pthread_cond_setclock to libpthread.so.1.1.
Note that this is not the same as libpthread.so.1.1 from HEAD.
 1.14.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14.8.1  17-Apr-2012  yamt sync with head
 1.15.2.1  23-Jun-2013  tls resync from head
 1.17.16.1  10-Jun-2019  christos Sync with HEAD
 1.17.14.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.19.12.1  02-Aug-2025  perseant Sync with HEAD
 1.19.10.1  27-Jun-2026  martin Pull up following revision(s) (requested by riastradh in ticket #1284):

lib/libpthread/Makefile: revision 1.103
tests/lib/libpthread/dlopen/t_dso_pthread_create.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.3
lib/libpthread/shlib_version: revision 1.24

tests/lib/libpthread: Test unloading libpthread after lazy binding.

If you dlopen libpthread and dlclose it again, the thread stubs like
pthread_mutex_lock need to continue working -- a library might have
calls to it in order to support thread-safety for threaded
applications, but that library needs to continue working even in
non-threaded applications after lazy binding of the libpthread symbol
instead of the libc stub.

PR lib/59784: dlopening and dlclosing libpthread is broken


tests/lib/libpthread: Don't abuse xfail.

Use a signal handler to check for SIGABRT, rather than
atf_tc_expect_signal.

xfail is for when there is a bug that we haven't fixed yet and the
test manifests a symptom of that bug -- a list of xfails is a list of
open bugs to be fixed. In this case, we are verifying that
pthread_create _correctly_ raises SIGABRT (or fails with nonzero
return code -- both are acceptable outcomes, really), and there is no
bug here at the moment.

Prompted by (but unrelated to):
PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Link with -Wl,-z,nodelete.

Can't safely unload libpthread because of the interaction with libc
thread stubs.
PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Touch comment in shlib_version for recent LDADD.

This provokes relinking libpthread.so with the new arguments, without
needing manual intervention to follow a note in UPDATING.
PR lib/59784: dlopening and dlclosing libpthread is broken
 1.19.2.1  27-Jun-2026  martin Pull up following revision(s) (requested by riastradh in ticket #2017):

lib/libpthread/Makefile: revision 1.103
tests/lib/libpthread/dlopen/t_dso_pthread_create.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.3
lib/libpthread/shlib_version: revision 1.24

tests/lib/libpthread: Test unloading libpthread after lazy binding.

If you dlopen libpthread and dlclose it again, the thread stubs like
pthread_mutex_lock need to continue working -- a library might have
calls to it in order to support thread-safety for threaded
applications, but that library needs to continue working even in
non-threaded applications after lazy binding of the libpthread symbol
instead of the libc stub.

PR lib/59784: dlopening and dlclosing libpthread is broken


tests/lib/libpthread: Don't abuse xfail.

Use a signal handler to check for SIGABRT, rather than
atf_tc_expect_signal.

xfail is for when there is a bug that we haven't fixed yet and the
test manifests a symptom of that bug -- a list of xfails is a list of
open bugs to be fixed. In this case, we are verifying that
pthread_create _correctly_ raises SIGABRT (or fails with nonzero
return code -- both are acceptable outcomes, really), and there is no
bug here at the moment.

Prompted by (but unrelated to):
PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Link with -Wl,-z,nodelete.

Can't safely unload libpthread because of the interaction with libc
thread stubs.
PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Touch comment in shlib_version for recent LDADD.

This provokes relinking libpthread.so with the new arguments, without
needing manual intervention to follow a note in UPDATING.
PR lib/59784: dlopening and dlclosing libpthread is broken
 1.20.2.2  29-Nov-2025  martin Pull up following revision(s) (requested by riastradh in ticket #110):

lib/libpthread/Makefile: revision 1.103
tests/lib/libpthread/dlopen/t_dso_pthread_create.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.2
tests/lib/libpthread/dlopen/t_dlopen.c: revision 1.3
lib/libpthread/shlib_version: revision 1.24

tests/lib/libpthread: Test unloading libpthread after lazy binding.

If you dlopen libpthread and dlclose it again, the thread stubs like
pthread_mutex_lock need to continue working -- a library might have
calls to it in order to support thread-safety for threaded
applications, but that library needs to continue working even in
non-threaded applications after lazy binding of the libpthread symbol
instead of the libc stub.

PR lib/59784: dlopening and dlclosing libpthread is broken


tests/lib/libpthread: Don't abuse xfail.

Use a signal handler to check for SIGABRT, rather than
atf_tc_expect_signal.

xfail is for when there is a bug that we haven't fixed yet and the
test manifests a symptom of that bug -- a list of xfails is a list of
open bugs to be fixed. In this case, we are verifying that
pthread_create _correctly_ raises SIGABRT (or fails with nonzero
return code -- both are acceptable outcomes, really), and there is no
bug here at the moment.

Prompted by (but unrelated to):
PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Link with -Wl,-z,nodelete.
Can't safely unload libpthread because of the interaction with libc
thread stubs.

PR lib/59784: dlopening and dlclosing libpthread is broken


libpthread: Touch comment in shlib_version for recent LDADD.

This provokes relinking libpthread.so with the new arguments, without
needing manual intervention to follow a note in UPDATING.

PR lib/59784: dlopening and dlclosing libpthread is broken
 1.20.2.1  20-Nov-2025  martin Pull up following revision(s) (requested by riz in ticket #90):

games/factor/Makefile: revision 1.17
etc/mtree/NetBSD.dist.tests: revision 1.211
usr.sbin/plainrsa-gen/Makefile: revision 1.8
tests/lib/libpthread/weak/t_pthread_weak_threaded.c: revision 1.1
lib/libc/shlib_version: revision 1.300
tests/lib/libpthread/weak/test/Makefile: file removal
libexec/httpd/Makefile: revision 1.37
usr.bin/nbsvtool/Makefile: revision 1.5
usr.bin/moduli/Makefile.inc: revision 1.4
distrib/sets/lists/tests/shl.mi: revision 1.17
external/bsd/nsd/Makefile.inc: revision 1.11
tests/lib/libpthread/weak/test/t_pthread_weak_threaded.c: revision 1.1
tests/lib/libpthread/weak/Makefile: revision 1.1
tests/lib/libpthread/weak/test/Makefile: revision 1.1
tests/lib/libpthread/weak/Makefile: revision 1.2
lib/libpthread/pthread.c: revision 1.188
crypto/external/apache2/openssl/dist/crypto/thread/api.c: revision 1.2
usr.sbin/syslogd/Makefile: revision 1.39
tests/lib/libpthread/weak/test/t_pthread_weak_nothread.c: file removal
lib/libpthread/pthread_mi.expsym: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1015
crypto/external/apache2/openssl/lib/libssl/thread.inc: revision 1.2
usr.bin/dc/Makefile: revision 1.7
tests/usr.bin/cc/Makefile: revision 1.10
tests/crypto/libcrypto/Makefile: revision 1.18
tests/lib/libpthread/weak/t_pthread_weak_nothread.c: revision 1.1
lib/libpthread/pthread_attr.c: revision 1.22
crypto/external/apache2/openssl/lib/libcrypto/thread.inc: revision 1.2
external/bsd/wpa/bin/wpa_passphrase/Makefile: revision 1.8
external/bsd/tcpdump/bin/Makefile: revision 1.29
external/bsd/ppp/usr.sbin/pppd/Makefile: revision 1.6
lib/libpthread/pthread.h: revision 1.42
crypto/external/bsd/heimdal/Makefile.inc: revision 1.14
tests/lib/libpthread/weak/test/t_pthread_weak_nothread.c: revision 1.1
distrib/sets/lists/debug/shl.mi: revision 1.373
usr.bin/ftp/Makefile: revision 1.44
crypto/external/bsd/netpgp/bin/Makefile.inc: revision 1.2
distrib/sets/lists/tests/mi: revision 1.1395
external/bsd/pam-u2f/bin/pamu2fcfg/Makefile: revision 1.8
distrib/sets/lists/tests/mi: revision 1.1396
distrib/sets/lists/debug/shl.mi: revision 1.376
tests/lib/libpthread/Makefile: revision 1.20
tests/lib/libc/hash/Makefile: revision 1.6
tests/crypto/libcrypto/dh/Makefile: revision 1.4
tests/lib/libpthread/Makefile: revision 1.21
tests/lib/libpthread/weak/lib/Makefile: revision 1.1
tests/lib/libpthread/weak/Makefile.inc: revision 1.1
tests/lib/libpthread/Makefile: revision 1.22
crypto/external/apache2/openssl/lib/libcrypto/Makefile: revision 1.3
external/bsd/libfido2/bin/Makefile.inc: revision 1.5
lib/libc/include/reentrant.h: revision 1.24
tests/lib/libpthread/weak/lib/h_pthread_weak.h: revision 1.1
tests/lib/libpthread/weak/lib/h_pthread_weak.c: revision 1.1
share/mk/bsd.prog.mk: revision 1.357
tests/crypto/libcrypto/Makefile.inc: revision 1.14
lib/libpthread/shlib_version: revision 1.21
external/bsd/wpa/bin/hostapd/Makefile: revision 1.21
external/bsd/ntp/Makefile.inc: revision 1.26
crypto/external/bsd/heimdal/bin/hxtool/Makefile: revision 1.8
external/bsd/wpa/bin/wpa_supplicant/Makefile: revision 1.14
distrib/sets/lists/debug/mi: revision 1.487
crypto/external/apache2/openssl/bin/Makefile: revision 1.2
lib/libc/thread-stub/thread-stub.c: revision 1.34
tests/usr.bin/cc/t_pthread_abuse.sh: revision 1.1
tests/lib/libpthread/weak/test/t_pthread_weak_threaded.c: file removal
crypto/external/bsd/openssh/bin/Makefile.inc: revision 1.8

libpthread: Test pthread_create link errors without -(l)pthread.

Prompted by:
PR lib/59685: libcrypto should not depend on libpthread

libc: Expose some more pthread stubs.

Additionally, provide the option for pthread.h to expose
pthread_create so that libc can provide a weak stub for it, if you
define _NETBSD_PTHREAD_CREATE_WEAK.

This allows libraries to use the functions without linking against
libpthread for applications that don't need threads. For example,
with OpenSSL's libcrypto, as long as you don't try to raise
OSSL_set_max_threads above 0, it won't ever try pthread_create.

New pthread.h macros defined:
pthread_attr_destroy __libc_thr_attr_destroy
pthread_attr_init __libc_thr_attr_init
pthread_attr_setdetachstate __libc_thr_attr_setdetachstate
pthread_detach __libc_thr_detach
pthread_join __libc_thr_join

New pthread.h macros defined if _NETBSD_PTHREAD_CREATE_WEAK is
defined first:
pthread_create __libc_thr_create

New symbols defined by libc as weak aliases for stubs that always
fail but can be overridden by libpthread:
__libc_thr_attr_destroy
__libc_thr_attr_init
__libc_thr_attr_setdetachstate
__libc_thr_detach
__libc_thr_join
Note that libc already defined __libc_thr_create.

New internal stubs, not for overriding:
__libc_thr_detach_stub
__libc_thr_join_stub
These were formerly called __libc_pthread_detach and
__libc_pthread_join, respectively, and libc has defined weak aliases
pthread_detach and pthread_join for them since 2013. I retained all
four of those symbols, but defined new ones in the __ namespace that
match the pattern for other thread stubs to avoid raising questions
about why the pattern seems to be broken. I left a comment noting
this fact too.

New pthread strong aliases to override the libc symbols:
__libc_thr_attr_destroy
__libc_thr_attr_init
__libc_thr_attr_setdetachstate
__libc_thr_detach
__libc_thr_join
Note that pthread already defined a strong __libc_thr_create alias
for the real pthread_create, so there is no need to add a new one.
PR lib/59685: libcrypto should not depend on libpthread

libpthread: Test pthread stubs in threaded vs non-threaded programs.
PR lib/59685: libcrypto should not depend on libpthread

libpthread: append to SUBDIR instead of overwrite it
Noticed and from <riastradh>, thanks!
PR lib/59685: libcrypto should not depend on libpthread

tests/lib/libpthread: Fix tests in subdirectory.
Need to use TESTS_SUBDIRS for this, not SUBDIR. Avoid the extra
nesting level while here; can make the library be a subdirectory of
the directory where the tests live.
PR lib/59685: libcrypto should not depend on libpthread

openssl: Stop dragging libpthread into every libcrypto user.

With the new _NETBSD_PTHREAD_CREATE_WEAK, libcrypto can have a call
to pthread_create without linking against libpthread, so it is not
necessary to link all libcrypto users against libpthread too.

Applications that link against libcrypto but not libpthread can't use
threaded OpenSSL functionality, of course -- OSSL_set_max_threads
will always fail in such applications.

This reverts all the makefile churn that I found for unnecessary
libpthread linkage since the openssl 3.5 import.
PR lib/59685: libcrypto should not depend on libpthread

libc, libpthread: Bump for pthread stub additions.

New symbols were added a couple weeks ago but I forgot to bump the
shlib minors.
PR lib/59685: libcrypto should not depend on libpthread

RSS XML Feed