NPTL is now the default library for building new programs

Jakub Jelinek jakub at redhat.com
Sat Apr 2 18:55:57 UTC 2005


Hi!

glibc-2.3.4-19 which ought to appear in rawhide tomorrow will contain next
step leading to removal of LinuxThreads.
Until now, NPTL has been the default threading library used at runtime
(unless LD_ASSUME_KERNEL=X for X <= 2.4.19 has been in the environment),
but programs were using LinuxThreads headers by default and were linked
against LinuxThreads libraries.  There was a nptl-devel package if you
want to use new functionality only available in NPTL and not in
LinuxThreads, and -I/usr/include/nptl -L/usr/lib{,64}/nptl had to be
used in that case.

Starting with glibc-2.3.4-19 NPTL is the default development library.
This means e.g. that programs using pthread_cleanup_{push,pop} macros
(and NPTL specific stuff) compiled/linked without special options
will no longer work with LinuxThreads, only with NPTL (so make sure
if you for whatever reason use LD_ASSUME_KERNEL, you use it only
in the environment of programs that really need it and not other programs).
To build programs that will work with both LinuxThreads and NPTL
you need to install now linuxthreads-devel package and compile/link
with -I/usr/include/linuxthreads -L/usr/lib{,64}/linuxthreads.

The advantages of this step is primarily that more efficient
cancellation cleanup registering/unregistering can be used,
and thread APIs can be used without too many hassles.

	Jakub




More information about the fedora-test-list mailing list