-
-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Description
Description
When using PHP built with ZTS (Zend Thread Safety) — for example via FrankenPHP — the phpBolt extension fails to load with a runtime error indicating missing thread-safe symbols.
Environment
- PHP Version: 8.5.3
- PHP Build: ZTS enabled
- Base Image:
dunglas/frankenphp:alpine - OS: Alpine Linux
- Architecture:
x86_64 - phpBolt Version: 1.0.7
- Container runtime: Docker
Steps to Reproduce
- Use a ZTS-enabled PHP build (e.g. FrankenPHP).
- Install
phpBolt-extension-1.0.7. - Enable the extension via
extension=boltorextension=bolt.so. - Start PHP.
Actual Result
PHP fails during startup with the following error:
Warning: PHP Startup: Unable to load dynamic library 'bolt'
(tried: /usr/local/lib/php/extensions/no-debug-zts-20250925/bolt.so
Error relocating bolt.so: compiler_globals: symbol not found)
Expected Result
The extension should either:
- Provide a ZTS-compatible build, or
- Clearly document that phpBolt only supports NON-ZTS PHP builds.
Analysis
- FrankenPHP requires ZTS-enabled PHP due to its multi-threaded execution model.
- The provided
bolt.sobinary appears to be compiled for NON-ZTS PHP. - ZTS and NON-ZTS extensions are binary-incompatible, resulting in unresolved symbols such as
compiler_globals.
Questions
- Does
phpBoltofficially support ZTS / thread-safe PHP builds? - Are there plans to provide ZTS-compatible binaries for PHP 8.4+ / 8.5?
- If not, could this limitation be documented explicitly?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels