[php-src] Issue #18743: Incompatibility in Inline TLS Assembly on Alpine 3.22 with `zend_jit_ir.c`
| From: | thecaliskan | Date: | Tue, 03 Jun 2025 08:34:29 +0000 |
| Subject: | [php-src] Issue #18743: Incompatibility in Inline TLS Assembly on Alpine 3.22 with `zend_jit_ir.c` | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-250197@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/18743
Author: thecaliskan
### Description
### Description
When building PHP on Alpine Linux 3.22 with musl and targeting 32-bit or 64-bit x86 platforms, a
regression is observed related to inline assembly in
ext/opcache/jit/zend_jit_ir.c,
specifically:
This error **does not occur on Alpine 3.21** using the same compilation toolchain. The issue stems
from the @TLSGD usage which implicitly expects %rdi on x86_64 or
%eax on i386, depending on the TLS model.
ext/opcache/jit/zend_jit_ir.c:3459: Error: @TLSGD operator requires %rdi' as dest
register`
---
### Environment
- Alpine Linux 3.22
- GCC (via build-base)
- musl libc
- Target: x86_64 or i386
- Affected file: ext/opcache/jit/zend_jit_ir.c
---
### Related PR / Reference
- https://github.com/docker-library/php/pull/1580
### PHP Version
```plain
8.4.7-zts
8.3.21-zts
8.2.28-zts
8.1.32-zts
```
### Operating System
Alpine 3.22