tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: No space available for static Thread Local Storage
> Date: Thu, 22 Oct 2026 23:21:08 +0200
> From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
>
> On Thu, Oct 22, 2026 at 09:00:09PM +0000, Taylor R Campbell wrote:
> > Well, here's the difference:
> >
> > --- readelf.mod_php82 2026-10-22 17:41:25.989146033 +0000
> > +++ readelf.mod_php84 2026-10-22 17:41:56.256975805 +0000
> > ...
> > - 0x000000000000001e (FLAGS) STATIC_TLS
> >
> > Why does mod_php82.so use static TLS, a.k.a. TLS model `initial-exec'?
> >
> > As a general rule, static TLS does not work in dynamically loadable
> > objects -- hence the TLS model name `initial exec': it is only meant
> > for the initial program image on exec, not anything loaded later.
>
> No idea; both have been built from the same pkgsrc sources with the same
> mk.conf ...
--- php82/work/php-8.2.35/TSRM/TSRM.h 2026-10-19 07:29:52.000000000 +0000
+++ php84/work/php-8.4.27/TSRM/TSRM.h 2026-10-19 14:38:59.000000000 +0000
[...]
@@ -148,7 +152,8 @@
# 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__) || defined(_AIX)
# define TSRM_TLS_MODEL_ATTR
# define TSRM_TLS_MODEL_DEFAULT
#elif __PIC__
Patch has not been backported to php82.
See also:
PR pkg/56717: php81 and zts - No space available for static Thread
Local Storage
https://gnats.NetBSD.org/56717
https://github.com/php/php-src/commit/2d6bd1644d104fe934a5117d232d3f50ffe9ff28
lang/php83/patches/patch-TSRM_TSRM.h
Looks like an easy backport to php82 and whatever else needs it.
Home |
Main Index |
Thread Index |
Old Index