Just an idea that could be of use. Since the __errno_location cannot be replaced anymore in glibc 2.3, isn't it possible to replace the %gs segment instead - Wine could create it's own %gs segments for it's threads, containing the errno's address where glibc is ecpecting it to be.
Lucho