The usual "hack" to switch between i686 and non-i686 libpthreads on a
x86 system is to use LD_ASSUME_KERNEL and setting it to some old
version, e.g. 2.2.5.
But if you put such libraries on a 64-bit system with i686 support
that has also a 64-bit glibc e.g AMD64 or ia64, the environment
variable will have effect on both 32-bit and 64-bit libraries and you
cannot execute anymore 64-bit code :-(
thsi is a glibc problem. check glibc document for detail.