fix false ownership of stdio FILEs due to tid reuse
[musl] / src / thread / i386 / tls.s
index e1f2262..6e01adf 100644 (file)
@@ -2,7 +2,14 @@
 .global ___tls_get_addr
 .type ___tls_get_addr,@function
 ___tls_get_addr:
-       push %eax
+       mov %gs:4,%edx
+       mov (%eax),%ecx
+       cmp %ecx,(%edx)
+       jc 1f
+       mov 4(%eax),%eax
+       add (%edx,%ecx,4),%eax
+       ret
+1:     push %eax
        call __tls_get_addr
        pop %edx
        ret