File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -2790,6 +2790,20 @@ static int zend_jit_setup(void)
2790
2790
/* Index is offset by 1 on FreeBSD (https://github.com/freebsd/freebsd-src/blob/22ca6db50f4e6bd75a141f57cf953d8de6531a06/lib/libc/gen/tls.c#L88) */
2791
2791
tsrm_tls_index = (tlsdesc->index + 1) * 8;
2792
2792
}
2793
+ # elif defined(__MUSL__)
2794
+ if (tsrm_ls_cache_tcb_offset == 0) {
2795
+ size_t **where;
2796
+
2797
+ __asm__(
2798
+ "adrp %0, :tlsdesc:_tsrm_ls_cache\n"
2799
+ "add %0, %0, :tlsdesc_lo12:_tsrm_ls_cache\n"
2800
+ : "=r" (where));
2801
+ /* See https://github.com/ARM-software/abi-aa/blob/2a70c42d62e9c3eb5887fa50b71257f20daca6f9/aaelf64/aaelf64.rst */
2802
+ size_t *tlsdesc = where[1];
2803
+
2804
+ tsrm_tls_offset = tlsdesc[1];
2805
+ tsrm_tls_index = tlsdesc[0] * 8;
2806
+ }
2793
2807
# else
2794
2808
ZEND_ASSERT(tsrm_ls_cache_tcb_offset != 0);
2795
2809
# endif
You can’t perform that action at this time.
0 commit comments