> Date: Thu, 22 Oct 2026 23:21:08 +0200 > From: Manuel Bouyer <[email protected]> > > 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.
