Hi
I've been trying to upgrade my system to glibc-2.3.1 for a while now, and I've tracked down the bug to something I think is a grsecurity/PaX bug/incompatibility. Some background: I'm runnig a linux-2.4.19 box with grsecurity-1.9.7d, NOEXEC, SEGMEXEC, MPROTECT, ASLR, RANDKSTACK, RANDUSTACK, RANDMMAP, RANDEXEC, KMEM are set. Everything is compied with gcc-3.2.
After compiling glibc-2.3.1 (same error with 2.3) and running make check I get failure in two tests linking statically against the pthread library. When I install, all binaries linked against pthread exit with a SEGFAULT. I ran a strace on one of these programs (ls), and found that the last call is to modify_ldt, which fails. I tried disabling SEGMEXEC on the binary and it started working! (func = 1, so it should be the block in arch/i386/kernel/ldt.c:write_ldt that fails.)
Any suggestions on how this can be fixed in the kernel, or is it the pthreads implementation that wants to access memory above 1.5GB?