Re: Thread and process dentifiers (CPU affinity, kill)

From: Nix
Date: Mon May 23 2005 - 07:58:35 EST


On 20 May 2005, Lennart Sorensen prattled cheerily:
> Maybe Debian compiled their glibc to not do NPTL on i386 yet. Not sure.

This is not the case. Proof from ps -FT output:

mysql 8473 8473 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8475 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8476 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8477 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8478 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8479 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8480 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8481 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld
mysql 8473 8482 8472 0 29110 14056 0 May22 pts/1 /usr/sbin/mysqld

> Hmm, after checking, it turns out if you use errno in your program, it
> drops to linuxthreads, while using #include <errno.h> makes it able to
> use NPTL when using 2.6 kernel.

This is a distribution-specific patch. glibc as shipped by the FSF simply
refuses to run programs that reference the errno symbol: errno is no
longer an exported symbol at all. (This is reasonable, as such programs
would fail to work on a multithreaded NPTL program in any case.)

The only valid way to gain access to the errno symbol is to
#include <errno.h>. This has been true for as long as glibc2 has existed.

--
`Once again, I must remark on the far-reaching extent of my
ladylike nature.' --- Rosie Taylor
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/