[php-src] Issue #8338: Intel CET is disabled unintentionally since PHP-8.1.0
| From: | chen-hu-97 | Date: | Mon, 11 Apr 2022 06:40:25 +0000 |
| Subject: | [php-src] Issue #8338: Intel CET is disabled unintentionally since PHP-8.1.0 | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-240835@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/8338
Author: chen-hu-97
### Description
Intel Control Flow Enforcement Technology (CET) is enabled by default since gcc v8.1. With CET, gcc
emits following processor-specific program property types in .note.gnu.property section:
- Indirect Branch Tracking (IBT)
- Shadow Stack (SHSTK)
Such properties are there before PHP-8.1.0.
```
$ sudo readelf -n sapi/cli/php
Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
x86 ISA needed: x86-64-baseline
```
However, the properties are missing since PHP-8.1.0.
```
$ sudo readelf -n sapi/cli/php
Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
Properties: x86 ISA needed: x86-64-baseline
```
This is cause by commit c276c16b6627222c4 "Implement Fibers" which introduces some
assembly file such as jump_x86_64_sysv_elf_gas.S and make_x86_64_sysv_elf_gas.S. The object files of
such assembly miss .note.gnu.property section and thus the final output files miss it too.
I want to submit a patch to fix this.
### PHP Version
PHP-8.1.0
### Operating System
Ubuntu 22.04