]> granicus.if.org Git - php/commitdiff
Revert "Implement fetching TLS TCB offset on MacOS"
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 12 Feb 2021 14:16:05 +0000 (15:16 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 12 Feb 2021 14:16:05 +0000 (15:16 +0100)
This reverts commit 1106ff9a0e420e043c2e56c8ca00db85f1b85ee6.

Looks like this sauses segfaults on MacOs ZTS with JIT.

TSRM/TSRM.c
ext/opcache/jit/zend_jit_x86.dasc

index 2e489137fb8e743fd9bd775baea594204bfe6429..cd340035a27e23901685315009bc8258e1e77d14 100644 (file)
@@ -727,10 +727,8 @@ TSRM_API void *tsrm_get_ls_cache(void)
 TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void)
 {/*{{{*/
 #if defined(__APPLE__) && defined(__x86_64__)
-       size_t ret;
-       asm ("movq __tsrm_ls_cache(%%rip),%0"
-          : "=r" (ret));
-       return ret;
+    // TODO: Implement support for fast JIT ZTS code ???
+       return 0;
 #elif defined(__x86_64__) && defined(__GNUC__)
        size_t ret;
 
index 844aaefc1bb029bc956165f81a75be88525170e0..fa203f850cba0acc23a0eafdeb11d7c25bd53c88 100644 (file)
@@ -2923,20 +2923,12 @@ static int zend_jit_setup(void)
 # elif defined(__APPLE__) && defined(__x86_64__)
        tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();
        if (tsrm_ls_cache_tcb_offset == 0) {
-#if defined(__has_attribute) && __has_attribute(tls_model)
-               size_t ret;
-
-               asm ("movq __tsrm_ls_cache(%%rip),%0"
-                       : "=r" (ret));
-               tsrm_ls_cache_tcb_offset = ret;
-#else
                size_t *ti;
                __asm__(
                        "leaq __tsrm_ls_cache(%%rip),%0"
                        : "=r" (ti));
                tsrm_tls_offset = ti[2];
                tsrm_tls_index = ti[1] * 8;
-#endif
        }
 # elif defined(__GNUC__) && defined(__x86_64__)
        tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();