mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Fixed GH-13581: threaded mod_php fails on NetBSD with No space available for Thread Local Storage.
Close GH-13832
This commit is contained in:
parent
b82024b13c
commit
2d6bd1644d
4 changed files with 9 additions and 5 deletions
1
NEWS
1
NEWS
|
@ -17,6 +17,7 @@ PHP NEWS
|
|||
. Ensure fiber stack is not backed by THP. (crrodriguez)
|
||||
. Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)
|
||||
. Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)
|
||||
. Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)
|
||||
|
||||
- Curl:
|
||||
. Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)
|
||||
|
|
|
@ -777,14 +777,16 @@ TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void)
|
|||
// TODO: Implement support for fast JIT ZTS code ???
|
||||
return 0;
|
||||
#elif defined(__x86_64__) && defined(__GNUC__) && !defined(__FreeBSD__) && \
|
||||
!defined(__OpenBSD__) && !defined(__MUSL__) && !defined(__HAIKU__)
|
||||
!defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__) && \
|
||||
!defined(__HAIKU__)
|
||||
size_t ret;
|
||||
|
||||
asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0"
|
||||
: "=r" (ret));
|
||||
return ret;
|
||||
#elif defined(__i386__) && defined(__GNUC__) && !defined(__FreeBSD__) && \
|
||||
!defined(__OpenBSD__) && !defined(__MUSL__) && !defined(__HAIKU__)
|
||||
!defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__) && \
|
||||
!defined(__HAIKU__)
|
||||
size_t ret;
|
||||
|
||||
asm ("leal _tsrm_ls_cache@ntpoff,%0"
|
||||
|
|
|
@ -152,7 +152,7 @@ TSRM_API bool tsrm_is_managed_thread(void);
|
|||
# define __has_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__MUSL__) || defined(__HAIKU__)
|
||||
#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__MUSL__) || defined(__HAIKU__)
|
||||
# define TSRM_TLS_MODEL_ATTR
|
||||
#elif __PIC__
|
||||
# define TSRM_TLS_MODEL_ATTR __attribute__((tls_model("initial-exec")))
|
||||
|
|
|
@ -3241,7 +3241,8 @@ static void zend_jit_setup(void)
|
|||
# elif defined(__GNUC__) && 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) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
|
||||
#if defined(__has_attribute) && __has_attribute(tls_model) && !defined(__FreeBSD__) && \
|
||||
!defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
|
||||
size_t ret;
|
||||
|
||||
asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0"
|
||||
|
@ -3268,7 +3269,7 @@ static void zend_jit_setup(void)
|
|||
# elif defined(__GNUC__) && defined(__i386__)
|
||||
tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();
|
||||
if (tsrm_ls_cache_tcb_offset == 0) {
|
||||
#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
|
||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
|
||||
size_t ret;
|
||||
|
||||
asm ("leal _tsrm_ls_cache@ntpoff,%0\n"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue