Thread support on Linux is confused by the recent thread local storage (TLS)
support that has been put into the ELF tool chain.  The TLS libraries are 
installed in /lib/tls on most Linux systems.

We provide two different implementations of the os-dependent parts
of libthread for Linux.  The first is intended for use on Linux 2.4 and earlier
kernels, which do not support TLS.  It is in Linux.c and Linuxasm.c and
does not use the pthread interface.  The second is intended for Linux 2.6
and later kernels, which do support TLS.  It is in pthread.c and uses the
standard pthread interface.  It expects to be linked against the TLS-aware
thread library aka NPTL.

If you use Linux.c and Linuxasm.c with TLS libraries, they do not
set up the TLS properly so you will get incorrect programs.
For example, there will only be one errno among all the procs
in your program instead of one per proc.  The pthread NPTL
implementation is needed to use the TLS libraries properly.

If you use pthread.c without TLS libraries (i.e., with the old Linux
pthread library known as LinuxThreads), then you will also get
incorrect programs, although more obviously so.  The LinuxThreads
library assumes it can look at the stack pointer to distinguish between
threads, but libthread does its own stack management, breaking this
assumption.  If you run a pthread-compiled program with the 
LinuxThreads library, LinuxThreads itself will cause a segmentation
fault in __pthread_getspecific() the first time it is called from a
non-standard stack.

So, it is important that you compile binaries that match your
system's choice of TLS vs. not-TLS libraries.  The hard part is figuring
out which your system has chosen.  Plan9port looks at the kernel
version you are running and assumes that on kernels that support
TLS (2.6+) you will be using TLS.

Apparently Gentoo and maybe other distributions do not follow this rule.
They use non-TLS libraries even on kernels that can support TLS.
To accomodate them, you can add a line SYSVERSION=2.4 to $PLAN9/config
to force the build to think you are running an old kernel.
The INSTALL script sets up this file automatically on Linux systems.

